mercurial/match.py
branchstable
changeset 49603 3eda36e9b3d6
parent 48946 642e31cb55f0
child 49605 b3480822a251
--- a/mercurial/match.py	Wed Nov 16 14:40:27 2022 +0100
+++ b/mercurial/match.py	Wed Nov 16 13:05:01 2022 +0100
@@ -1323,6 +1323,9 @@
     return res
 
 
+FLAG_RE = util.re.compile(b'^\(\?([aiLmsux]+)\)')
+
+
 def _regex(kind, pat, globsuffix):
     """Convert a (normalized) pattern of any kind into a
     regular expression.
@@ -1353,6 +1356,8 @@
     if kind == b'relre':
         if pat.startswith(b'^'):
             return pat
+        if FLAG_RE.match(pat):
+            return FLAG_RE.sub(br'(?\1:.*', pat) + b')'
         return b'.*' + pat
     if kind in (b'glob', b'rootglob'):
         return _globre(pat) + globsuffix