diff --git a/src/calibre/db/search.py b/src/calibre/db/search.py index a11c416217..8854e8657e 100644 --- a/src/calibre/db/search.py +++ b/src/calibre/db/search.py @@ -72,7 +72,7 @@ def _match(query, value, matchkind, use_primary_find_in_search=True, case_sensit elif query == t: return True elif matchkind == REGEXP_MATCH: - flags = regex.UNICODE | regex.VERSION1 | (0 if case_sensitive else regex.IGNORECASE) + flags = regex.UNICODE | regex.VERSION1 | regex.FULLCASE | (0 if case_sensitive else regex.IGNORECASE) if regex.search(query, t, flags) is not None: return True elif matchkind == CONTAINS_MATCH: diff --git a/src/calibre/ebooks/metadata/meta.py b/src/calibre/ebooks/metadata/meta.py index fd11e9bd52..a41e408a3c 100644 --- a/src/calibre/ebooks/metadata/meta.py +++ b/src/calibre/ebooks/metadata/meta.py @@ -106,7 +106,7 @@ def _get_metadata(stream, stream_type, use_libprs_metadata, name = os.path.basename(getattr(stream, 'name', '')) # The fallback pattern matches the default filename format produced by calibre base = metadata_from_filename(name, pat=pattern, fallback_pat=regex.compile( - r'^(?P.+) - (?P<author>[^-]+)$', flags=regex.UNICODE | regex.VERSION1)) + r'^(?P<title>.+) - (?P<author>[^-]+)$', flags=regex.UNICODE | regex.VERSION1 | regex.FULLCASE)) if not base.authors: base.authors = [_('Unknown')] if not base.title: @@ -133,7 +133,7 @@ def metadata_from_filename(name, pat=None, fallback_pat=None): name = name.rpartition('.')[0] mi = MetaInformation(None, None) if pat is None: - pat = regex.compile(prefs.get('filename_pattern'), flags=regex.UNICODE | regex.VERSION1) + pat = regex.compile(prefs.get('filename_pattern'), flags=regex.UNICODE | regex.VERSION1 | regex.FULLCASE) name = name.replace('_', ' ') match = pat.search(name) if match is None and fallback_pat is not None: