diff --git a/Text/RE/Internal/EscapeREString.hs b/Text/RE/Internal/EscapeREString.hs index 65e1e4f..927b911 100644 --- a/Text/RE/Internal/EscapeREString.hs +++ b/Text/RE/Internal/EscapeREString.hs @@ -8,14 +8,18 @@ escapeREString = foldr esc [] isMetaChar :: Char -> Bool isMetaChar c = case c of - '*' -> True - '?' -> True - '+' -> True - '[' -> True - ']' -> True - '{' -> True - '}' -> True - '$' -> True - '^' -> True - '.' -> True - _ -> False + '^' -> True + '\\' -> True + '.' -> True + '|' -> True + '*' -> True + '?' -> True + '+' -> True + '(' -> True + ')' -> True + '[' -> True + ']' -> True + '{' -> True + '}' -> True + '$' -> True + _ -> False diff --git a/examples/re-tests.lhs b/examples/re-tests.lhs index 398ce3c..749be40 100644 --- a/examples/re-tests.lhs +++ b/examples/re-tests.lhs @@ -424,7 +424,7 @@ escapeTests = testGroup "Escape Tests" tst esc (%=~) s = matched $ s %=~ esc (("^" ++) . (++ "$")) s metacharacters :: String - metacharacters = "^*+?[]{}$." + metacharacters = "^\\.|*+?()[]{}$" \end{code}