packages feed

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

testRegex "\\pL\\P{Nd}" [ERROR]
    ["AB",
     "*** Failers",
     "A0",
     "00   "]
    [Just [" 0: AB"],
     Just [" 0: Fa"],
     Nothing,
     Nothing]
,
testRegex "\\X." [ERROR]
    ["AB",
     "A\\x{300}BC ",
     "A\\x{300}\\x{301}\\x{302}BC ",
     "*** Failers",
     "\\x{300}  "]
    [Just [" 0: AB"],
     Just [" 0: A\\x{300}B"],
     Just [" 0: A\\x{300}\\x{301}\\x{302}B"],
     Just [" 0: **"],
     Nothing]
,
testRegex "\\X\\X" [ERROR]
    ["ABC",
     "A\\x{300}B\\x{300}\\x{301}C ",
     "A\\x{300}\\x{301}\\x{302}BC ",
     "*** Failers",
     "\\x{300}  "]
    [Just [" 0: AB"],
     Just [" 0: A\\x{300}B\\x{300}\\x{301}"],
     Just [" 0: A\\x{300}\\x{301}\\x{302}B"],
     Just [" 0: **"],
     Nothing]
,
testRegex "^\\pL+" [ERROR]
    ["abcd",
     "a ",
     "*** Failers "]
    [Just [" 0: abcd"],
     Just [" 1: abc"],
     Just [" 2: ab"],
     Just [" 3: a"],
     Just [" 0: a"],
     Nothing]
,
testRegex "^\\PL+" [ERROR]
    ["1234",
     "= ",
     "*** Failers ",
     "abcd "]
    [Just [" 0: 1234"],
     Just [" 1: 123"],
     Just [" 2: 12"],
     Just [" 3: 1"],
     Just [" 0: ="],
     Just [" 0: *** "],
     Just [" 1: ***"],
     Just [" 2: **"],
     Just [" 3: *"],
     Nothing]
,
testRegex "^\\X+" [ERROR]
    ["abcdA\\x{300}\\x{301}\\x{302}",
     "A\\x{300}\\x{301}\\x{302}",
     "A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}",
     "a ",
     "*** Failers ",
     "\\x{300}\\x{301}\\x{302}"]
    [Just [" 0: abcdA\\x{300}\\x{301}\\x{302}"],
     Just [" 1: abcd"],
     Just [" 2: abc"],
     Just [" 3: ab"],
     Just [" 4: a"],
     Just [" 0: A\\x{300}\\x{301}\\x{302}"],
     Just [" 0: A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}"],
     Just [" 1: A\\x{300}\\x{301}\\x{302}"],
     Just [" 0: a"],
     Just [" 0: *** Failers"],
     Just [" 1: *** Failer"],
     Just [" 2: *** Faile"],
     Just [" 3: *** Fail"],
     Just [" 4: *** Fai"],
     Just [" 5: *** Fa"],
     Just [" 6: *** F"],
     Just [" 7: *** "],
     Just [" 8: ***"],
     Just [" 9: **"],
     Just ["10: *"],
     Nothing]
,
testRegex "\\X?abc" [ERROR]
    ["abc",
     "A\\x{300}abc",
     "A\\x{300}\\x{301}\\x{302}A\\x{300}A\\x{300}A\\x{300}abcxyz",
     "\\x{300}abc  ",
     "*** Failers"]
    [Just [" 0: abc"],
     Just [" 0: A\\x{300}abc"],
     Just [" 0: A\\x{300}abc"],
     Just [" 0: abc"],
     Nothing]
,
testRegex "^\\X?abc" [ERROR]
    ["abc",
     "A\\x{300}abc",
     "*** Failers",
     "A\\x{300}\\x{301}\\x{302}A\\x{300}A\\x{300}A\\x{300}abcxyz",
     "\\x{300}abc  "]
    [Just [" 0: abc"],
     Just [" 0: A\\x{300}abc"],
     Nothing,
     Nothing,
     Nothing]
,
testRegex "\\X*abc" [ERROR]
    ["abc",
     "A\\x{300}abc",
     "A\\x{300}\\x{301}\\x{302}A\\x{300}A\\x{300}A\\x{300}abcxyz",
     "\\x{300}abc  ",
     "*** Failers"]
    [Just [" 0: abc"],
     Just [" 0: A\\x{300}abc"],
     Just [" 0: A\\x{300}\\x{301}\\x{302}A\\x{300}A\\x{300}A\\x{300}abc"],
     Just [" 0: abc"],
     Nothing]
,
testRegex "^\\X*abc" [ERROR]
    ["abc",
     "A\\x{300}abc",
     "A\\x{300}\\x{301}\\x{302}A\\x{300}A\\x{300}A\\x{300}abcxyz",
     "*** Failers",
     "\\x{300}abc  "]
    [Just [" 0: abc"],
     Just [" 0: A\\x{300}abc"],
     Just [" 0: A\\x{300}\\x{301}\\x{302}A\\x{300}A\\x{300}A\\x{300}abc"],
     Nothing,
     Nothing]
,
testRegex "^\\pL?=." [ERROR]
    ["A=b",
     "=c ",
     "*** Failers",
     "1=2 ",
     "AAAA=b  "]
    [Just [" 0: A=b"],
     Just [" 0: =c"],
     Nothing,
     Nothing,
     Nothing]
,
testRegex "^\\pL*=." [ERROR]
    ["AAAA=b",
     "=c ",
     "*** Failers",
     "1=2  "]
    [Just [" 0: AAAA=b"],
     Just [" 0: =c"],
     Nothing,
     Nothing]
,
testRegex "^\\X{2,3}X" [ERROR]
    ["A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}X",
     "A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}X ",
     "*** Failers",
     "X",
     "A\\x{300}\\x{301}\\x{302}X",
     "A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}X"]
    [Just [" 0: A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}X"],
     Just [" 0: A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}A\\x{300}\\x{301}\\x{302}X"],
     Nothing,
     Nothing,
     Nothing,
     Nothing]
,
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",
     "** 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}",
     "** Failers",
     "a ",
     "\\x{2b0}",
     "",
     "/^\\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"],
     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}"],
     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 [" 1: 0123456789\\x{660}\\x{661}\\x{662}\\x{663}\\x{664}\\x{665}\\x{666}\\x{667}\\x{668}"],
     Just [" 2: 0123456789\\x{660}\\x{661}\\x{662}\\x{663}\\x{664}\\x{665}\\x{666}\\x{667}"],
     Just [" 3: 0123456789\\x{660}\\x{661}\\x{662}\\x{663}\\x{664}\\x{665}\\x{666}"],
     Just [" 4: 0123456789\\x{660}\\x{661}\\x{662}\\x{663}\\x{664}\\x{665}"],
     Just [" 5: 0123456789\\x{660}\\x{661}\\x{662}\\x{663}\\x{664}"],
     Just [" 6: 0123456789\\x{660}\\x{661}\\x{662}\\x{663}"],
     Just [" 7: 0123456789\\x{660}\\x{661}\\x{662}"],
     Just [" 8: 0123456789\\x{660}\\x{661}"],
     Just [" 9: 0123456789\\x{660}"],
     Just ["10: 0123456789"],
     Just ["11: 012345678"],
     Just ["12: 01234567"],
     Just ["13: 0123456"],
     Just ["14: 012345"],
     Just ["15: 01234"],
     Just ["16: 0123"],
     Just ["17: 012"],
     Just ["18: 01"],
     Just ["19: 0"],
     Just [" 0: \\x{6f0}\\x{6f1}\\x{6f2}\\x{6f3}\\x{6f4}\\x{6f5}\\x{6f6}\\x{6f7}\\x{6f8}\\x{6f9}"],
     Just [" 1: \\x{6f0}\\x{6f1}\\x{6f2}\\x{6f3}\\x{6f4}\\x{6f5}\\x{6f6}\\x{6f7}\\x{6f8}"],
     Just [" 2: \\x{6f0}\\x{6f1}\\x{6f2}\\x{6f3}\\x{6f4}\\x{6f5}\\x{6f6}\\x{6f7}"],
     Just [" 3: \\x{6f0}\\x{6f1}\\x{6f2}\\x{6f3}\\x{6f4}\\x{6f5}\\x{6f6}"],
     Just [" 4: \\x{6f0}\\x{6f1}\\x{6f2}\\x{6f3}\\x{6f4}\\x{6f5}"],
     Just [" 5: \\x{6f0}\\x{6f1}\\x{6f2}\\x{6f3}\\x{6f4}"],
     Just [" 6: \\x{6f0}\\x{6f1}\\x{6f2}\\x{6f3}"],
     Just [" 7: \\x{6f0}\\x{6f1}\\x{6f2}"],
     Just [" 8: \\x{6f0}\\x{6f1}"],
     Just [" 9: \\x{6f0}"],
     Just [" 0: \\x{966}\\x{967}\\x{968}\\x{969}\\x{96a}\\x{96b}\\x{96c}\\x{96d}\\x{96e}\\x{96f}"],
     Just [" 1: \\x{966}\\x{967}\\x{968}\\x{969}\\x{96a}\\x{96b}\\x{96c}\\x{96d}\\x{96e}"],
     Just [" 2: \\x{966}\\x{967}\\x{968}\\x{969}\\x{96a}\\x{96b}\\x{96c}\\x{96d}"],
     Just [" 3: \\x{966}\\x{967}\\x{968}\\x{969}\\x{96a}\\x{96b}\\x{96c}"],
     Just [" 4: \\x{966}\\x{967}\\x{968}\\x{969}\\x{96a}\\x{96b}"],
     Just [" 5: \\x{966}\\x{967}\\x{968}\\x{969}\\x{96a}"],
     Just [" 6: \\x{966}\\x{967}\\x{968}\\x{969}"],
     Just [" 7: \\x{966}\\x{967}\\x{968}"],
     Just [" 8: \\x{966}\\x{967}"],
     Just [" 9: \\x{966}"],
     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 [" 1: $\\x{a2}\\x{a3}\\x{a4}"],
     Just [" 2: $\\x{a2}\\x{a3}"],
     Just [" 3: $\\x{a2}"],
     Just [" 4: $"],
     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}"],
     Just [" 1: +<|~\\x{ac}"],
     Just [" 2: +<|~"],
     Just [" 3: +<|"],
     Just [" 4: +<"],
     Just [" 5: +"],
     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: \\x{660}\\x{661}\\x{662}A"],
     Just [" 2: \\x{660}\\x{661}\\x{662}"],
     Just ["/\\p{Nd}+?(..)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],
     Just [" 1: \\x{660}\\x{661}\\x{662}A"],
     Just [" 2: \\x{660}\\x{661}\\x{662}"],
     Just ["/\\p{Nd}{2,}(..)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],
     Just [" 1: \\x{660}\\x{661}\\x{662}A"],
     Just ["/\\p{Nd}{2,}?(..)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],
     Just [" 1: \\x{660}\\x{661}\\x{662}A"],
     Just ["/\\p{Nd}*(..)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],
     Just [" 1: \\x{660}\\x{661}\\x{662}A"],
     Just [" 2: \\x{660}\\x{661}\\x{662}"],
     Just [" 3: \\x{660}\\x{661}"],
     Just ["/\\p{Nd}*?(..)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],
     Just [" 1: \\x{660}\\x{661}\\x{662}A"],
     Just [" 2: \\x{660}\\x{661}\\x{662}"],
     Just [" 3: \\x{660}\\x{661}"],
     Just ["/\\p{Nd}{2}(..)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}A"],
     Just ["/\\p{Nd}{2,3}(..)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],
     Just [" 1: \\x{660}\\x{661}\\x{662}A"],
     Just ["/\\p{Nd}{2,3}?(..)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],
     Just [" 1: \\x{660}\\x{661}\\x{662}A"],
     Just ["/\\p{Nd}?(..)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}"],
     Just [" 1: \\x{660}\\x{661}"],
     Just ["/\\p{Nd}??(..)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}"],
     Just [" 1: \\x{660}\\x{661}"],
     Just ["/\\p{Nd}*+(..)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}AB"],
     Just ["/\\p{Nd}*+(...)/8"],
     Just [" 0: \\x{660}\\x{661}\\x{662}ABC"],
     Just ["/\\p{Nd}*+(....)/8"],
     Just [" 0: ** 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{Nd}]" [ERROR]
    ["1234"]
    [Just [" 0: 1"]]
,
testRegex "[\\p{Nd}+-]+" [ERROR]
    ["1234",
     "12-34",
     "12+\\x{661}-34  ",
     "** Failers",
     "abcd  "]
    [Just [" 0: 1234"],
     Just [" 1: 123"],
     Just [" 2: 12"],
     Just [" 3: 1"],
     Just [" 0: 12-34"],
     Just [" 1: 12-3"],
     Just [" 2: 12-"],
     Just [" 3: 12"],
     Just [" 4: 1"],
     Just [" 0: 12+\\x{661}-34"],
     Just [" 1: 12+\\x{661}-3"],
     Just [" 2: 12+\\x{661}-"],
     Just [" 3: 12+\\x{661}"],
     Just [" 4: 12+"],
     Just [" 5: 12"],
     Just [" 6: 1"],
     Nothing,
     Nothing]
,
testRegex "[\\P{Nd}]+" [ERROR]
    ["abcd",
     "** Failers",
     "1234"]
    [Just [" 0: abcd"],
     Just [" 1: abc"],
     Just [" 2: ab"],
     Just [" 3: a"],
     Just [" 0: ** Failers"],
     Just [" 1: ** Failer"],
     Just [" 2: ** Faile"],
     Just [" 3: ** Fail"],
     Just [" 4: ** Fai"],
     Just [" 5: ** Fa"],
     Just [" 6: ** F"],
     Just [" 7: ** "],
     Just [" 8: **"],
     Just [" 9: *"],
     Nothing]
,
testRegex "\\D+" [ERROR]
    ["11111111111111111111111111111111111111111111111111111111111111111111111",
     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
     "",
     "/\\P{Nd}+/8",
     "11111111111111111111111111111111111111111111111111111111111111111111111",
     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]
    [Nothing,
     Just ["Matched, but too many subsidiary matches"],
     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["15: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["16: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["17: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["18: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["19: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["20: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["21: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["/\\P{Nd}+/8"],
     Nothing,
     Just ["Matched, but too many subsidiary matches"],
     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["15: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["16: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["17: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["18: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["19: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["20: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["21: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]]
,
testRegex "[\\D]+" [ERROR]
    ["11111111111111111111111111111111111111111111111111111111111111111111111",
     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]
    [Nothing,
     Just ["Matched, but too many subsidiary matches"],
     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["15: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["16: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["17: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["18: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["19: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["20: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["21: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]]
,
testRegex "[\\P{Nd}]+" [ERROR]
    ["11111111111111111111111111111111111111111111111111111111111111111111111",
     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]
    [Nothing,
     Just ["Matched, but too many subsidiary matches"],
     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["15: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["16: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["17: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["18: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["19: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["20: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["21: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]]
,
testRegex "[\\D\\P{Nd}]+" [ERROR]
    ["11111111111111111111111111111111111111111111111111111111111111111111111",
     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]
    [Nothing,
     Just ["Matched, but too many subsidiary matches"],
     Just [" 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just [" 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["15: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["16: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["17: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["18: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["19: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["20: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],
     Just ["21: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]]
,
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 "\\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}"],
     Just [" 1: \\x{391}\\x{3b1}\\x{3b1}\\x{3b1}"],
     Just [" 2: \\x{391}\\x{3b1}\\x{3b1}"],
     Just [" 3: \\x{391}\\x{3b1}"],
     Just [" 4: \\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{391}\\x{3b1}\\x{3b1}\\x{3b1}\\x{391}"],
     Just [" 2: \\x{391}\\x{3b1}\\x{3b1}\\x{3b1}"]]
,
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{391}\\x{3b1}\\x{3b1}\\x{3b1}\\x{391}"],
     Just [" 2: \\x{391}\\x{3b1}\\x{3b1}\\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}]" [caseless]
    ["\\x{104}",
     "\\x{105}",
     "\\x{109}  ",
     "** Failers",
     "\\x{100}",
     "\\x{10a} ",
     "",
     "/[z-\\x{100}]/8i ",
     "Z",
     "z",
     "\\x{39c}",
     "\\x{178}",
     "|",
     "\\x{80}",
     "\\x{ff}",
     "\\x{100}",
     "\\x{101} ",
     "** Failers",
     "\\x{102}",
     "Y",
     "y           "]
    [Just [" 0: \\x{104}"],
     Just [" 0: \\x{105}"],
     Just [" 0: \\x{109}"],
     Nothing,
     Nothing,
     Nothing,
     Just ["/[z-\\x{100}]/8i "],
     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]
    []
    []
,
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 [" 0: A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C"],
     Just [" 1: A\\x{300}\\x{301}\\x{302}BC"]]
,
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 [" 0: A\\x{300}\\x{301}\\x{302}BCA\\x{300}\\x{301}C"],
     Just [" 1: A\\x{300}\\x{301}\\x{302}BC"]]
,
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\\x{300}\\x{301}\\x{302}B"],
     Just [" 3: 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"],
     Just [" 2: A\\x{300}\\x{301}\\x{302}BC"],
     Just [" 3: A\\x{300}\\x{301}\\x{302}B"],
     Just [" 4: A"]]
,
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\\x{300}\\x{301}\\x{302}B"],
     Just [" 3: 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"],
     Just [" 2: A\\x{300}\\x{301}\\x{302}BC"],
     Just [" 3: A\\x{300}\\x{301}\\x{302}B"],
     Just [" 4: A"]]
,
testRegex "^\\X(.)" [ERROR]
    ["*** Failers",
     "A\\x{300}\\x{301}\\x{302}"]
    [Just [" 0: **"],
     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"]
    [Just [" 0: A\\x{300}\\x{301}B\\x{300}X"],
     Just [" 0: A\\x{300}\\x{301}B\\x{300}C"],
     Just [" 0: A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}X"],
     Just [" 1: A\\x{300}\\x{301}B\\x{300}C"],
     Just [" 0: A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}D"],
     Just [" 1: A\\x{300}\\x{301}B\\x{300}C"],
     Just ["/^\\X{2,3}?(.)/8"],
     Just [" 0: A\\x{300}\\x{301}B\\x{300}X"],
     Just [" 0: A\\x{300}\\x{301}B\\x{300}C"],
     Just [" 0: A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}X"],
     Just [" 1: A\\x{300}\\x{301}B\\x{300}C"],
     Just [" 0: A\\x{300}\\x{301}B\\x{300}C\\x{300}\\x{301}D"],
     Just [" 1: A\\x{300}\\x{301}B\\x{300}C"]]
,
testRegex "^\\pN{2,3}X" []
    ["12X",
     "123X",
     "*** Failers",
     "X",
     "1X",
     "1234X     "]
    [Just [" 0: 12X"],
     Just [" 0: 123X"],
     Nothing,
     Nothing,
     Nothing,
     Nothing]
,
testRegex "\\x{100}" [ERROR]
    ["\\x{100}   ",
     "\\x{101} ",
     "",
     "/^\\p{Han}+/8",
     "\\x{2e81}\\x{3007}\\x{2f804}\\x{31a0}",
     "** Failers",
     "\\x{2e7f}  "]
    [Just [" 0: \\x{100}"],
     Just [" 0: \\x{101}"],
     Just ["/^\\p{Han}+/8"],
     Just [" 0: \\x{2e81}\\x{3007}\\x{2f804}"],
     Just [" 1: \\x{2e81}\\x{3007}"],
     Just [" 2: \\x{2e81}"],
     Nothing,
     Nothing]
,
testRegex "^\\P{Katakana}+" [ERROR]
    ["\\x{3105}",
     "** Failers",
     "\\x{30ff}  "]
    [Just [" 0: \\x{3105}"],
     Just [" 0: ** Failers"],
     Just [" 1: ** Failer"],
     Just [" 2: ** Faile"],
     Just [" 3: ** Fail"],
     Just [" 4: ** Fai"],
     Just [" 5: ** Fa"],
     Just [" 6: ** F"],
     Just [" 7: ** "],
     Just [" 8: **"],
     Just [" 9: *"],
     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}   "]
    [Just [" 0: \\x{2f800}"],
     Just [" 0: *"],
     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}]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: abcde"],
     Just [" 1: abcd"],
     Just [" 2: abc"],
     Just [" 0: \\x{1234}\\x{0a}\\x{0d}\\x{3456}x"],
     Just [" 1: \\x{1234}\\x{0a}\\x{0d}\\x{3456}"],
     Just [" 2: \\x{1234}\\x{0a}\\x{0d}"]]
,
testRegex "^\\p{Any}{3,5}" [ERROR]
    ["abcdefgh",
     "\\x{1234}\\n\\r\\x{3456}xyz "]
    [Just [" 0: abcde"],
     Just [" 1: abcd"],
     Just [" 2: abc"],
     Just [" 0: \\x{1234}\\x{0a}\\x{0d}\\x{3456}x"],
     Just [" 1: \\x{1234}\\x{0a}\\x{0d}\\x{3456}"],
     Just [" 2: \\x{1234}\\x{0a}\\x{0d}"]]
,
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"],
     Just [" 1: 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: abcDEXypqreX"],
     Just [" 1: 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: abcDEXypqreX"],
     Just [" 1: 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: abcDEXypqreX"],
     Just [" 1: 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 "^\\x{023a}+?(\\x{0130}+)" [caseless]
    ["\\x{023a}\\x{2c65}\\x{0130}",
     "",
     "/^\\x{023a}+([^X])/8i",
     "\\x{023a}\\x{2c65}X",
     "",
     "/Check property support in non-UTF-8 mode/",
     "",
     "/\\p{L}{4}/",
     "123abcdefg",
     "123abc\\xc4\\xc5zz"]
    [Just [" 0: \\x{23a}\\x{2c65}\\x{130}"],
     Just ["/^\\x{023a}+([^X])/8i"],
     Just [" 0: \\x{23a}\\x{2c65}"],
     Just ["/Check property support in non-UTF-8 mode/"],
     Just ["/\\p{L}{4}/"],
     Just [" 0: abcd"],
     Just [" 0: abc\\xc4"]]
,
testRegex " End " [ERROR]
    []
    []