packages feed

pcre-light-0.1: tests/testdata/regex6.tests

testRegex "^\\pC\\pL\\pM\\pN\\pP\\pS\\pZ<" [ERROR]
    ["\\x7f\\x{c0}\\x{30f}\\x{660}\\x{66c}\\x{f01}\\x{1680}<",
     "\\np\\x{300}9!\\$ < ",
     "** Failers ",
     "ap\\x{300}9!\\$ < ",
     "",
     "/^\\PC/8",
     "X",
     "** Failers ",
     "\\x7f",
     "",
     "/^\\PL/8",
     "9",
     "** Failers ",
     "\\x{c0}",
     "",
     "/^\\PM/8",
     "X",
     "** Failers ",
     "\\x{30f}",
     "",
     "/^\\PN/8",
     "X",
     "** Failers ",
     "\\x{660}",
     "",
     "/^\\PP/8",
     "X",
     "** Failers ",
     "\\x{66c}",
     "",
     "/^\\PS/8",
     "X",
     "** Failers ",
     "\\x{f01}",
     "",
     "/^\\PZ/8",
     "X",
     "** Failers ",
     "\\x{1680}",
     "",
     "/^\\p{Cc}/8",
     "\\x{017}",
     "\\x{09f} ",
     "** Failers",
     "\\x{0600} ",
     "",
     "/^\\p{Cf}/8",
     "\\x{601}",
     "** Failers",
     "\\x{09f} ",
     "",
     "/^\\p{Cn}/8",
     "\\x{e0000}",
     "** Failers",
     "\\x{09f} ",
     "",
     "/^\\p{Co}/8",
     "\\x{f8ff}",
     "** Failers",
     "\\x{09f} ",
     "",
     "/^\\p{Cs}/8",
     "\\?\\x{dfff}",
     "** Failers",
     "\\x{09f} ",
     "",
     "/^\\p{Ll}/8",
     "a",
     "** Failers ",
     "Z",
     "\\x{e000}  ",
     "",
     "/^\\p{Lm}/8",
     "\\x{2b0}",
     "** Failers",
     "a ",
     "",
     "/^\\p{Lo}/8",
     "\\x{1bb}",
     "\\x{3400}",
     "\\x{3401}",
     "\\x{4d00}",
     "\\x{4db4}",
     "\\x{4db5}     ",
     "** Failers",
     "a ",
     "\\x{2b0}",
     "\\x{4db6} ",
     "",
     "/^\\p{Lt}/8",
     "\\x{1c5}",
     "** Failers",
     "a ",
     "\\x{2b0}",
     "",
     "/^\\p{Lu}/8",
     "A",
     "** Failers",
     "\\x{2b0}",
     "",
     "/^\\p{Mc}/8",
     "\\x{903}",
     "** Failers",
     "X",
     "\\x{300}",
     "",
     "/^\\p{Me}/8",
     "\\x{488}",
     "** Failers",
     "X",
     "\\x{903}",
     "\\x{300}",
     "",
     "/^\\p{Mn}/8",
     "\\x{300}",
     "** Failers",
     "X",
     "\\x{903}",
     "",
     "/^\\p{Nd}+/8",
     "0123456789\\x{660}\\x{661}\\x{662}\\x{663}\\x{664}\\x{665}\\x{666}\\x{667}\\x{668}\\x{669}\\x{66a}",
     "\\x{6f0}\\x{6f1}\\x{6f2}\\x{6f3}\\x{6f4}\\x{6f5}\\x{6f6}\\x{6f7}\\x{6f8}\\x{6f9}\\x{6fa}",
     "\\x{966}\\x{967}\\x{968}\\x{969}\\x{96a}\\x{96b}\\x{96c}\\x{96d}\\x{96e}\\x{96f}\\x{970}",
     "** Failers",
     "X",
     "",
     "/^\\p{Nl}/8",
     "\\x{16ee}",
     "** Failers",
     "X",
     "\\x{966}",
     "",
     "/^\\p{No}/8",
     "\\x{b2}",
     "\\x{b3}",
     "** Failers",
     "X",
     "\\x{16ee}",
     "",
     "/^\\p{Pc}/8",
     "\\x5f",
     "\\x{203f}",
     "** Failers",
     "X",
     "-",
     "\\x{58a}",
     "",
     "/^\\p{Pd}/8",
     "-",
     "\\x{58a}",
     "** Failers",
     "X",
     "\\x{203f}",
     "",
     "/^\\p{Pe}/8",
     ")",
     "]",
     "}",
     "\\x{f3b}",
     "** Failers",
     "X",
     "\\x{203f}",
     "(",
     "[",
     "{",
     "\\x{f3c}",
     "",
     "/^\\p{Pf}/8",
     "\\x{bb}",
     "\\x{2019}",
     "** Failers",
     "X",
     "\\x{203f}",
     "",
     "/^\\p{Pi}/8",
     "\\x{ab}",
     "\\x{2018}",
     "** Failers",
     "X",
     "\\x{203f}",
     "",
     "/^\\p{Po}/8",
     "!",
     "\\x{37e}",
     "** Failers",
     "X",
     "\\x{203f}",
     "",
     "/^\\p{Ps}/8",
     "(",
     "[",
     "{",
     "\\x{f3c}",
     "** Failers",
     "X",
     ")",
     "]",
     "}",
     "\\x{f3b}",
     "",
     "/^\\p{Sc}+/8",
     "$\\x{a2}\\x{a3}\\x{a4}\\x{a5}\\x{a6}",
     "\\x{9f2}",
     "** Failers",
     "X",
     "\\x{2c2}",
     "",
     "/^\\p{Sk}/8",
     "\\x{2c2}",
     "** Failers",
     "X",
     "\\x{9f2}",
     "",
     "/^\\p{Sm}+/8",
     "+<|~\\x{ac}\\x{2044}",
     "** Failers",
     "X",
     "\\x{9f2}",
     "",
     "/^\\p{So}/8",
     "\\x{a6}",
     "\\x{482} ",
     "** Failers",
     "X",
     "\\x{9f2}",
     "",
     "/^\\p{Zl}/8",
     "\\x{2028}",
     "** Failers",
     "X",
     "\\x{2029}",
     "",
     "/^\\p{Zp}/8",
     "\\x{2029}",
     "** Failers",
     "X",
     "\\x{2028}",
     "",
     "/^\\p{Zs}/8",
     "\\ \\",
     "\\x{a0}",
     "\\x{1680}",
     "\\x{180e}",
     "\\x{2000}",
     "\\x{2001}     ",
     "** Failers",
     "\\x{2028}",
     "\\x{200d} ",
     "",
     "/\\p{Nd}+(..)/8",
     "\\x{660}\\x{661}\\x{662}ABC",
     "",
     "/\\p{Nd}+?(..)/8",
     "\\x{660}\\x{661}\\x{662}ABC",
     "",
     "/\\p{Nd}{2,}(..)/8",
     "\\x{660}\\x{661}\\x{662}ABC",
     "",
     "/\\p{Nd}{2,}?(..)/8",
     "\\x{660}\\x{661}\\x{662}ABC",
     "",
     "/\\p{Nd}*(..)/8",
     "\\x{660}\\x{661}\\x{662}ABC",
     "",
     "/\\p{Nd}*?(..)/8",
     "\\x{660}\\x{661}\\x{662}ABC",
     "",
     "/\\p{Nd}{2}(..)/8",
     "\\x{660}\\x{661}\\x{662}ABC",
     "",
     "/\\p{Nd}{2,3}(..)/8",
     "\\x{660}\\x{661}\\x{662}ABC",
     "",
     "/\\p{Nd}{2,3}?(..)/8",
     "\\x{660}\\x{661}\\x{662}ABC",
     "",
     "/\\p{Nd}?(..)/8",
     "\\x{660}\\x{661}\\x{662}ABC",
     "",
     "/\\p{Nd}??(..)/8",
     "\\x{660}\\x{661}\\x{662}ABC",
     "",
     "/\\p{Nd}*+(..)/8",
     "\\x{660}\\x{661}\\x{662}ABC",
     "",
     "/\\p{Nd}*+(...)/8",
     "\\x{660}\\x{661}\\x{662}ABC",
     "",
     "/\\p{Nd}*+(....)/8",
     "** Failers",
     "\\x{660}\\x{661}\\x{662}ABC",
     "",
     "/\\p{Lu}/8i",
     "A",
     "a\\x{10a0}B ",
     "** Failers ",
     "a",
     "\\x{1d00}  "]
    [Just [" 0: \\x{7f}\\x{c0}\\x{30f}\\x{660}\\x{66c}\\x{f01}\\x{1680}<"],
     Just [" 0: \\x{0a}p\\x{300}9!$ <"],
     Nothing,
     Nothing,
     Just ["/^\\PC/8"],
     Just [" 0: X"],
     Just [" 0: *"],
     Nothing,
     Just ["/^\\PL/8"],
     Just [" 0: 9"],
     Just [" 0: *"],
     Nothing,
     Just ["/^\\PM/8"],
     Just [" 0: X"],
     Just [" 0: *"],
     Nothing,
     Just ["/^\\PN/8"],
     Just [" 0: X"],
     Just [" 0: *"],
     Nothing,
     Just ["/^\\PP/8"],
     Just [" 0: X"],
     Nothing,
     Nothing,
     Just ["/^\\PS/8"],
     Just [" 0: X"],
     Just [" 0: *"],
     Nothing,
     Just ["/^\\PZ/8"],
     Just [" 0: X"],
     Just [" 0: *"],
     Nothing,
     Just ["/^\\p{Cc}/8"],
     Just [" 0: \\x{17}"],
     Just [" 0: \\x{9f}"],
     Nothing,
     Nothing,
     Just ["/^\\p{Cf}/8"],
     Just [" 0: \\x{601}"],
     Nothing,
     Nothing,
     Just ["/^\\p{Cn}/8"],
     Just [" 0: \\x{e0000}"],
     Nothing,
     Nothing,
     Just ["/^\\p{Co}/8"],
     Just [" 0: \\x{f8ff}"],
     Nothing,
     Nothing,
     Just ["/^\\p{Cs}/8"],
     Just [" 0: \\x{dfff}"],
     Nothing,
     Nothing,
     Just ["/^\\p{Ll}/8"],
     Just [" 0: a"],
     Nothing,
     Nothing,
     Nothing,
     Just ["/^\\p{Lm}/8"],
     Just [" 0: \\x{2b0}"],
     Nothing,
     Nothing,
     Just ["/^\\p{Lo}/8"],
     Just [" 0: \\x{1bb}"],
     Just [" 0: \\x{3400}"],
     Just [" 0: \\x{3401}"],
     Just [" 0: \\x{4d00}"],
     Just [" 0: \\x{4db4}"],
     Just [" 0: \\x{4db5}"],
     Nothing,
     Nothing,
     Nothing,
     Nothing,
     Just ["/^\\p{Lt}/8"],
     Just [" 0: \\x{1c5}"],
     Nothing,
     Nothing,
     Nothing,
     Just ["/^\\p{Lu}/8"],
     Just [" 0: A"],
     Nothing,
     Nothing,
     Just ["/^\\p{Mc}/8"],
     Just [" 0: \\x{903}"],
     Nothing,
     Nothing,
     Nothing,
     Just ["/^\\p{Me}/8"],
     Just [" 0: \\x{488}"],
     Nothing,
     Nothing,
     Nothing,
     Nothing,
     Just ["/^\\p{Mn}/8"],
     Just [" 0: \\x{300}"],
     Nothing,
     Nothing,
     Nothing,
     Just ["/^\\p{Nd}+/8"],
     Just [" 0: 0123456789\\x{660}\\x{661}\\x{662}\\x{663}\\x{664}\\x{665}\\x{666}\\x{667}\\x{668}\\x{669}"],
     Just [" 0: \\x{6f0}\\x{6f1}\\x{6f2}\\x{6f3}\\x{6f4}\\x{6f5}\\x{6f6}\\x{6f7}\\x{6f8}\\x{6f9}"],
     Just [" 0: \\x{966}\\x{967}\\x{968}\\x{969}\\x{96a}\\x{96b}\\x{96c}\\x{96d}\\x{96e}\\x{96f}"],
     Nothing,
     Nothing,
     Just ["/^\\p{Nl}/8"],
     Just [" 0: \\x{16ee}"],
     Nothing,
     Nothing,
     Nothing,
     Just ["/^\\p{No}/8"],
     Just [" 0: \\x{b2}"],
     Just [" 0: \\x{b3}"],
     Nothing,
     Nothing,
     Nothing,
     Just ["/^\\p{Pc}/8"],
     Just [" 0: _"],
     Just [" 0: \\x{203f}"],
     Nothing,
     Nothing,
     Nothing,
     Nothing,
     Just ["/^\\p{Pd}/8"],
     Just [" 0: -"],
     Just [" 0: \\x{58a}"],
     Nothing,
     Nothing,
     Nothing,
     Just ["/^\\p{Pe}/8"],
     Just [" 0: )"],
     Just [" 0: ]"],
     Just [" 0: }"],
     Just [" 0: \\x{f3b}"],
     Nothing,
     Nothing,
     Nothing,
     Nothing,
     Nothing,
     Nothing,
     Nothing,
     Just ["/^\\p{Pf}/8"],
     Just [" 0: \\x{bb}"],
     Just [" 0: \\x{2019}"],
     Nothing,
     Nothing,
     Nothing,
     Just ["/^\\p{Pi}/8"],
     Just [" 0: \\x{ab}"],
     Just [" 0: \\x{2018}"],
     Nothing,
     Nothing,
     Nothing,
     Just ["/^\\p{Po}/8"],
     Just [" 0: !"],
     Just [" 0: \\x{37e}"],
     Just [" 0: *"],
     Nothing,
     Nothing,
     Just ["/^\\p{Ps}/8"],
     Just [" 0: ("],
     Just [" 0: ["],
     Just [" 0: {"],
     Just [" 0: \\x{f3c}"],
     Nothing,
     Nothing,
     Nothing,
     Nothing,
     Nothing,
     Nothing,
     Just ["/^\\p{Sc}+/8"],
     Just [" 0: $\\x{a2}\\x{a3}\\x{a4}\\x{a5}"],
     Just [" 0: \\x{9f2}"],
     Nothing,
     Nothing,
     Nothing,
     Just ["/^\\p{Sk}/8"],
     Just [" 0: \\x{2c2}"],
     Nothing,
     Nothing,
     Nothing,
     Just ["/^\\p{Sm}+/8"],
     Just [" 0: +<|~\\x{ac}\\x{2044}"],
     Nothing,
     Nothing,
     Nothing,
     Just ["/^\\p{So}/8"],
     Just [" 0: \\x{a6}"],
     Just [" 0: \\x{482}"],
     Nothing,
     Nothing,
     Nothing,
     Just ["/^\\p{Zl}/8"],
     Just [" 0: \\x{2028}"],
     Nothing,
     Nothing,
     Nothing,
     Just ["/^\\p{Zp}/8"],
     Just [" 0: \\x{2029}"],
     Nothing,
     Nothing,
     Nothing,
     Just ["/^\\p{Zs}/8"],
     Just [" 0:  "],
     Just [" 0: \\x{a0}"],
     Just [" 0: \\x{1680}"],
     Just [" 0: \\x{180e}"],
     Just [" 0: \\x{2000}"],
     Just [" 0: \\x{2001}"],
     Nothing,
     Nothing,
     Nothing,
     Just ["/\\p{Nd}+(..)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],
     Just [" 1: AB"],
     Just ["/\\p{Nd}+?(..)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}"],
     Just [" 1: \\x{661}\\x{662}"],
     Just ["/\\p{Nd}{2,}(..)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],
     Just [" 1: AB"],
     Just ["/\\p{Nd}{2,}?(..)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}A"],
     Just [" 1: \\x{662}A"],
     Just ["/\\p{Nd}*(..)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],
     Just [" 1: AB"],
     Just ["/\\p{Nd}*?(..)/8"],
     Just [" 0: \\x{660}\\x{661}"],
     Just [" 1: \\x{660}\\x{661}"],
     Just ["/\\p{Nd}{2}(..)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}A"],
     Just [" 1: \\x{662}A"],
     Just ["/\\p{Nd}{2,3}(..)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],
     Just [" 1: AB"],
     Just ["/\\p{Nd}{2,3}?(..)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}A"],
     Just [" 1: \\x{662}A"],
     Just ["/\\p{Nd}?(..)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}"],
     Just [" 1: \\x{661}\\x{662}"],
     Just ["/\\p{Nd}??(..)/8"],
     Just [" 0: \\x{660}\\x{661}"],
     Just [" 1: \\x{660}\\x{661}"],
     Just ["/\\p{Nd}*+(..)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],
     Just [" 1: AB"],
     Just ["/\\p{Nd}*+(...)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}ABC"],
     Just [" 1: ABC"],
     Just ["/\\p{Nd}*+(....)/8"],
     Just [" 0: ** F"],
     Just [" 1: ** F"],
     Nothing,
     Just ["/\\p{Lu}/8i"],
     Just [" 0: A"],
     Just [" 0: \\x{10a0}"],
     Just [" 0: F"],
     Nothing,
     Nothing]
,
testRegex "\\p{^Lu}" [caseless]
    ["1234",
     "** Failers",
     "ABC "]
    [Just [" 0: 1"],
     Just [" 0: *"],
     Nothing]
,
testRegex "\\P{Lu}" [caseless]
    ["1234",
     "** Failers",
     "ABC "]
    [Just [" 0: 1"],
     Just [" 0: *"],
     Nothing]
,
testRegex "(?<=A\\p{Nd})XYZ" [ERROR]
    ["A2XYZ",
     "123A5XYZPQR",
     "ABA\\x{660}XYZpqr",
     "** Failers",
     "AXYZ",
     "XYZ     ",
     "",
     "/(?<!\\pL)XYZ/8",
     "1XYZ",
     "AB=XYZ.. ",
     "XYZ ",
     "** Failers",
     "WXYZ "]
    [Just [" 0: XYZ"],
     Just [" 0: XYZ"],
     Just [" 0: XYZ"],
     Nothing,
     Nothing,
     Nothing,
     Just ["/(?<!\\pL)XYZ/8"],
     Just [" 0: XYZ"],
     Just [" 0: XYZ"],
     Just [" 0: XYZ"],
     Nothing,
     Nothing]
,
testRegex "[\\p{L}]" [ERROR]
    []
    [Just ["------------------------------------------------------------------"],
     Just ["------------------------------------------------------------------"],
     Just ["Capturing subpattern count = 0"],
     Just ["No options"],
     Just ["No first char"],
     Just ["No need char"]]
,
testRegex "[\\p{^L}]" [ERROR]
    []
    [Just ["------------------------------------------------------------------"],
     Just ["------------------------------------------------------------------"],
     Just ["Capturing subpattern count = 0"],
     Just ["No options"],
     Just ["No first char"],
     Just ["No need char"]]
,
testRegex "[\\P{L}]" [ERROR]
    []
    [Just ["------------------------------------------------------------------"],
     Just ["------------------------------------------------------------------"],
     Just ["Capturing subpattern count = 0"],
     Just ["No options"],
     Just ["No first char"],
     Just ["No need char"]]
,
testRegex "[\\P{^L}]" [ERROR]
    []
    [Just ["------------------------------------------------------------------"],
     Just ["------------------------------------------------------------------"],
     Just ["Capturing subpattern count = 0"],
     Just ["No options"],
     Just ["No first char"],
     Just ["No need char"]]
,
testRegex "[abc\\p{L}\\x{0660}]" [ERROR]
    []
    [Just ["------------------------------------------------------------------"],
     Just ["------------------------------------------------------------------"],
     Just ["Capturing subpattern count = 0"],
     Just ["Options: utf8"],
     Just ["No first char"],
     Just ["No need char"]]
,
testRegex "[\\p{Nd}]" [ERROR]
    ["1234"]
    [Just ["------------------------------------------------------------------"],
     Just ["------------------------------------------------------------------"],
     Just ["Capturing subpattern count = 0"],
     Just ["Options: utf8"],
     Just ["No first char"],
     Just ["No need char"],
     Just [" 0: 1"]]
,
testRegex "[\\p{Nd}+-]+" [ERROR]
    ["1234",
     "12-34",
     "12+\\x{661}-34  ",
     "** Failers",
     "abcd  "]
    [Just ["------------------------------------------------------------------"],
     Just ["------------------------------------------------------------------"],
     Just ["Capturing subpattern count = 0"],
     Just ["Partial matching not supported"],
     Just ["Options: utf8"],
     Just ["No first char"],
     Just ["No need char"],
     Just [" 0: 1234"],
     Just [" 0: 12-34"],
     Just [" 0: 12+\\x{661}-34"],
     Nothing,
     Nothing]
,
testRegex "[\\P{Nd}]+" [ERROR]
    ["abcd",
     "** Failers",
     "1234"]
    [Just [" 0: abcd"],
     Just [" 0: ** Failers"],
     Nothing]
,
testRegex "\\D+" [ERROR]
    ["11111111111111111111111111111111111111111111111111111111111111111111111",
     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
     "",
     "/\\P{Nd}+/8",
     "11111111111111111111111111111111111111111111111111111111111111111111111",
     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]
    [Nothing,
     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["/\\P{Nd}+/8"],
     Nothing,
     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]]
,
testRegex "[\\D]+" [ERROR]
    ["11111111111111111111111111111111111111111111111111111111111111111111111",
     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]
    [Nothing,
     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]]
,
testRegex "[\\P{Nd}]+" [ERROR]
    ["11111111111111111111111111111111111111111111111111111111111111111111111",
     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]
    [Nothing,
     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]]
,
testRegex "[\\D\\P{Nd}]+" [ERROR]
    ["11111111111111111111111111111111111111111111111111111111111111111111111",
     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]
    [Nothing,
     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]]
,
testRegex "\\pL" [ERROR]
    ["a",
     "A "]
    [Just [" 0: a"],
     Just [" 0: A"]]
,
testRegex "\\pL" [caseless]
    ["a",
     "A ",
     "",
     "/\\p{Lu}/8 ",
     "A",
     "aZ",
     "** Failers",
     "abc   "]
    [Just [" 0: a"],
     Just [" 0: A"],
     Just ["/\\p{Lu}/8 "],
     Just [" 0: A"],
     Just [" 0: Z"],
     Just [" 0: F"],
     Nothing]
,
testRegex "\\p{Lu}" [caseless]
    ["A",
     "aZ",
     "** Failers",
     "abc   "]
    [Just [" 0: A"],
     Just [" 0: Z"],
     Just [" 0: F"],
     Nothing]
,
testRegex "\\p{Ll}" [ERROR]
    ["a",
     "Az",
     "** Failers",
     "ABC   "]
    [Just [" 0: a"],
     Just [" 0: z"],
     Just [" 0: a"],
     Nothing]
,
testRegex "\\p{Ll}" [ERROR]
    ["a",
     "Az",
     "** Failers",
     "ABC   "]
    [Just [" 0: a"],
     Just [" 0: z"],
     Just [" 0: a"],
     Nothing]
,
testRegex "^\\x{c0}$" [caseless]
    ["\\x{c0}",
     "\\x{e0} "]
    [Just [" 0: \\x{c0}"],
     Just [" 0: \\x{e0}"]]
,
testRegex "^\\x{e0}$" [caseless]
    ["\\x{c0}",
     "\\x{e0} "]
    [Just [" 0: \\x{c0}"],
     Just [" 0: \\x{e0}"]]
,
testRegex "A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}" [ERROR]
    ["A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}",
     "** Failers",
     "a\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}   ",
     "A\\x{3b1}\\x{10427}\\x{ff3a}\\x{1fb0}",
     "A\\x{391}\\x{1044F}\\x{ff3a}\\x{1fb0}",
     "A\\x{391}\\x{10427}\\x{ff5a}\\x{1fb0}",
     "A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb8}"]
    [Just [" 0: A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}"],
     Nothing,
     Nothing,
     Nothing,
     Nothing,
     Nothing,
     Nothing]
,
testRegex "A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}" [caseless]
    ["A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}",
     "a\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}   ",
     "A\\x{3b1}\\x{10427}\\x{ff3a}\\x{1fb0}",
     "A\\x{391}\\x{1044F}\\x{ff3a}\\x{1fb0}",
     "A\\x{391}\\x{10427}\\x{ff5a}\\x{1fb0}",
     "A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb8}"]
    [Just [" 0: A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}"],
     Just [" 0: a\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}"],
     Just [" 0: A\\x{3b1}\\x{10427}\\x{ff3a}\\x{1fb0}"],
     Just [" 0: A\\x{391}\\x{1044f}\\x{ff3a}\\x{1fb0}"],
     Just [" 0: A\\x{391}\\x{10427}\\x{ff5a}\\x{1fb0}"],
     Just [" 0: A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb8}"]]
,
testRegex "A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}" [ERROR]
    []
    [Just ["------------------------------------------------------------------"],
     Just ["------------------------------------------------------------------"],
     Just ["Capturing subpattern count = 0"],
     Just ["Options: caseless utf8"],
     Just ["First char = 'A' (caseless)"],
     Just ["No need char"]]
,
testRegex "A\\x{391}\\x{10427}\\x{ff3a}\\x{1fb0}" [ERROR]
    []
    [Just ["------------------------------------------------------------------"],
     Just ["------------------------------------------------------------------"],
     Just ["Capturing subpattern count = 0"],
     Just ["Options: utf8"],
     Just ["First char = 'A'"],
     Just ["Need char = 176"]]
,
testRegex "AB\\x{1fb0}" [ERROR]
    []
    [Just ["------------------------------------------------------------------"],
     Just ["------------------------------------------------------------------"],
     Just ["Capturing subpattern count = 0"],
     Just ["Options: utf8"],
     Just ["First char = 'A'"],
     Just ["Need char = 176"]]
,
testRegex "AB\\x{1fb0}" [caseless]
    []
    [Just ["------------------------------------------------------------------"],
     Just ["------------------------------------------------------------------"],
     Just ["Capturing subpattern count = 0"],
     Just ["Options: caseless utf8"],
     Just ["First char = 'A' (caseless)"],
     Just ["Need char = 'B' (caseless)"]]
,
testRegex "\\x{391}+" [caseless]
    ["\\x{391}\\x{3b1}\\x{3b1}\\x{3b1}\\x{391}"]
    [Just [" 0: \\x{391}\\x{3b1}\\x{3b1}\\x{3b1}\\x{391}"]]
,
testRegex "\\x{391}{3,5}(.)" [caseless]
    ["\\x{391}\\x{3b1}\\x{3b1}\\x{3b1}\\x{391}X"]
    [Just [" 0: \\x{391}\\x{3b1}\\x{3b1}\\x{3b1}\\x{391}X"],
     Just [" 1: X"]]
,
testRegex "\\x{391}{3,5}?(.)" [caseless]
    ["\\x{391}\\x{3b1}\\x{3b1}\\x{3b1}\\x{391}X"]
    [Just [" 0: \\x{391}\\x{3b1}\\x{3b1}\\x{3b1}"],
     Just [" 1: \\x{3b1}"]]
,
testRegex "[\\x{391}\\x{ff3a}]" [caseless]
    ["\\x{391}",
     "\\x{ff3a}",
     "\\x{3b1}",
     "\\x{ff5a}   ",
     "",
     "/[\\x{c0}\\x{391}]/8i",
     "\\x{c0}",
     "\\x{e0} "]
    [Just [" 0: \\x{391}"],
     Just [" 0: \\x{ff3a}"],
     Just [" 0: \\x{3b1}"],
     Just [" 0: \\x{ff5a}"],
     Just ["/[\\x{c0}\\x{391}]/8i"],
     Just [" 0: \\x{c0}"],
     Just [" 0: \\x{e0}"]]
,
testRegex "[\\x{105}-\\x{109}]" [ERROR]
    ["\\x{104}",
     "\\x{105}",
     "\\x{109}  ",
     "** Failers",
     "\\x{100}",
     "\\x{10a} ",
     "",
     "/[z-\\x{100}]/8iDZ ",
     "Z",
     "z",
     "\\x{39c}",
     "\\x{178}",
     "|",
     "\\x{80}",
     "\\x{ff}",
     "\\x{100}",
     "\\x{101} ",
     "** Failers",
     "\\x{102}",
     "Y",
     "y           "]
    [Just ["------------------------------------------------------------------"],
     Just ["------------------------------------------------------------------"],
     Just ["Capturing subpattern count = 0"],
     Just ["Options: caseless utf8"],
     Just ["No first char"],
     Just ["No need char"],
     Just [" 0: \\x{104}"],
     Just [" 0: \\x{105}"],
     Just [" 0: \\x{109}"],
     Nothing,
     Nothing,
     Nothing,
     Just ["/[z-\\x{100}]/8iDZ "],
     Just ["------------------------------------------------------------------"],
     Just ["------------------------------------------------------------------"],
     Just ["Capturing subpattern count = 0"],
     Just ["Options: caseless utf8"],
     Just ["No first char"],
     Just ["No need char"],
     Just [" 0: Z"],
     Just [" 0: z"],
     Just [" 0: \\x{39c}"],
     Just [" 0: \\x{178}"],
     Just [" 0: |"],
     Just [" 0: \\x{80}"],
     Just [" 0: \\x{ff}"],
     Just [" 0: \\x{100}"],
     Just [" 0: \\x{101}"],
     Nothing,
     Nothing,
     Nothing,
     Nothing]
,
testRegex "[z-\\x{100}]" [caseless]
    []
    [Just ["------------------------------------------------------------------"],
     Just ["------------------------------------------------------------------"],
     Just ["Capturing subpattern count = 0"],
     Just ["Options: caseless utf8"],
     Just ["No first char"],
     Just ["No need char"]]
,
testRegex "^\\X" [ERROR]
    ["A",
     "A\\x{300}BC ",
     "A\\x{300}\\x{301}\\x{302}BC ",
     "*** Failers",
     "\\x{300}  "]
    [Just [" 0: A"],
     Just [" 0: A\\x{300}"],
     Just [" 0: A\\x{300}\\x{301}\\x{302}"],
     Just [" 0: *"],
     Nothing]
,
testRegex "^[\\X]" [ERROR]
    ["X123",
     "*** Failers",
     "AXYZ"]
    [Just [" 0: X"],
     Nothing,
     Nothing]
,
testRegex "^(\\X*)C" [ERROR]
    ["A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301} ",
     "A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C "]
    [Just [" 0: A\\x{300}\\x{301}\\x{302}BC"],
     Just [" 1: A\\x{300}\\x{301}\\x{302}B"],
     Just [" 0: A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C"],
     Just [" 1: A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}"]]
,
testRegex "^(\\X*?)C" [ERROR]
    ["A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301} ",
     "A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C "]
    [Just [" 0: A\\x{300}\\x{301}\\x{302}BC"],
     Just [" 1: A\\x{300}\\x{301}\\x{302}B"],
     Just [" 0: A\\x{300}\\x{301}\\x{302}BC"],
     Just [" 1: A\\x{300}\\x{301}\\x{302}B"]]
,
testRegex "^(\\X*)(.)" [ERROR]
    ["A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301} ",
     "A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C "]
    [Just [" 0: A\\x{300}\\x{301}\\x{302}BCA"],
     Just [" 1: A\\x{300}\\x{301}\\x{302}BC"],
     Just [" 2: A"],
     Just [" 0: A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C"],
     Just [" 1: A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}"],
     Just [" 2: C"]]
,
testRegex "^(\\X*?)(.)" [ERROR]
    ["A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301} ",
     "A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C "]
    [Just [" 0: A"],
     Just [" 1: "],
     Just [" 2: A"],
     Just [" 0: A"],
     Just [" 1: "],
     Just [" 2: A"]]
,
testRegex "^\\X(.)" [ERROR]
    ["*** Failers",
     "A\\x{300}\\x{301}\\x{302}"]
    [Just [" 0: **"],
     Just [" 1: *"],
     Nothing]
,
testRegex "^\\X{2,3}(.)" [ERROR]
    ["A\\x{300}\\x{301}B\\x{300}X",
     "A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}",
     "A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}X",
     "A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}DA\\x{300}X",
     "",
     "/^\\X{2,3}?(.)/8",
     "A\\x{300}\\x{301}B\\x{300}X",
     "A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}",
     "A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}X",
     "A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}DA\\x{300}X",
     "",
     "/^\\p{Han}+/8",
     "\\x{2e81}\\x{3007}\\x{2f804}\\x{31a0}",
     "** Failers",
     "\\x{2e7f}  "]
    [Just [" 0: A\\x{300}\\x{301}B\\x{300}X"],
     Just [" 1: X"],
     Just [" 0: A\\x{300}\\x{301}B\\x{300}C"],
     Just [" 1: C"],
     Just [" 0: A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}X"],
     Just [" 1: X"],
     Just [" 0: A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}D"],
     Just [" 1: D"],
     Just ["/^\\X{2,3}?(.)/8"],
     Just [" 0: A\\x{300}\\x{301}B\\x{300}X"],
     Just [" 1: X"],
     Just [" 0: A\\x{300}\\x{301}B\\x{300}C"],
     Just [" 1: C"],
     Just [" 0: A\\x{300}\\x{301}B\\x{300}C"],
     Just [" 1: C"],
     Just [" 0: A\\x{300}\\x{301}B\\x{300}C"],
     Just [" 1: C"],
     Just ["/^\\p{Han}+/8"],
     Just [" 0: \\x{2e81}\\x{3007}\\x{2f804}"],
     Nothing,
     Nothing]
,
testRegex "^\\P{Katakana}+" [ERROR]
    ["\\x{3105}",
     "** Failers",
     "\\x{30ff}  "]
    [Just [" 0: \\x{3105}"],
     Just [" 0: ** Failers"],
     Nothing]
,
testRegex "^[\\p{Arabic}]" [ERROR]
    ["\\x{06e9}",
     "\\x{060b}",
     "** Failers",
     "X\\x{06e9}   "]
    [Just [" 0: \\x{6e9}"],
     Just [" 0: \\x{60b}"],
     Nothing,
     Nothing]
,
testRegex "^[\\P{Yi}]" [ERROR]
    ["\\x{2f800}",
     "** Failers",
     "\\x{a014}",
     "\\x{a4c6}   ",
     "",
     "/^\\p{Any}X/8",
     "AXYZ",
     "\\x{1234}XYZ ",
     "** Failers",
     "X  ",
     "",
     "/^\\P{Any}X/8",
     "** Failers",
     "AX",
     "",
     "/^\\p{Any}?X/8",
     "XYZ",
     "AXYZ",
     "\\x{1234}XYZ ",
     "** Failers",
     "ABXYZ   "]
    [Just [" 0: \\x{2f800}"],
     Just [" 0: *"],
     Nothing,
     Nothing,
     Just ["/^\\p{Any}X/8"],
     Just [" 0: AX"],
     Just [" 0: \\x{1234}X"],
     Nothing,
     Nothing,
     Just ["/^\\P{Any}X/8"],
     Nothing,
     Nothing,
     Just ["/^\\p{Any}?X/8"],
     Just [" 0: X"],
     Just [" 0: AX"],
     Just [" 0: \\x{1234}X"],
     Nothing,
     Nothing]
,
testRegex "^\\P{Any}?X" [ERROR]
    ["XYZ",
     "** Failers",
     "AXYZ",
     "\\x{1234}XYZ ",
     "ABXYZ   "]
    [Just [" 0: X"],
     Nothing,
     Nothing,
     Nothing,
     Nothing]
,
testRegex "^\\p{Any}+X" [ERROR]
    ["AXYZ",
     "\\x{1234}XYZ",
     "A\\x{1234}XYZ",
     "** Failers",
     "XYZ"]
    [Just [" 0: AX"],
     Just [" 0: \\x{1234}X"],
     Just [" 0: A\\x{1234}X"],
     Nothing,
     Nothing]
,
testRegex "^\\P{Any}+X" [ERROR]
    ["** Failers",
     "AXYZ",
     "\\x{1234}XYZ",
     "A\\x{1234}XYZ",
     "XYZ"]
    [Nothing,
     Nothing,
     Nothing,
     Nothing,
     Nothing]
,
testRegex "^\\p{Any}*X" [ERROR]
    ["XYZ",
     "AXYZ",
     "\\x{1234}XYZ",
     "A\\x{1234}XYZ",
     "** Failers"]
    [Just [" 0: X"],
     Just [" 0: AX"],
     Just [" 0: \\x{1234}X"],
     Just [" 0: A\\x{1234}X"],
     Nothing]
,
testRegex "^\\P{Any}*X" [ERROR]
    ["XYZ",
     "** Failers",
     "AXYZ",
     "\\x{1234}XYZ",
     "A\\x{1234}XYZ"]
    [Just [" 0: X"],
     Nothing,
     Nothing,
     Nothing,
     Nothing]
,
testRegex "^[\\p{Any}]X" [ERROR]
    ["AXYZ",
     "\\x{1234}XYZ ",
     "** Failers",
     "X  ",
     "",
     "/^[\\P{Any}]X/8",
     "** Failers",
     "AX",
     "",
     "/^[\\p{Any}]?X/8",
     "XYZ",
     "AXYZ",
     "\\x{1234}XYZ ",
     "** Failers",
     "ABXYZ   "]
    [Just [" 0: AX"],
     Just [" 0: \\x{1234}X"],
     Nothing,
     Nothing,
     Just ["/^[\\P{Any}]X/8"],
     Nothing,
     Nothing,
     Just ["/^[\\p{Any}]?X/8"],
     Just [" 0: X"],
     Just [" 0: AX"],
     Just [" 0: \\x{1234}X"],
     Nothing,
     Nothing]
,
testRegex "^[\\P{Any}]?X" [ERROR]
    ["XYZ",
     "** Failers",
     "AXYZ",
     "\\x{1234}XYZ ",
     "ABXYZ   "]
    [Just [" 0: X"],
     Nothing,
     Nothing,
     Nothing,
     Nothing]
,
testRegex "^[\\p{Any}]+X" [ERROR]
    ["AXYZ",
     "\\x{1234}XYZ",
     "A\\x{1234}XYZ",
     "** Failers",
     "XYZ"]
    [Just [" 0: AX"],
     Just [" 0: \\x{1234}X"],
     Just [" 0: A\\x{1234}X"],
     Nothing,
     Nothing]
,
testRegex "^[\\P{Any}]+X" [ERROR]
    ["** Failers",
     "AXYZ",
     "\\x{1234}XYZ",
     "A\\x{1234}XYZ",
     "XYZ"]
    [Nothing,
     Nothing,
     Nothing,
     Nothing,
     Nothing]
,
testRegex "^[\\p{Any}]*X" [ERROR]
    ["XYZ",
     "AXYZ",
     "\\x{1234}XYZ",
     "A\\x{1234}XYZ",
     "** Failers"]
    [Just [" 0: X"],
     Just [" 0: AX"],
     Just [" 0: \\x{1234}X"],
     Just [" 0: A\\x{1234}X"],
     Nothing]
,
testRegex "^[\\P{Any}]*X" [ERROR]
    ["XYZ",
     "** Failers",
     "AXYZ",
     "\\x{1234}XYZ",
     "A\\x{1234}XYZ"]
    [Just [" 0: X"],
     Nothing,
     Nothing,
     Nothing,
     Nothing]
,
testRegex "^\\p{Any}{3,5}?" [ERROR]
    ["abcdefgh",
     "\\x{1234}\\n\\r\\x{3456}xyz "]
    [Just [" 0: abc"],
     Just [" 0: \\x{1234}\\x{0a}\\x{0d}"]]
,
testRegex "^\\p{Any}{3,5}" [ERROR]
    ["abcdefgh",
     "\\x{1234}\\n\\r\\x{3456}xyz "]
    [Just [" 0: abcde"],
     Just [" 0: \\x{1234}\\x{0a}\\x{0d}\\x{3456}x"]]
,
testRegex "^\\P{Any}{3,5}?" [ERROR]
    ["** Failers",
     "abcdefgh",
     "\\x{1234}\\n\\r\\x{3456}xyz "]
    [Nothing,
     Nothing,
     Nothing]
,
testRegex "^\\p{L&}X" [ERROR]
    ["AXY",
     "aXY",
     "\\x{1c5}XY",
     "** Failers",
     "\\x{1bb}XY",
     "\\x{2b0}XY",
     "!XY      "]
    [Just [" 0: AX"],
     Just [" 0: aX"],
     Just [" 0: \\x{1c5}X"],
     Nothing,
     Nothing,
     Nothing,
     Nothing]
,
testRegex "^[\\p{L&}]X" [ERROR]
    ["AXY",
     "aXY",
     "\\x{1c5}XY",
     "** Failers",
     "\\x{1bb}XY",
     "\\x{2b0}XY",
     "!XY      "]
    [Just [" 0: AX"],
     Just [" 0: aX"],
     Just [" 0: \\x{1c5}X"],
     Nothing,
     Nothing,
     Nothing,
     Nothing]
,
testRegex "^\\p{L&}+X" [ERROR]
    ["AXY",
     "aXY",
     "AbcdeXyz ",
     "\\x{1c5}AbXY",
     "abcDEXypqreXlmn ",
     "** Failers",
     "\\x{1bb}XY",
     "\\x{2b0}XY",
     "!XY      "]
    [Just [" 0: AX"],
     Just [" 0: aX"],
     Just [" 0: AbcdeX"],
     Just [" 0: \\x{1c5}AbX"],
     Just [" 0: abcDEXypqreX"],
     Nothing,
     Nothing,
     Nothing,
     Nothing]
,
testRegex "^[\\p{L&}]+X" [ERROR]
    ["AXY",
     "aXY",
     "AbcdeXyz ",
     "\\x{1c5}AbXY",
     "abcDEXypqreXlmn ",
     "** Failers",
     "\\x{1bb}XY",
     "\\x{2b0}XY",
     "!XY      "]
    [Just [" 0: AX"],
     Just [" 0: aX"],
     Just [" 0: AbcdeX"],
     Just [" 0: \\x{1c5}AbX"],
     Just [" 0: abcDEXypqreX"],
     Nothing,
     Nothing,
     Nothing,
     Nothing]
,
testRegex "^\\p{L&}+?X" [ERROR]
    ["AXY",
     "aXY",
     "AbcdeXyz ",
     "\\x{1c5}AbXY",
     "abcDEXypqreXlmn ",
     "** Failers",
     "\\x{1bb}XY",
     "\\x{2b0}XY",
     "!XY      "]
    [Just [" 0: AX"],
     Just [" 0: aX"],
     Just [" 0: AbcdeX"],
     Just [" 0: \\x{1c5}AbX"],
     Just [" 0: abcDEX"],
     Nothing,
     Nothing,
     Nothing,
     Nothing]
,
testRegex "^[\\p{L&}]+?X" [ERROR]
    ["AXY",
     "aXY",
     "AbcdeXyz ",
     "\\x{1c5}AbXY",
     "abcDEXypqreXlmn ",
     "** Failers",
     "\\x{1bb}XY",
     "\\x{2b0}XY",
     "!XY      "]
    [Just [" 0: AX"],
     Just [" 0: aX"],
     Just [" 0: AbcdeX"],
     Just [" 0: \\x{1c5}AbX"],
     Just [" 0: abcDEX"],
     Nothing,
     Nothing,
     Nothing,
     Nothing]
,
testRegex "^\\P{L&}X" [ERROR]
    ["!XY",
     "\\x{1bb}XY",
     "\\x{2b0}XY",
     "** Failers",
     "\\x{1c5}XY",
     "AXY      "]
    [Just [" 0: !X"],
     Just [" 0: \\x{1bb}X"],
     Just [" 0: \\x{2b0}X"],
     Nothing,
     Nothing,
     Nothing]
,
testRegex "^[\\P{L&}]X" [ERROR]
    ["!XY",
     "\\x{1bb}XY",
     "\\x{2b0}XY",
     "** Failers",
     "\\x{1c5}XY",
     "AXY      "]
    [Just [" 0: !X"],
     Just [" 0: \\x{1bb}X"],
     Just [" 0: \\x{2b0}X"],
     Nothing,
     Nothing,
     Nothing]
,
testRegex "^(\\p{Z}[^\\p{C}\\p{Z}]+)*$" []
    ["\\xa0!"]
    [Just [" 0: \\xa0!"],
     Just [" 1: \\xa0!"]]
,
testRegex "^[\\pL](abc)(?1)" []
    ["AabcabcYZ    "]
    [Just [" 0: Aabcabc"],
     Just [" 1: abc"]]
,
testRegex "([\\pL]=(abc))*X" []
    ["L=abcX"]
    [Just [" 0: L=abcX"],
     Just [" 1: L=abc"],
     Just [" 2: abc"]]
,
testRegex "ERROR" []
    ["will match it only with UCP support, because without that it has no notion",
     "of case for anything other than the ASCII letters. / "]
    [Just ["will match it only with UCP support, because without that it has no notion"],
     Just ["of case for anything other than the ASCII letters. / "]]
,
testRegex "((?i)[\\x{c0}])" [ERROR]
    ["\\x{c0}",
     "\\x{e0} "]
    [Just [" 0: \\x{c0}"],
     Just [" 1: \\x{c0}"],
     Just [" 0: \\x{e0}"],
     Just [" 1: \\x{e0}"]]
,
testRegex "(?i:[\\x{c0}])" [ERROR]
    ["\\x{c0}",
     "\\x{e0} ",
     "",
     "/^\\p{Balinese}\\p{Cuneiform}\\p{Nko}\\p{Phags_Pa}\\p{Phoenician}/8",
     "\\x{1b00}\\x{12000}\\x{7c0}\\x{a840}\\x{10900}"]
    [Just [" 0: \\x{c0}"],
     Just [" 0: \\x{e0}"],
     Just ["/^\\p{Balinese}\\p{Cuneiform}\\p{Nko}\\p{Phags_Pa}\\p{Phoenician}/8"],
     Just [" 0: \\x{1b00}\\x{12000}\\x{7c0}\\x{a840}\\x{10900}"]]
,
testRegex "ERROR" []
    ["same character differ. The first went wrong with heap fram storage; the 2nd",
     "was broken in all cases./"]
    [Just ["same character differ. The first went wrong with heap fram storage; the 2nd"],
     Just ["was broken in all cases./"]]
,
testRegex "^\\x{023a}+?(\\x{0130}+)" [caseless]
    ["\\x{023a}\\x{2c65}\\x{0130}",
     "",
     "/^\\x{023a}+([^X])/8i",
     "\\x{023a}\\x{2c65}X"]
    [Just [" 0: \\x{23a}\\x{2c65}\\x{130}"],
     Just [" 1: \\x{130}"],
     Just ["/^\\x{023a}+([^X])/8i"],
     Just [" 0: \\x{23a}\\x{2c65}"],
     Just [" 1: \\x{2c65}"]]
,
testRegex "Check property support in non-UTF-8 mode" []
    ["",
     "/\\p{L}{4}/",
     "123abcdefg",
     "123abc\\xc4\\xc5zz"]
    [Just ["/\\p{L}{4}/"],
     Just [" 0: abcd"],
     Just [" 0: abc\\xc4"]]
,
testRegex "\\X{1,3}\\d" []
    ["\\x8aBCD",
     "",
     "/\\X?\\d/",
     "\\x8aBCD "]
    [Nothing,
     Just ["/\\X?\\d/"],
     Nothing]
,
testRegex "\\P{L}?\\d" []
    ["\\x8aBCD "]
    [Nothing]
,
testRegex "[\\PPP\\x8a]{1,}\\x80" []
    ["A\\x80"]
    [Just [" 0: A\\x80"]]
,
testRegex "(?:[\\PPa*]*){8,}" []
    []
    []
,
testRegex "[\\P{Any}]" [ERROR]
    []
    [Just ["------------------------------------------------------------------"],
     Just ["------------------------------------------------------------------"]]
,
testRegex "[\\P{Any}\\E]" [ERROR]
    []
    [Just ["------------------------------------------------------------------"],
     Just ["------------------------------------------------------------------"]]
,
testRegex "(\\P{Yi}+\\277)" []
    []
    []
,
testRegex "(\\P{Yi}+\\277)?" []
    []
    []
,
testRegex "(?<=\\P{Yi}{3}A)X" []
    []
    []
,
testRegex "\\p{Yi}+(\\P{Yi}+)(?1)" []
    []
    []
,
testRegex "(\\P{Yi}{2}\\277)?" []
    []
    []
,
testRegex "[\\P{Yi}A]" []
    []
    []
,
testRegex "[\\P{Yi}\\P{Yi}\\P{Yi}A]" []
    []
    []
,
testRegex "[^\\P{Yi}A]" []
    []
    []
,
testRegex "[^\\P{Yi}\\P{Yi}\\P{Yi}A]" []
    []
    []
,
testRegex "(\\P{Yi}*\\277)*" []
    []
    []
,
testRegex "(\\P{Yi}*?\\277)*" []
    []
    []
,
testRegex "(\\p{Yi}*+\\277)*" []
    []
    []
,
testRegex "(\\P{Yi}?\\277)*" []
    []
    []
,
testRegex "(\\P{Yi}??\\277)*" []
    []
    []
,
testRegex "(\\p{Yi}?+\\277)*" []
    []
    []
,
testRegex "(\\P{Yi}{0,3}\\277)*" []
    []
    []
,
testRegex "(\\P{Yi}{0,3}?\\277)*" []
    []
    []
,
testRegex "(\\p{Yi}{0,3}+\\277)*" []
    []
    []
,
testRegex " End of testinput6 " []
    []
    []