diff --git a/Text/Highlighting/Kate/Common.hs b/Text/Highlighting/Kate/Common.hs
--- a/Text/Highlighting/Kate/Common.hs
+++ b/Text/Highlighting/Kate/Common.hs
@@ -191,7 +191,8 @@
                if caseSensitive then 0 else compCaseless
   in  case unsafePerformIO $ compile opts (execNotEmpty)
            (fromString ('.' : convertOctal regexpStr)) of
-            Left _  -> error $ "Error compiling regex: " ++ show regexpStr
+            Left e  -> error $ "Error compiling regex: " ++ show regexpStr ++
+                               "\n" ++ show e
             Right r -> r
 #endif
 
diff --git a/Text/Highlighting/Kate/Syntax/Fsharp.hs b/Text/Highlighting/Kate/Syntax/Fsharp.hs
--- a/Text/Highlighting/Kate/Syntax/Fsharp.hs
+++ b/Text/Highlighting/Kate/Syntax/Fsharp.hs
@@ -77,13 +77,13 @@
 list_done = Set.fromList $ words $ "done"
 list_module'5fenvironment = Set.fromList $ words $ "module open"
 
-regex_'60'5cs'2a'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a = compileRegex True "`\\s*[A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\0377_][A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\03770-9_']*"
-regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a'5cs'2a'5c'2e = compileRegex True "[A-Z][A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\03770-9_']*\\s*\\."
-regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a = compileRegex True "[A-Z][A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\03770-9_']*"
-regex_'23'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a'2e'2a'24 = compileRegex True "#[A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\0377_][A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\03770-9_']*.*$"
+regex_'60'5cs'2a'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a = compileRegex True "`\\s*[A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}_][A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}0-9_']*"
+regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a'5cs'2a'5c'2e = compileRegex True "[A-Z][A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}0-9_']*\\s*\\."
+regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a = compileRegex True "[A-Z][A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}0-9_']*"
+regex_'23'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a'2e'2a'24 = compileRegex True "#[A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}_][A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}0-9_']*.*$"
 regex_'27'28'28'5c'5c'5bntbr'27'22'5c'5c'5d'7c'5c'5c'5b0'2d9'5d'7b3'7d'7c'5c'5cx'5b0'2d9A'2dFa'2df'5d'7b2'7d'29'7c'5b'5e'27'5d'29'27 = compileRegex True "'((\\\\[ntbr'\"\\\\]|\\\\[0-9]{3}|\\\\x[0-9A-Fa-f]{2})|[^'])'"
-regex_'3c'3a'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a'3c = compileRegex True "<:[A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\0377_][A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\03770-9_']*<"
-regex_'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a = compileRegex True "[A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\0377_][A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\03770-9_']*"
+regex_'3c'3a'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a'3c = compileRegex True "<:[A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}_][A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}0-9_']*<"
+regex_'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a = compileRegex True "[A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}_][A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}0-9_']*"
 regex_'2d'3f0'5bxX'5d'5b0'2d9A'2dFa'2df'5f'5d'2b = compileRegex True "-?0[xX][0-9A-Fa-f_]+"
 regex_'2d'3f0'5boO'5d'5b0'2d7'5f'5d'2b = compileRegex True "-?0[oO][0-7_]+"
 regex_'2d'3f0'5bbB'5d'5b01'5f'5d'2b = compileRegex True "-?0[bB][01_]+"
@@ -92,7 +92,7 @@
 regex_'28'5c'5c'5bntbr'27'22'5c'5c'5d'7c'5c'5c'5b0'2d9'5d'7b3'7d'7c'5c'5cx'5b0'2d9A'2dFa'2df'5d'7b2'7d'29 = compileRegex True "(\\\\[ntbr'\"\\\\]|\\\\[0-9]{3}|\\\\x[0-9A-Fa-f]{2})"
 regex_'5c'5c'24 = compileRegex True "\\\\$"
 regex_'5c'5c'28'5c'5c'7c'3e'3e'7c'3c'3c'29 = compileRegex True "\\\\(\\\\|>>|<<)"
-regex_'5c'5c'3c'3a'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a'3c = compileRegex True "\\\\<:[A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\0377_][A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\03770-9_']*<"
+regex_'5c'5c'3c'3a'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a'3c = compileRegex True "\\\\<:[A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}_][A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}0-9_']*<"
 
 parseRules ("FSharp","Normal") =
   (((pDetect2Chars False '(' '*' >>= withAttribute CommentTok) >>~ pushContext ("FSharp","Multiline Comment"))
@@ -133,13 +133,13 @@
    <|>
    ((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" list_struct >>= withAttribute KeywordTok) >>~ pushContext ("FSharp","Struct"))
    <|>
-   ((pRegExpr regex_'60'5cs'2a'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a >>= withAttribute NormalTok))
+   ((pRegExpr regex_'60'5cs'2a'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a >>= withAttribute NormalTok))
    <|>
-   ((lookAhead (pRegExpr regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a'5cs'2a'5c'2e) >> pushContext ("FSharp","ModuleEnv2") >> currentContext >>= parseRules))
+   ((lookAhead (pRegExpr regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a'5cs'2a'5c'2e) >> pushContext ("FSharp","ModuleEnv2") >> currentContext >>= parseRules))
    <|>
-   ((pRegExpr regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a >>= withAttribute NormalTok))
+   ((pRegExpr regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a >>= withAttribute NormalTok))
    <|>
-   ((pFirstNonSpace >> pRegExpr regex_'23'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a'2e'2a'24 >>= withAttribute OtherTok))
+   ((pFirstNonSpace >> pRegExpr regex_'23'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a'2e'2a'24 >>= withAttribute OtherTok))
    <|>
    ((pDetectChar False '"' >>= withAttribute StringTok) >>~ pushContext ("FSharp","String Constant"))
    <|>
@@ -147,13 +147,13 @@
    <|>
    ((pDetect2Chars False '<' '<' >>= withAttribute StringTok) >>~ pushContext ("FSharp","Camlp4 Quotation Constant"))
    <|>
-   ((pRegExpr regex_'3c'3a'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a'3c >>= withAttribute StringTok) >>~ pushContext ("FSharp","Camlp4 Quotation Constant"))
+   ((pRegExpr regex_'3c'3a'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a'3c >>= withAttribute StringTok) >>~ pushContext ("FSharp","Camlp4 Quotation Constant"))
    <|>
    ((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" list_keywords >>= withAttribute KeywordTok))
    <|>
    ((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" list_core_types >>= withAttribute DataTypeTok))
    <|>
-   ((pRegExpr regex_'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a >>= withAttribute NormalTok))
+   ((pRegExpr regex_'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a >>= withAttribute NormalTok))
    <|>
    ((pRegExpr regex_'2d'3f0'5bxX'5d'5b0'2d9A'2dFa'2df'5f'5d'2b >>= withAttribute BaseNTok))
    <|>
@@ -217,14 +217,14 @@
 parseRules ("FSharp","ModuleEnv") =
   (((pDetectSpaces >>= withAttribute NormalTok))
    <|>
-   ((lookAhead (pRegExpr regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a'5cs'2a'5c'2e) >> pushContext ("FSharp","ModuleEnv2") >> currentContext >>= parseRules))
+   ((lookAhead (pRegExpr regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a'5cs'2a'5c'2e) >> pushContext ("FSharp","ModuleEnv2") >> currentContext >>= parseRules))
    <|>
-   ((pRegExpr regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a >>= withAttribute NormalTok) >>~ (popContext))
+   ((pRegExpr regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a >>= withAttribute NormalTok) >>~ (popContext))
    <|>
    ((popContext) >> currentContext >>= parseRules))
 
 parseRules ("FSharp","ModuleEnv2") =
-  (((pRegExpr regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a >>= withAttribute NormalTok))
+  (((pRegExpr regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a >>= withAttribute NormalTok))
    <|>
    ((pDetectSpaces >>= withAttribute NormalTok))
    <|>
@@ -237,11 +237,11 @@
    <|>
    ((pDetect2Chars False '<' '<' >>= withAttribute StringTok) >>~ pushContext ("FSharp","Camlp4 Quotation Constant"))
    <|>
-   ((pRegExpr regex_'3c'3a'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a'3c >>= withAttribute StringTok) >>~ pushContext ("FSharp","Camlp4 Quotation Constant"))
+   ((pRegExpr regex_'3c'3a'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a'3c >>= withAttribute StringTok) >>~ pushContext ("FSharp","Camlp4 Quotation Constant"))
    <|>
    ((pRegExpr regex_'5c'5c'28'5c'5c'7c'3e'3e'7c'3c'3c'29 >>= withAttribute CharTok))
    <|>
-   ((pRegExpr regex_'5c'5c'3c'3a'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a'3c >>= withAttribute CharTok))
+   ((pRegExpr regex_'5c'5c'3c'3a'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a'3c >>= withAttribute CharTok))
    <|>
    (currentContext >>= \x -> guard (x == ("FSharp","Camlp4 Quotation Constant")) >> pDefault >>= withAttribute StringTok))
 
diff --git a/Text/Highlighting/Kate/Syntax/Ocaml.hs b/Text/Highlighting/Kate/Syntax/Ocaml.hs
--- a/Text/Highlighting/Kate/Syntax/Ocaml.hs
+++ b/Text/Highlighting/Kate/Syntax/Ocaml.hs
@@ -77,13 +77,13 @@
 list_done = Set.fromList $ words $ "done"
 list_module'5fenvironment = Set.fromList $ words $ "module open include"
 
-regex_'60'5cs'2a'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a = compileRegex True "`\\s*[A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\0377_][A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\03770-9_']*"
-regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a'5cs'2a'5c'2e = compileRegex True "[A-Z][A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\03770-9_']*\\s*\\."
-regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a = compileRegex True "[A-Z][A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\03770-9_']*"
-regex_'23'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a'2e'2a'24 = compileRegex True "#[A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\0377_][A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\03770-9_']*.*$"
+regex_'60'5cs'2a'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a = compileRegex True "`\\s*[A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}_][A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}0-9_']*"
+regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a'5cs'2a'5c'2e = compileRegex True "[A-Z][A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}0-9_']*\\s*\\."
+regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a = compileRegex True "[A-Z][A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}0-9_']*"
+regex_'23'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a'2e'2a'24 = compileRegex True "#[A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}_][A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}0-9_']*.*$"
 regex_'27'28'28'5c'5c'5bntbr'27'22'5c'5c'5d'7c'5c'5c'5b0'2d9'5d'7b3'7d'7c'5c'5cx'5b0'2d9A'2dFa'2df'5d'7b2'7d'29'7c'5b'5e'27'5d'29'27 = compileRegex True "'((\\\\[ntbr'\"\\\\]|\\\\[0-9]{3}|\\\\x[0-9A-Fa-f]{2})|[^'])'"
-regex_'3c'3a'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a'3c = compileRegex True "<:[A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\0377_][A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\03770-9_']*<"
-regex_'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a = compileRegex True "[A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\0377_][A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\03770-9_']*"
+regex_'3c'3a'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a'3c = compileRegex True "<:[A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}_][A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}0-9_']*<"
+regex_'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a = compileRegex True "[A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}_][A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}0-9_']*"
 regex_'2d'3f0'5bxX'5d'5b0'2d9A'2dFa'2df'5f'5d'2b = compileRegex True "-?0[xX][0-9A-Fa-f_]+"
 regex_'2d'3f0'5boO'5d'5b0'2d7'5f'5d'2b = compileRegex True "-?0[oO][0-7_]+"
 regex_'2d'3f0'5bbB'5d'5b01'5f'5d'2b = compileRegex True "-?0[bB][01_]+"
@@ -92,7 +92,7 @@
 regex_'28'5c'5c'5bntbr'27'22'5c'5c'5d'7c'5c'5c'5b0'2d9'5d'7b3'7d'7c'5c'5cx'5b0'2d9A'2dFa'2df'5d'7b2'7d'29 = compileRegex True "(\\\\[ntbr'\"\\\\]|\\\\[0-9]{3}|\\\\x[0-9A-Fa-f]{2})"
 regex_'5c'5c'24 = compileRegex True "\\\\$"
 regex_'5c'5c'28'5c'5c'7c'3e'3e'7c'3c'3c'29 = compileRegex True "\\\\(\\\\|>>|<<)"
-regex_'5c'5c'3c'3a'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a'3c = compileRegex True "\\\\<:[A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\0377_][A-Za-z\\0300-\\0326\\0330-\\0366\\0370-\\03770-9_']*<"
+regex_'5c'5c'3c'3a'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a'3c = compileRegex True "\\\\<:[A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}_][A-Za-z\\o{0300}-\\o{0326}\\o{0330}-\\o{0366}\\o{0370}-\\o{0377}0-9_']*<"
 
 parseRules ("Objective Caml","Normal") =
   (((pDetect2Chars False '(' '*' >>= withAttribute CommentTok) >>~ pushContext ("Objective Caml","Multiline Comment"))
@@ -127,13 +127,13 @@
    <|>
    ((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" list_struct >>= withAttribute KeywordTok) >>~ pushContext ("Objective Caml","Struct"))
    <|>
-   ((pRegExpr regex_'60'5cs'2a'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a >>= withAttribute DataTypeTok))
+   ((pRegExpr regex_'60'5cs'2a'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a >>= withAttribute DataTypeTok))
    <|>
-   ((lookAhead (pRegExpr regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a'5cs'2a'5c'2e) >> pushContext ("Objective Caml","ModuleEnv2") >> currentContext >>= parseRules))
+   ((lookAhead (pRegExpr regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a'5cs'2a'5c'2e) >> pushContext ("Objective Caml","ModuleEnv2") >> currentContext >>= parseRules))
    <|>
-   ((pRegExpr regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a >>= withAttribute DataTypeTok))
+   ((pRegExpr regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a >>= withAttribute DataTypeTok))
    <|>
-   ((pFirstNonSpace >> pRegExpr regex_'23'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a'2e'2a'24 >>= withAttribute OtherTok))
+   ((pFirstNonSpace >> pRegExpr regex_'23'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a'2e'2a'24 >>= withAttribute OtherTok))
    <|>
    ((pDetectChar False '"' >>= withAttribute StringTok) >>~ pushContext ("Objective Caml","String Constant"))
    <|>
@@ -141,7 +141,7 @@
    <|>
    ((pDetect2Chars False '<' '<' >>= withAttribute StringTok) >>~ pushContext ("Objective Caml","Camlp4 Quotation Constant"))
    <|>
-   ((pRegExpr regex_'3c'3a'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a'3c >>= withAttribute StringTok) >>~ pushContext ("Objective Caml","Camlp4 Quotation Constant"))
+   ((pRegExpr regex_'3c'3a'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a'3c >>= withAttribute StringTok) >>~ pushContext ("Objective Caml","Camlp4 Quotation Constant"))
    <|>
    ((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" list_keywords >>= withAttribute KeywordTok))
    <|>
@@ -149,7 +149,7 @@
    <|>
    ((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" list_core_types >>= withAttribute DataTypeTok))
    <|>
-   ((pRegExpr regex_'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a >>= withAttribute NormalTok))
+   ((pRegExpr regex_'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a >>= withAttribute NormalTok))
    <|>
    ((pRegExpr regex_'2d'3f0'5bxX'5d'5b0'2d9A'2dFa'2df'5f'5d'2b >>= withAttribute BaseNTok))
    <|>
@@ -210,14 +210,14 @@
 parseRules ("Objective Caml","ModuleEnv") =
   (((pDetectSpaces >>= withAttribute NormalTok))
    <|>
-   ((lookAhead (pRegExpr regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a'5cs'2a'5c'2e) >> pushContext ("Objective Caml","ModuleEnv2") >> currentContext >>= parseRules))
+   ((lookAhead (pRegExpr regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a'5cs'2a'5c'2e) >> pushContext ("Objective Caml","ModuleEnv2") >> currentContext >>= parseRules))
    <|>
-   ((pRegExpr regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a >>= withAttribute NormalTok) >>~ (popContext))
+   ((pRegExpr regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a >>= withAttribute NormalTok) >>~ (popContext))
    <|>
    ((popContext) >> currentContext >>= parseRules))
 
 parseRules ("Objective Caml","ModuleEnv2") =
-  (((pRegExpr regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a >>= withAttribute NormalTok))
+  (((pRegExpr regex_'5bA'2dZ'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a >>= withAttribute NormalTok))
    <|>
    ((pDetectSpaces >>= withAttribute NormalTok))
    <|>
@@ -230,11 +230,11 @@
    <|>
    ((pDetect2Chars False '<' '<' >>= withAttribute StringTok) >>~ pushContext ("Objective Caml","Camlp4 Quotation Constant"))
    <|>
-   ((pRegExpr regex_'3c'3a'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a'3c >>= withAttribute StringTok) >>~ pushContext ("Objective Caml","Camlp4 Quotation Constant"))
+   ((pRegExpr regex_'3c'3a'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a'3c >>= withAttribute StringTok) >>~ pushContext ("Objective Caml","Camlp4 Quotation Constant"))
    <|>
    ((pRegExpr regex_'5c'5c'28'5c'5c'7c'3e'3e'7c'3c'3c'29 >>= withAttribute CharTok))
    <|>
-   ((pRegExpr regex_'5c'5c'3c'3a'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c0377'5f'5d'5bA'2dZa'2dz'5c0300'2d'5c0326'5c0330'2d'5c0366'5c0370'2d'5c03770'2d9'5f'27'5d'2a'3c >>= withAttribute CharTok))
+   ((pRegExpr regex_'5c'5c'3c'3a'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d'5f'5d'5bA'2dZa'2dz'5co'7b0300'7d'2d'5co'7b0326'7d'5co'7b0330'7d'2d'5co'7b0366'7d'5co'7b0370'7d'2d'5co'7b0377'7d0'2d9'5f'27'5d'2a'3c >>= withAttribute CharTok))
    <|>
    (currentContext >>= \x -> guard (x == ("Objective Caml","Camlp4 Quotation Constant")) >> pDefault >>= withAttribute StringTok))
 
diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,8 +1,14 @@
+highlighting-kate 0.5.8.1 (14 May 2014)
+
+  * Update fsharp and ocaml xml files for regex syntax compatibility (#44).
+    We need `\o{0355}`, not `\0355`.  See the pcre man page.
+  * Give better information when there is a regex compile failure.
+
 highlighting-kate 0.5.8 (12 May 2014)
 
   * Enable UTF-8 support with the regex-pcre-builtin backend.
     (This requires regex-pcre-builtin >= 0.94.4.8.8.35, and it
-    adds a dependency on utf8-string.) (Clint Adams, #42)
+    adds a dependency on utf8-string.) (Matthias Troffaes, #42)
   * Fixed performance regression: added a caseSensitive parameter
     to compileRegex and made it non-monadic.  (Checking state was
     a serious performance hit, and was not necessary in this case.)
diff --git a/highlighting-kate.cabal b/highlighting-kate.cabal
--- a/highlighting-kate.cabal
+++ b/highlighting-kate.cabal
@@ -1,5 +1,5 @@
 Name:                highlighting-kate
-Version:             0.5.8
+Version:             0.5.8.1
 Cabal-Version:       >= 1.10
 Build-Type:          Simple
 Category:            Text
diff --git a/xml/fsharp.xml b/xml/fsharp.xml
--- a/xml/fsharp.xml
+++ b/xml/fsharp.xml
@@ -3,7 +3,9 @@
 <!DOCTYPE language SYSTEM "language.dtd"
 [
 <!-- Regular expresion constants: -->
-<!ENTITY LETTER "A-Za-z\0300-\0326\0330-\0366\0370-\0377">          <!-- Latin-1 letters. -->
+<!-- note: the following line modified by JGM for pcre compatibility.
+     We need \o{0366}, not \0366 as in the original xml file. -->
+<!ENTITY LETTER "A-Za-z\o{0300}-\o{0326}\o{0330}-\o{0366}\o{0370}-\o{0377}"> <!-- Latin-1 letters. -->
 <!ENTITY IDENT  "[&LETTER;_][&LETTER;0-9_']*">                      <!-- OCaml identifiers. -->
 <!ENTITY MIDENT "[A-Z][&LETTER;0-9_']*">                            <!-- OCaml uppercase identifiers. -->
 <!ENTITY ESC    "(\\[ntbr'&quot;\\]|\\[0-9]{3}|\\x[0-9A-Fa-f]{2})"> <!-- OCaml character code escapes. -->
diff --git a/xml/ocaml.xml b/xml/ocaml.xml
--- a/xml/ocaml.xml
+++ b/xml/ocaml.xml
@@ -3,7 +3,9 @@
 <!DOCTYPE language SYSTEM "language.dtd"
 [
 <!-- Regular expresion constants: -->
-<!ENTITY LETTER "A-Za-z\0300-\0326\0330-\0366\0370-\0377">          <!-- Latin-1 letters. -->
+<!-- note: the following line modified by JGM for pcre compatibility.
+     We need \o{0366}, not \0366 as in the original xml file. -->
+<!ENTITY LETTER "A-Za-z\o{0300}-\o{0326}\o{0330}-\o{0366}\o{0370}-\o{0377}"> <!-- Latin-1 letters. -->
 <!ENTITY IDENT  "[&LETTER;_][&LETTER;0-9_']*">                      <!-- OCaml identifiers. -->
 <!ENTITY MIDENT "[A-Z][&LETTER;0-9_']*">                            <!-- OCaml uppercase identifiers. -->
 <!ENTITY ESC    "(\\[ntbr'&quot;\\]|\\[0-9]{3}|\\x[0-9A-Fa-f]{2})"> <!-- OCaml character code escapes. -->
