diff options
Diffstat (limited to 'ext/pcre/pcrelib/testdata/testoutput2')
-rw-r--r-- | ext/pcre/pcrelib/testdata/testoutput2 | 4867 |
1 files changed, 3186 insertions, 1681 deletions
diff --git a/ext/pcre/pcrelib/testdata/testoutput2 b/ext/pcre/pcrelib/testdata/testoutput2 index 45907492f9..4d6d688867 100644 --- a/ext/pcre/pcrelib/testdata/testoutput2 +++ b/ext/pcre/pcrelib/testdata/testoutput2 @@ -78,10 +78,10 @@ No match def\nabc No match -/ab\hdef/X +/ab\idef/X Failed: unrecognized character follows \ at offset 3 -/(?X)ab\hdef/X +/(?X)ab\idef/X Failed: unrecognized character follows \ at offset 7 /x{5,4}/ @@ -109,7 +109,7 @@ Failed: missing ) at offset 4 Failed: missing ) after comment at offset 7 /(?z)abc/ -Failed: unrecognized character after (? at offset 2 +Failed: unrecognized character after (? or (?- at offset 2 /.*b/I Capturing subpattern count = 0 @@ -222,7 +222,7 @@ Matched, but too many substrings 0: abcb 1: a 2: b - \O12abcb + \O12abcb 0: abcb 1: a 2: b @@ -310,7 +310,7 @@ No match No match /ab(?z)cd/ -Failed: unrecognized character after (? at offset 4 +Failed: unrecognized character after (? or (?- at offset 4 /^abc|def/I Capturing subpattern count = 0 @@ -343,7 +343,7 @@ No need char 0: abc *** Failers No match: POSIX code 17: match failed - + /^abc|def/IP abcdef 0: abc @@ -359,19 +359,19 @@ No match: POSIX code 17: match failed 0: def 1: def 3: def - + /the quick brown fox/IP the quick brown fox 0: the quick brown fox - *** Failers + *** Failers No match: POSIX code 17: match failed - The Quick Brown Fox + The Quick Brown Fox No match: POSIX code 17: match failed /the quick brown fox/IPi the quick brown fox 0: the quick brown fox - The Quick Brown Fox + The Quick Brown Fox 0: The Quick Brown Fox /abc.def/IP @@ -379,11 +379,11 @@ No match: POSIX code 17: match failed No match: POSIX code 17: match failed abc\ndef No match: POSIX code 17: match failed - + /abc$/IP abc 0: abc - abc\n + abc\n 0: abc /(abc)\2/IP @@ -405,9 +405,9 @@ Partial matching not supported No options No first char No need char - co-processors, and for + co-processors, and for 0: -pr - + /<.*>/I Capturing subpattern count = 0 Partial matching not supported @@ -434,7 +434,7 @@ First char = '<' Need char = '>' abc<def>ghi<klm>nop 0: <def> - + /(?U)<.*>/I Capturing subpattern count = 0 Partial matching not supported @@ -452,7 +452,7 @@ First char = '<' Need char = '>' abc<def>ghi<klm>nop 0: <def>ghi<klm> - + /={3,}/IU Capturing subpattern count = 0 Partial matching not supported @@ -461,7 +461,7 @@ First char = '=' Need char = '=' abc========def 0: === - + /(?U)={3,}?/I Capturing subpattern count = 0 Partial matching not supported @@ -470,7 +470,7 @@ First char = '=' Need char = '=' abc========def 0: ======== - + /(?<!bar|cattle)foo/I Capturing subpattern count = 0 No options @@ -478,13 +478,13 @@ First char = 'f' Need char = 'o' foo 0: foo - catfoo + catfoo 0: foo *** Failers No match the barfoo No match - and cattlefoo + and cattlefoo No match /(?<=a+)b/ @@ -597,16 +597,16 @@ No options First char = 'b' (caseless) Need char = 'h' (caseless) -/((?i)b)/IDS +/((?i)b)/IDZS ------------------------------------------------------------------ - 0 17 Bra 0 - 3 9 Bra 1 - 8 01 Opt - 10 NC b - 12 9 Ket - 15 00 Opt - 17 17 Ket - 20 End + Bra + CBra 1 + 01 Opt + NC b + Ket + 00 Opt + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 No options @@ -631,11 +631,11 @@ No need char 0: a a\n 0: a - *** Failers + *** Failers No match \Za No match - \Za\n + \Za\n No match /a$/Im @@ -647,20 +647,20 @@ No need char 0: a a\n 0: a - \Za\n + \Za\n 0: a - *** Failers + *** Failers No match \Za No match - + /\Aabc/Im Capturing subpattern count = 0 Options: anchored multiline No first char No need char -/^abc/Im +/^abc/Im Capturing subpattern count = 0 Options: multiline First char at start or follows newline @@ -703,34 +703,36 @@ Starting byte set: a b /(?<=foo\n)^bar/Im Capturing subpattern count = 0 +Contains explicit CR or LF match Options: multiline No first char Need char = 'r' - foo\nbarbar + foo\nbarbar 0: bar ***Failers No match - rhubarb + rhubarb No match barbell No match - abc\nbarton + abc\nbarton No match /^(?<=foo\n)bar/Im Capturing subpattern count = 0 +Contains explicit CR or LF match Options: multiline First char at start or follows newline Need char = 'r' - foo\nbarbar + foo\nbarbar 0: bar ***Failers No match - rhubarb + rhubarb No match barbell No match - abc\nbarton + abc\nbarton No match /(?>^abc)/Im @@ -744,7 +746,7 @@ Need char = 'c' 0: abc *** Failers No match - defabc + defabc No match /(?<=ab(c+)d)ef/ @@ -771,9 +773,9 @@ Need char = 't' No match cart No match - horse-and-cart + horse-and-cart No match - + /(?<=ab(?i)x|y|z)/I Capturing subpattern count = 0 No options @@ -809,17 +811,17 @@ Need char = 'Z' 0: ZZ bZZ 0: ZZ - BZZ + BZZ 0: ZZ *** Failers No match - ZZ + ZZ No match - abXYZZ + abXYZZ No match zzz No match - bzz + bzz No match /(?<!(foo)a)bar/I @@ -829,11 +831,11 @@ First char = 'b' Need char = 'r' bar 0: bar - foobbar + foobbar 0: bar *** Failers No match - fooabar + fooabar No match /This one is here because Perl 5.005_02 doesn't fail it/I @@ -849,7 +851,7 @@ No first char No need char *** Failers No match - a + a No match /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/I @@ -867,7 +869,7 @@ No need char aaaaaa 0: aaaaaa 1: aa - + /These are syntax tests from Perl 5.005/I Capturing subpattern count = 0 No options @@ -944,26 +946,23 @@ Failed: missing ) at offset 4 Failed: unrecognized character after (?< at offset 3 /a(?{)b/ -Failed: unrecognized character after (? at offset 3 +Failed: unrecognized character after (? or (?- at offset 3 /a(?{{})b/ -Failed: unrecognized character after (? at offset 3 +Failed: unrecognized character after (? or (?- at offset 3 /a(?{}})b/ -Failed: unrecognized character after (? at offset 3 +Failed: unrecognized character after (? or (?- at offset 3 /a(?{"{"})b/ -Failed: unrecognized character after (? at offset 3 +Failed: unrecognized character after (? or (?- at offset 3 /a(?{"{"}})b/ -Failed: unrecognized character after (? at offset 3 +Failed: unrecognized character after (? or (?- at offset 3 /(?(1?)a|b)/ Failed: malformed number or name after (?( at offset 4 -/(?(1)a|b|c)/ -Failed: conditional group contains more than two branches at offset 10 - /[a[:xyz:/ Failed: missing terminating ] for character class at offset 8 @@ -1001,7 +1000,7 @@ Need char = 'd' 1: a 2: d copy substring 5 failed -7 - + /(.{20})/I Capturing subpattern count = 1 Partial matching not supported @@ -1019,7 +1018,7 @@ No need char 0: abcdefghijklmnopqrst 1: abcdefghijklmnopqrst 1G abcdefghijklmnopqrst (20) - + /(.{15})/I Capturing subpattern count = 1 Partial matching not supported @@ -1051,13 +1050,13 @@ No need char 1G abcdefghijklmnop (16) 0L abcdefghijklmnop 1L abcdefghijklmnop - + /^(a|(bc))de(f)/I Capturing subpattern count = 3 Options: anchored No first char No need char - adef\G1\G2\G3\G4\L + adef\G1\G2\G3\G4\L 0: adef 1: a 2: <unset> @@ -1070,7 +1069,7 @@ get substring 4 failed -7 1L a 2L 3L f - bcdef\G1\G2\G3\G4\L + bcdef\G1\G2\G3\G4\L 0: bcdef 1: bc 2: bc @@ -1083,40 +1082,40 @@ get substring 4 failed -7 1L bc 2L bc 3L f - adefghijk\C0 + adefghijk\C0 0: adef 1: a 2: <unset> 3: f 0C adef (4) - + /^abc\00def/I Capturing subpattern count = 0 Options: anchored No first char No need char - abc\00def\L\C0 + abc\00def\L\C0 0: abc\x00def 0C abc (7) 0L abc - -/word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ -)((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ -)?)?)?)?)?)?)?)?)?otherword/IM -Memory allocation (code space): 448 + +/word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ +)((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ +)?)?)?)?)?)?)?)?)?otherword/I Capturing subpattern count = 8 Partial matching not supported +Contains explicit CR or LF match No options First char = 'w' Need char = 'd' -/.*X/ID +/.*X/IDZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 Any* - 5 X - 7 7 Ket - 10 End + Bra + Any* + X + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -1124,13 +1123,13 @@ No options First char at start or follows newline Need char = 'X' -/.*X/IDs +/.*X/IDZs ------------------------------------------------------------------ - 0 7 Bra 0 - 3 Any* - 5 X - 7 7 Ket - 10 End + Bra + AllAny* + X + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -1138,18 +1137,18 @@ Options: anchored dotall No first char Need char = 'X' -/(.*X|^B)/ID +/(.*X|^B)/IDZ ------------------------------------------------------------------ - 0 21 Bra 0 - 3 9 Bra 1 - 8 Any* - 10 X - 12 6 Alt - 15 ^ - 16 B - 18 15 Ket - 21 21 Ket - 24 End + Bra + CBra 1 + Any* + X + Alt + ^ + B + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Partial matching not supported @@ -1157,37 +1156,37 @@ No options First char at start or follows newline No need char -/(.*X|^B)/IDs +/(.*X|^B)/IDZs ------------------------------------------------------------------ - 0 21 Bra 0 - 3 9 Bra 1 - 8 Any* - 10 X - 12 6 Alt - 15 ^ - 16 B - 18 15 Ket - 21 21 Ket - 24 End + Bra + CBra 1 + AllAny* + X + Alt + ^ + B + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Partial matching not supported Options: anchored dotall No first char No need char - -/(?s)(.*X|^B)/ID ------------------------------------------------------------------- - 0 21 Bra 0 - 3 9 Bra 1 - 8 Any* - 10 X - 12 6 Alt - 15 ^ - 16 B - 18 15 Ket - 21 21 Ket - 24 End + +/(?s)(.*X|^B)/IDZ +------------------------------------------------------------------ + Bra + CBra 1 + AllAny* + X + Alt + ^ + B + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Partial matching not supported @@ -1195,26 +1194,26 @@ Options: anchored dotall No first char No need char -/(?s:.*X|^B)/ID +/(?s:.*X|^B)/IDZ ------------------------------------------------------------------ - 0 25 Bra 0 - 3 9 Bra 0 - 6 04 Opt - 8 Any* - 10 X - 12 8 Alt - 15 04 Opt - 17 ^ - 18 B - 20 17 Ket - 23 00 Opt - 25 25 Ket - 28 End + Bra + Bra + 04 Opt + AllAny* + X + Alt + 04 Opt + ^ + B + Ket + 00 Opt + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported -No options -First char at start or follows newline +Options: anchored +No first char No need char /\Biss\B/I+ @@ -1294,14 +1293,14 @@ No need char ississippi 0: iss 0+ issippi - + /.*iss/Ig+ Capturing subpattern count = 0 Partial matching not supported No options First char at start or follows newline Need char = 's' - abciss\nxyzisspqr + abciss\nxyzisspqr 0: abciss 0+ \x0axyzisspqr 0: xyziss @@ -1333,7 +1332,7 @@ Need char = 'i' 0+ river 0: riv 0+ er - Missouri river\A + Missouri river\A 0: Mis 0+ souri river @@ -1348,6 +1347,7 @@ No need char /^ab\n/Ig+ Capturing subpattern count = 0 +Contains explicit CR or LF match Options: anchored No first char No need char @@ -1357,6 +1357,7 @@ No need char /^ab\n/Img+ Capturing subpattern count = 0 +Contains explicit CR or LF match Options: multiline First char at start or follows newline Need char = 10 @@ -1595,32 +1596,32 @@ No options First char = 'a' Need char = 'b' -/a(?(1)b)/I -Capturing subpattern count = 0 +/a(?(1)b)(.)/I +Capturing subpattern count = 1 No options First char = 'a' No need char -/a(?(1)bag|big)/I -Capturing subpattern count = 0 +/a(?(1)bag|big)(.)/I +Capturing subpattern count = 1 No options First char = 'a' Need char = 'g' -/a(?(1)bag|big)*/I -Capturing subpattern count = 0 +/a(?(1)bag|big)*(.)/I +Capturing subpattern count = 1 No options First char = 'a' No need char -/a(?(1)bag|big)+/I -Capturing subpattern count = 0 +/a(?(1)bag|big)+(.)/I +Capturing subpattern count = 1 No options First char = 'a' Need char = 'g' -/a(?(1)b..|b..)/I -Capturing subpattern count = 0 +/a(?(1)b..|b..)(.)/I +Capturing subpattern count = 1 No options First char = 'a' Need char = 'b' @@ -1646,9 +1647,9 @@ No need char 0: *** Failers 0: - \N + \N No match - + /|-/I Capturing subpattern count = 0 No options @@ -1662,7 +1663,7 @@ No need char 0: - *** Failers 0: - \Nabc + \Nabc No match /a*(b+)(z)(z)/IP @@ -1691,8 +1692,8 @@ No match 1: bbbb 2: z 3: z - -/^.?abcd/IS + +/^.?abcd/IS Capturing subpattern count = 0 Options: anchored No first char @@ -1718,21 +1719,21 @@ Need char = ')' 0: (abcd) xyz(abcd) 0: (abcd) - (ab(xy)cd)pqr + (ab(xy)cd)pqr 0: (ab(xy)cd) - (ab(xycd)pqr + (ab(xycd)pqr 0: (xycd) - () abc () + () abc () 0: () 12(abcde(fsh)xyz(foo(bar))lmno)89 0: (abcde(fsh)xyz(foo(bar))lmno) *** Failers No match - abcd + abcd No match abcd) No match - (abcd + (abcd No match /\( ( (?>[^()]+) | (?R) )* \) /Ixg @@ -1741,7 +1742,7 @@ Partial matching not supported Options: extended First char = '(' Need char = ')' - (ab(xy)cd)pqr + (ab(xy)cd)pqr 0: (ab(xy)cd) 1: cd 1(abcd)(x(y)z)pqr @@ -1760,13 +1761,13 @@ Need char = ')' 0: (abcd) (ab(xy)cd) 0: (xy) - (a(b(c)d)e) + (a(b(c)d)e) 0: (c) - ((ab)) + ((ab)) 0: ((ab)) *** Failers No match - () + () No match /\( (?: (?>[^()]+) | (?R) )? \) /Ix @@ -1884,58 +1885,58 @@ Need char = ')' 2: ij 3: (cd(ef)gh) -/^[[:alnum:]]/D +/^[[:alnum:]]/DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [0-9A-Za-z] - 37 37 Ket - 40 End + Bra + ^ + [0-9A-Za-z] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored No first char No need char -/^[[:^alnum:]]/D +/^[[:^alnum:]]/DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [\x00-/:-@[-`{-\xff] - 37 37 Ket - 40 End + Bra + ^ + [\x00-/:-@[-`{-\xff] (neg) + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored No first char No need char -/^[[:alpha:]]/D +/^[[:alpha:]]/DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [A-Za-z] - 37 37 Ket - 40 End + Bra + ^ + [A-Za-z] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored No first char No need char -/^[[:^alpha:]]/D +/^[[:^alpha:]]/DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [\x00-@[-`{-\xff] - 37 37 Ket - 40 End + Bra + ^ + [\x00-@[-`{-\xff] (neg) + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored No first char No need char - + /[_[:alpha:]]/IS Capturing subpattern count = 0 No options @@ -1944,52 +1945,52 @@ No need char Starting byte set: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z _ a b c d e f g h i j k l m n o p q r s t u v w x y z -/^[[:ascii:]]/D +/^[[:ascii:]]/DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [\x00-\x7f] - 37 37 Ket - 40 End + Bra + ^ + [\x00-\x7f] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored No first char No need char -/^[[:^ascii:]]/D +/^[[:^ascii:]]/DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [\x80-\xff] - 37 37 Ket - 40 End + Bra + ^ + [\x80-\xff] (neg) + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored No first char No need char -/^[[:blank:]]/D +/^[[:blank:]]/DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [\x09 ] - 37 37 Ket - 40 End + Bra + ^ + [\x09 ] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored No first char No need char -/^[[:^blank:]]/D +/^[[:^blank:]]/DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [\x00-\x08\x0a-\x1f!-\xff] - 37 37 Ket - 40 End + Bra + ^ + [\x00-\x08\x0a-\x1f!-\xff] (neg) + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored @@ -1998,186 +1999,187 @@ No need char /[\n\x0b\x0c\x0d[:blank:]]/IS Capturing subpattern count = 0 +Contains explicit CR or LF match No options No first char No need char Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 -/^[[:cntrl:]]/D +/^[[:cntrl:]]/DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [\x00-\x1f\x7f] - 37 37 Ket - 40 End + Bra + ^ + [\x00-\x1f\x7f] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored No first char No need char -/^[[:digit:]]/D +/^[[:digit:]]/DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [0-9] - 37 37 Ket - 40 End + Bra + ^ + [0-9] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored No first char No need char -/^[[:graph:]]/D +/^[[:graph:]]/DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [!-~] - 37 37 Ket - 40 End + Bra + ^ + [!-~] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored No first char No need char -/^[[:lower:]]/D +/^[[:lower:]]/DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [a-z] - 37 37 Ket - 40 End + Bra + ^ + [a-z] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored No first char No need char -/^[[:print:]]/D +/^[[:print:]]/DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [ -~] - 37 37 Ket - 40 End + Bra + ^ + [ -~] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored No first char No need char -/^[[:punct:]]/D +/^[[:punct:]]/DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [!-/:-@[-`{-~] - 37 37 Ket - 40 End + Bra + ^ + [!-/:-@[-`{-~] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored No first char No need char -/^[[:space:]]/D +/^[[:space:]]/DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [\x09-\x0d ] - 37 37 Ket - 40 End + Bra + ^ + [\x09-\x0d ] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored No first char No need char -/^[[:upper:]]/D +/^[[:upper:]]/DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [A-Z] - 37 37 Ket - 40 End + Bra + ^ + [A-Z] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored No first char No need char -/^[[:xdigit:]]/D +/^[[:xdigit:]]/DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [0-9A-Fa-f] - 37 37 Ket - 40 End + Bra + ^ + [0-9A-Fa-f] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored No first char No need char -/^[[:word:]]/D +/^[[:word:]]/DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [0-9A-Z_a-z] - 37 37 Ket - 40 End + Bra + ^ + [0-9A-Z_a-z] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored No first char No need char -/^[[:^cntrl:]]/D +/^[[:^cntrl:]]/DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [ -~\x80-\xff] - 37 37 Ket - 40 End + Bra + ^ + [ -~\x80-\xff] (neg) + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored No first char No need char -/^[12[:^digit:]]/D +/^[12[:^digit:]]/DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [\x00-/12:-\xff] - 37 37 Ket - 40 End + Bra + ^ + [\x00-/12:-\xff] (neg) + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored No first char No need char -/^[[:^blank:]]/D +/^[[:^blank:]]/DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [\x00-\x08\x0a-\x1f!-\xff] - 37 37 Ket - 40 End + Bra + ^ + [\x00-\x08\x0a-\x1f!-\xff] (neg) + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored No first char No need char -/[01[:alpha:]%]/D +/[01[:alpha:]%]/DZ ------------------------------------------------------------------ - 0 36 Bra 0 - 3 [%01A-Za-z] - 36 36 Ket - 39 End + Bra + [%01A-Za-z] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options @@ -2200,9 +2202,9 @@ No first char No need char A 0: A - a + a 0: a - + /[[:lower:]]/Ii Capturing subpattern count = 0 Options: caseless @@ -2210,7 +2212,7 @@ No first char No need char A 0: A - a + a 0: a /((?-i)[[:lower:]])[[:lower:]]/Ii @@ -2229,7 +2231,7 @@ No need char 1: a Ab No match - AB + AB No match /[\200-\110]/I @@ -2543,7 +2545,7 @@ Need char = 'n' 0: mainOmain 1: main 2: O - + /These are all cases where Perl does it differently (nested captures)/I Capturing subpattern count = 1 No options @@ -2559,52 +2561,52 @@ No need char 0: aba 1: a 2: b - + /^(aa(bb)?)+$/I Capturing subpattern count = 2 Options: anchored No first char No need char - aabbaa + aabbaa 0: aabbaa 1: aa 2: bb - + /^(aa|aa(bb))+$/I Capturing subpattern count = 2 Options: anchored No first char No need char - aabbaa + aabbaa 0: aabbaa 1: aa 2: bb - + /^(aa(bb)??)+$/I Capturing subpattern count = 2 Options: anchored No first char No need char - aabbaa + aabbaa 0: aabbaa 1: aa 2: bb - + /^(?:aa(bb)?)+$/I Capturing subpattern count = 1 Options: anchored No first char No need char - aabbaa + aabbaa 0: aabbaa 1: bb - + /^(aa(b(b))?)+$/I Capturing subpattern count = 3 Options: anchored No first char No need char - aabbaa + aabbaa 0: aabbaa 1: aa 2: bb @@ -2615,7 +2617,7 @@ Capturing subpattern count = 2 Options: anchored No first char No need char - aabbaa + aabbaa 0: aabbaa 1: bb 2: b @@ -2625,7 +2627,7 @@ Capturing subpattern count = 1 Options: anchored No first char No need char - aabbaa + aabbaa 0: aabbaa 1: bb @@ -2634,16 +2636,16 @@ Capturing subpattern count = 1 Options: anchored No first char No need char - aabbbaa + aabbbaa 0: aabbbaa 1: bbb - + /^(?:aa(b(?:bb))?)+$/I Capturing subpattern count = 1 Options: anchored No first char No need char - aabbbaa + aabbbaa 0: aabbbaa 1: bbb @@ -2652,7 +2654,7 @@ Capturing subpattern count = 1 Options: anchored No first char No need char - aabbaa + aabbaa 0: aabbaa 1: b @@ -2661,7 +2663,7 @@ Capturing subpattern count = 1 Options: anchored No first char No need char - aabbbaa + aabbbaa 0: aabbbaa 1: bb @@ -2670,7 +2672,7 @@ Capturing subpattern count = 3 Options: anchored No first char No need char - aabbbaa + aabbbaa 0: aabbbaa 1: aa 2: bbb @@ -2681,75 +2683,73 @@ Capturing subpattern count = 3 Options: anchored No first char No need char - aabbbbaa + aabbbbaa 0: aabbbbaa 1: aa 2: bbbb 3: bb -/--------------------------------------------------------------------/I +/--------------------------------------------------------------------/I Capturing subpattern count = 0 No options First char = '-' Need char = '-' - -/#/IxMD -Memory allocation (code space): 7 + +/#/IxDZ ------------------------------------------------------------------ - 0 3 Bra 0 - 3 3 Ket - 6 End + Bra + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: extended No first char No need char -/a#/IxMD -Memory allocation (code space): 9 +/a#/IxDZ ------------------------------------------------------------------ - 0 5 Bra 0 - 3 a - 5 5 Ket - 8 End + Bra + a + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: extended First char = 'a' No need char -/[\s]/D +/[\s]/DZ ------------------------------------------------------------------ - 0 36 Bra 0 - 3 [\x09\x0a\x0c\x0d ] - 36 36 Ket - 39 End + Bra + [\x09\x0a\x0c\x0d ] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options No first char No need char -/[\S]/D +/[\S]/DZ ------------------------------------------------------------------ - 0 36 Bra 0 - 3 [\x00-\x08\x0b\x0e-\x1f!-\xff] - 36 36 Ket - 39 End + Bra + [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg) + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options No first char No need char -/a(?i)b/D +/a(?i)b/DZ ------------------------------------------------------------------ - 0 9 Bra 0 - 3 a - 5 01 Opt - 7 NC b - 9 9 Ket - 12 End + Bra + a + 01 Opt + NC b + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options @@ -2759,22 +2759,22 @@ Need char = 'b' (caseless) 0: ab aB 0: aB - *** Failers + *** Failers No match - AB + AB No match -/(a(?i)b)/D +/(a(?i)b)/DZ ------------------------------------------------------------------ - 0 19 Bra 0 - 3 11 Bra 1 - 8 a - 10 01 Opt - 12 NC b - 14 11 Ket - 17 00 Opt - 19 19 Ket - 22 End + Bra + CBra 1 + a + 01 Opt + NC b + Ket + 00 Opt + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 No options @@ -2786,17 +2786,17 @@ Need char = 'b' (caseless) aB 0: aB 1: aB - *** Failers + *** Failers No match - AB + AB No match - -/ (?i)abc/IxD + +/ (?i)abc/IxDZ ------------------------------------------------------------------ - 0 9 Bra 0 - 3 NC abc - 9 9 Ket - 12 End + Bra + NC abc + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: caseless extended @@ -2804,47 +2804,47 @@ First char = 'a' (caseless) Need char = 'c' (caseless) /#this is a comment - (?i)abc/IxD + (?i)abc/IxDZ ------------------------------------------------------------------ - 0 9 Bra 0 - 3 NC abc - 9 9 Ket - 12 End + Bra + NC abc + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: caseless extended First char = 'a' (caseless) Need char = 'c' (caseless) -/123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D +/123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ ------------------------------------------------------------------ - 0 603 Bra 0 - 3 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 -603 603 Ket -606 End + Bra + 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options First char = '1' Need char = '0' -/\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D +/\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ ------------------------------------------------------------------ - 0 603 Bra 0 - 3 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 -603 603 Ket -606 End + Bra + 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options First char = '1' Need char = '0' -/\Q\E/D +/\Q\E/DZ ------------------------------------------------------------------ - 0 3 Bra 0 - 3 3 Ket - 6 End + Bra + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options @@ -2853,36 +2853,36 @@ No need char \ 0: -/\Q\Ex/D +/\Q\Ex/DZ ------------------------------------------------------------------ - 0 5 Bra 0 - 3 x - 5 5 Ket - 8 End + Bra + x + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options First char = 'x' No need char -/ \Q\E/D +/ \Q\E/DZ ------------------------------------------------------------------ - 0 5 Bra 0 - 3 - 5 5 Ket - 8 End + Bra + + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options First char = ' ' No need char -/a\Q\E/D +/a\Q\E/DZ ------------------------------------------------------------------ - 0 5 Bra 0 - 3 a - 5 5 Ket - 8 End + Bra + a + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options @@ -2892,15 +2892,15 @@ No need char 0: a bca 0: a - bac + bac 0: a -/a\Q\Eb/D +/a\Q\Eb/DZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 ab - 7 7 Ket - 10 End + Bra + ab + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options @@ -2909,25 +2909,25 @@ Need char = 'b' abc 0: ab -/\Q\Eabc/D +/\Q\Eabc/DZ ------------------------------------------------------------------ - 0 9 Bra 0 - 3 abc - 9 9 Ket - 12 End + Bra + abc + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options First char = 'a' Need char = 'c' -/x*+\w/D +/x*+\w/DZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 x*+ - 5 \w - 6 6 Ket - 9 End + Bra + x*+ + \w + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -2938,25 +2938,25 @@ No need char 0: F xxxxx No match - -/x?+/D + +/x?+/DZ ------------------------------------------------------------------ - 0 5 Bra 0 - 3 x?+ - 5 5 Ket - 8 End + Bra + x?+ + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options No first char No need char -/x++/D +/x++/DZ ------------------------------------------------------------------ - 0 5 Bra 0 - 3 x++ - 5 5 Ket - 8 End + Bra + x++ + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -2964,15 +2964,15 @@ No options First char = 'x' No need char -/x{1,3}+/D +/x{1,3}+/DZ ------------------------------------------------------------------ - 0 15 Bra 0 - 3 9 Once - 6 x - 8 x{0,2} - 12 9 Ket - 15 15 Ket - 18 End + Bra + Once + x + x{0,2} + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -2980,17 +2980,17 @@ No options First char = 'x' No need char -/(x)*+/D +/(x)*+/DZ ------------------------------------------------------------------ - 0 20 Bra 0 - 3 14 Once - 6 Brazero - 7 7 Bra 1 - 12 x - 14 7 KetRmax - 17 14 Ket - 20 20 Ket - 23 End + Bra + Once + Brazero + CBra 1 + x + KetRmax + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 No options @@ -3010,7 +3010,7 @@ No need char No match this is not a line with only words and spaces! No match - + /(\d++)(\w)/I Capturing subpattern count = 2 Partial matching not supported @@ -3023,7 +3023,7 @@ No need char 2: a *** Failers No match - 12345+ + 12345+ No match /a++b/I @@ -3064,8 +3064,8 @@ No need char ((abc(ade)ufh()()x 0: abc(ade)ufh()()x 1: x - -/\(([^()]++|\([^()]+\))+\)/I + +/\(([^()]++|\([^()]+\))+\)/I Capturing subpattern count = 1 Partial matching not supported No options @@ -3079,29 +3079,29 @@ Need char = ')' 1: xyz *** Failers No match - ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -No match - -/(abc){1,3}+/D ------------------------------------------------------------------- - 0 59 Bra 0 - 3 53 Once - 6 11 Bra 1 - 11 abc - 17 11 Ket - 20 Brazero - 21 32 Bra 0 - 24 11 Bra 1 - 29 abc - 35 11 Ket - 38 Brazero - 39 11 Bra 1 - 44 abc - 50 11 Ket - 53 32 Ket - 56 53 Ket - 59 59 Ket - 62 End + ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +No match + +/(abc){1,3}+/DZ +------------------------------------------------------------------ + Bra + Once + CBra 1 + abc + Ket + Brazero + Bra + CBra 1 + abc + Ket + Brazero + CBra 1 + abc + Ket + Ket + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 No options @@ -3120,14 +3120,14 @@ Failed: nothing to repeat at offset 7 /a{2,3}?+b/IU Failed: nothing to repeat at offset 7 -/x(?U)a++b/D +/x(?U)a++b/DZ ------------------------------------------------------------------ - 0 9 Bra 0 - 3 x - 5 a++ - 7 b - 9 9 Ket - 12 End + Bra + x + a++ + b + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -3137,14 +3137,14 @@ Need char = 'b' xaaaab 0: xaaaab -/(?U)xa++b/D +/(?U)xa++b/DZ ------------------------------------------------------------------ - 0 9 Bra 0 - 3 x - 5 a++ - 7 b - 9 9 Ket - 12 End + Bra + x + a++ + b + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -3154,26 +3154,26 @@ Need char = 'b' xaaaab 0: xaaaab -/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D ------------------------------------------------------------------- - 0 116 Bra 0 - 3 ^ - 4 109 Bra 1 - 9 7 Bra 2 - 14 a+ - 16 7 Ket - 19 39 Bra 3 - 24 [ab]+? - 58 39 Ket - 61 39 Bra 4 - 66 [bc]+ -100 39 Ket -103 7 Bra 5 -108 \w* -110 7 Ket -113 109 Ket -116 116 Ket -119 End +/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ +------------------------------------------------------------------ + Bra + ^ + CBra 1 + CBra 2 + a+ + Ket + CBra 3 + [ab]+? + Ket + CBra 4 + [bc]+ + Ket + CBra 5 + \w* + Ket + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 5 Partial matching not supported @@ -3181,15 +3181,15 @@ Options: anchored No first char No need char -/^x(?U)a+b/D +/^x(?U)a+b/DZ ------------------------------------------------------------------ - 0 10 Bra 0 - 3 ^ - 4 x - 6 a++ - 8 b - 10 10 Ket - 13 End + Bra + ^ + x + a++ + b + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -3197,17 +3197,17 @@ Options: anchored No first char Need char = 'b' -/^x(?U)(a+)b/D +/^x(?U)(a+)b/DZ ------------------------------------------------------------------ - 0 18 Bra 0 - 3 ^ - 4 x - 6 7 Bra 1 - 11 a+? - 13 7 Ket - 16 b - 18 18 Ket - 21 End + Bra + ^ + x + CBra 1 + a+? + Ket + b + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Partial matching not supported @@ -3248,39 +3248,36 @@ Failed: missing terminating ] for character class at offset 3 /[[:space:]/I Failed: missing terminating ] for character class at offset 10 -/[\s]/IDM -Memory allocation (code space): 40 +/[\s]/IDZ ------------------------------------------------------------------ - 0 36 Bra 0 - 3 [\x09\x0a\x0c\x0d ] - 36 36 Ket - 39 End + Bra + [\x09\x0a\x0c\x0d ] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options No first char No need char -/[[:space:]]/IDM -Memory allocation (code space): 40 +/[[:space:]]/IDZ ------------------------------------------------------------------ - 0 36 Bra 0 - 3 [\x09-\x0d ] - 36 36 Ket - 39 End + Bra + [\x09-\x0d ] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options No first char No need char -/[[:space:]abcde]/IDM -Memory allocation (code space): 40 +/[[:space:]abcde]/IDZ ------------------------------------------------------------------ - 0 36 Bra 0 - 3 [\x09-\x0d a-e] - 36 36 Ket - 39 End + Bra + [\x09-\x0d a-e] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options @@ -3301,37 +3298,35 @@ Need char = '>' 0: <abc <123> hij> <abc <def> hij> 0: <def> - <abc<>def> + <abc<>def> 0: <abc<>def> - <abc<> + <abc<> 0: <> *** Failers No match <abc No match -|8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDM -Memory allocation (code space): 826 +|8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ ------------------------------------------------------------------ - 0 822 Bra 0 - 3 8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X -821 \b -822 822 Ket -825 End + Bra + 8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X + \b + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options First char = '8' Need char = 'X' -|\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDM -Memory allocation (code space): 816 +|\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ ------------------------------------------------------------------ - 0 812 Bra 0 - 3 $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X -811 \b -812 812 Ket -815 End + Bra + $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X + \b + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options @@ -3352,7 +3347,7 @@ Partial matching not supported No options First char at start or follows newline No need char - + /(.*)\d+\1/Is Capturing subpattern count = 1 Max back reference = 1 @@ -3387,7 +3382,7 @@ No need char 0: bc123bc 1: bc 2: bc - + /a[b]/I Capturing subpattern count = 0 No options @@ -3443,26 +3438,26 @@ No options No first char Need char = 'a' -/(?(1)ab|ac)/I -Capturing subpattern count = 0 +/(?(1)ab|ac)(.)/I +Capturing subpattern count = 1 No options First char = 'a' No need char -/(?(1)abz|acz)/I -Capturing subpattern count = 0 +/(?(1)abz|acz)(.)/I +Capturing subpattern count = 1 No options First char = 'a' Need char = 'z' -/(?(1)abz)/I -Capturing subpattern count = 0 +/(?(1)abz)(.)/I +Capturing subpattern count = 1 No options No first char No need char -/(?(1)abz)123/I -Capturing subpattern count = 0 +/(?(1)abz)(1)23/I +Capturing subpattern count = 1 No options No first char Need char = '3' @@ -3536,11 +3531,11 @@ First char at start or follows newline Need char = 'a' abcde 0: a - xy\nabc + xy\nabc 0: a - *** Failers + *** Failers No match - xyabc + xyabc No match /c|abc/I @@ -3572,7 +3567,7 @@ Need char = 'f' --->abcdef 0 ^ ^ d 0: abcdef - 1234abcdef + 1234abcdef --->1234abcdef 0 ^ ^ d 0: abcdef @@ -3580,7 +3575,7 @@ Need char = 'f' No match abcxyz No match - abcxyzf + abcxyzf --->abcxyzf 0 ^ ^ d No match @@ -3595,8 +3590,8 @@ Need char = 'f' 0 ^ ^ d 1 ^ ^ f 0: abcdef - -/(?C1)\dabc(?C2)def/I + +/(?C1)\dabc(?C2)def/I Capturing subpattern count = 0 No options No first char @@ -3611,7 +3606,7 @@ Need char = 'f' 0: 4abcdef *** Failers No match - abcdef + abcdef --->abcdef 1 ^ \d 1 ^ \d @@ -3620,7 +3615,7 @@ No match 1 ^ \d 1 ^ \d No match - + /(?C255)ab/I Capturing subpattern count = 0 No options @@ -3630,7 +3625,7 @@ Need char = 'b' /(?C256)ab/I Failed: number after (?C is > 255 at offset 6 -/(?Cab)xx/I +/(?Cab)xx/I Failed: closing ) for (?C expected at offset 3 /(?C12vr)x/I @@ -3659,7 +3654,7 @@ Need char = 'f' 1 ^ ^ f 0: abcdef 1: abc - 123abcdef\C+ + 123abcdef\C+ Callout 0: last capture = 1 0: <unset> 1: abc @@ -3672,17 +3667,17 @@ Callout 1: last capture = 1 ^ ^ f 0: abcdef 1: abc - 123abcdef\C- + 123abcdef\C- 0: abcdef 1: abc *** Failers No match - 123abcdef\C!1 + 123abcdef\C!1 --->123abcdef 0 ^ ^ d 1 ^ ^ f No match - + /(?C0)(abc(?C1))*/I Capturing subpattern count = 1 No options @@ -3696,7 +3691,7 @@ No need char 1 ^ ^ ) 0: abcabcabc 1: abc - abcabc\C!1!3 + abcabc\C!1!3 --->abcabc 0 ^ (abc(?C1))* 1 ^ ^ ) @@ -3707,7 +3702,7 @@ No need char --->*** Failers 0 ^ (abc(?C1))* 0: - abcabcabc\C!1!3 + abcabcabc\C!1!3 --->abcabcabc 0 ^ (abc(?C1))* 1 ^ ^ ) @@ -3741,7 +3736,7 @@ Callout 0: last capture = 1 ^ ^ ) 0: 123456 1: 456 - 123456789\C+ + 123456789\C+ Callout 0: last capture = -1 0: <unset> --->123456789 @@ -3813,13 +3808,13 @@ Callout 0: last capture = 1 ^ a 0: abcdef 1: abc - + /(?!(abc)(?C1)d)(?C2)abcxyz/I Capturing subpattern count = 1 No options First char = 'a' Need char = 'z' - abcxyz\C+ + abcxyz\C+ Callout 1: last capture = 1 0: <unset> 1: abc @@ -3844,7 +3839,7 @@ Callout 0: last capture = 1 ^ ) 0: xyz 1: abc - + /a(b+)(c*)(?C1)/I Capturing subpattern count = 2 Partial matching not supported @@ -3896,8 +3891,8 @@ Callout data = 1 1 ^ ^ Callout data = 1 No match - -/(?C)abc/I + +/(?C)abc/I Capturing subpattern count = 0 No options First char = 'a' @@ -3954,7 +3949,7 @@ No need char 3: xxab *** Failers No match - xyab + xyab No match /(ab|(bc|(de|(?1))))/I @@ -3974,12 +3969,12 @@ No need char a(b)c 0: a(b)c 1: c - a(b(c))d + a(b(c))d 0: a(b(c))d 1: d *** Failers) No match - a(b(c)d + a(b(c)d No match /^>abc>([^()]|\((?1)*\))*<xyz<$/I @@ -3997,36 +3992,36 @@ Need char = '<' 0: >abc>(1(2)3)<xyz< 1: (1(2)3) -/(a(?1)b)/D +/(a(?1)b)/DZ ------------------------------------------------------------------ - 0 24 Bra 0 - 3 18 Bra 1 - 8 a - 10 6 Once - 13 3 Recurse - 16 6 Ket - 19 b - 21 18 Ket - 24 24 Ket - 27 End + Bra + CBra 1 + a + Once + Recurse + Ket + b + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 No options First char = 'a' Need char = 'b' -/(a(?1)+b)/D +/(a(?1)+b)/DZ ------------------------------------------------------------------ - 0 24 Bra 0 - 3 18 Bra 1 - 8 a - 10 6 Once - 13 3 Recurse - 16 6 KetRmax - 19 b - 21 18 Ket - 24 24 Ket - 27 End + Bra + CBra 1 + a + Once + Recurse + KetRmax + b + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 No options @@ -4056,7 +4051,7 @@ No need char 2: <unset> 3: A man, a plan, a canal: Panama 4: A - Able was I ere I saw Elba. + Able was I ere I saw Elba. 0: Able was I ere I saw Elba. 1: <unset> 2: <unset> @@ -4064,9 +4059,9 @@ No need char 4: A *** Failers No match - The quick brown fox + The quick brown fox No match - + /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I Capturing subpattern count = 2 Partial matching not supported @@ -4087,7 +4082,7 @@ No need char No match ((2+2)*-3)-7) No match - + /^(x(y|(?1){2})z)/I Capturing subpattern count = 2 Options: anchored @@ -4097,7 +4092,7 @@ No need char 0: xyz 1: xyz 2: y - xxyzxyzz + xxyzxyzz 0: xxyzxyzz 1: xxyzxyzz 2: xyzxyz @@ -4105,7 +4100,7 @@ No need char No match xxyzz No match - xxyzxyzxyzz + xxyzxyzxyzz No match /((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix @@ -4130,11 +4125,11 @@ Need char = '>' 0: <def> 1: <def> 2: <def> - <abc<>def> + <abc<>def> 0: <abc<>def> 1: <abc<>def> 2: <abc<>def> - <abc<> + <abc<> 0: <> 1: <> 2: <> @@ -4169,7 +4164,7 @@ No need char a=b 0: a=b 1: a - a=bc + a=bc 0: a=bc 1: a @@ -4186,26 +4181,26 @@ No need char 0: a=b 1: a 2: b - a=bc + a=bc 0: a=bc 1: a 2: c -/a(?P<name1>b|c)d(?P<longername2>e)/D ------------------------------------------------------------------- - 0 32 Bra 0 - 3 a - 5 7 Bra 1 - 10 b - 12 5 Alt - 15 c - 17 12 Ket - 20 d - 22 7 Bra 2 - 27 e - 29 7 Ket - 32 32 Ket - 35 End +/a(?P<name1>b|c)d(?P<longername2>e)/DZ +------------------------------------------------------------------ + Bra + a + CBra 1 + b + Alt + c + Ket + d + CBra 2 + e + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 2 Named capturing subpatterns: @@ -4218,28 +4213,28 @@ Need char = 'e' 0: abde 1: b 2: e - acde + acde 0: acde 1: c 2: e -/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D ------------------------------------------------------------------- - 0 41 Bra 0 - 3 25 Bra 0 - 6 a - 8 17 Bra 1 - 13 c - 15 7 Bra 2 - 20 d - 22 7 Ket - 25 17 Ket - 28 25 Ket - 31 7 Bra 3 - 36 a - 38 7 Ket - 41 41 Ket - 44 End +/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ +------------------------------------------------------------------ + Bra + Bra + a + CBra 1 + c + CBra 2 + d + Ket + Ket + Ket + CBra 3 + a + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 3 Named capturing subpatterns: @@ -4250,23 +4245,23 @@ No options First char = 'a' Need char = 'a' -/(?P<a>a)...(?P=a)bbb(?P>a)d/D ------------------------------------------------------------------- - 0 36 Bra 0 - 3 7 Bra 1 - 8 a - 10 7 Ket - 13 Any - 14 Any - 15 Any - 16 \1 - 19 bbb - 25 6 Once - 28 3 Recurse - 31 6 Ket - 34 d - 36 36 Ket - 39 End +/(?P<a>a)...(?P=a)bbb(?P>a)d/DZ +------------------------------------------------------------------ + Bra + CBra 1 + a + Ket + Any + Any + Any + \1 + bbb + Once + Recurse + Ket + d + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Max back reference = 1 @@ -4304,7 +4299,7 @@ No need char 2: <unset> 3: A man, a plan, a canal: Panama 4: A - Able was I ere I saw Elba. + Able was I ere I saw Elba. 0: Able was I ere I saw Elba. 1: <unset> 2: <unset> @@ -4312,9 +4307,9 @@ No need char 4: A *** Failers No match - The quick brown fox + The quick brown fox No match - + /((?(R)a|b))\1(?1)?/I Capturing subpattern count = 1 Max back reference = 1 @@ -4324,7 +4319,7 @@ No need char bb 0: bb 1: b - bbaa + bbaa 0: bba 1: b @@ -4413,17 +4408,17 @@ Options: dotall No first char No need char -/(a)(bc)/IND +/(a)(bc)/INDZ ------------------------------------------------------------------ - 0 21 Bra 0 - 3 5 Bra 0 - 6 a - 8 5 Ket - 11 7 Bra 0 - 14 bc - 18 7 Ket - 21 21 Ket - 24 End + Bra + Bra + a + Ket + Bra + bc + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: no_auto_capture @@ -4432,17 +4427,17 @@ Need char = 'c' abc 0: abc -/(?P<one>a)(bc)/IND +/(?P<one>a)(bc)/INDZ ------------------------------------------------------------------ - 0 23 Bra 0 - 3 7 Bra 1 - 8 a - 10 7 Ket - 13 7 Bra 0 - 16 bc - 20 7 Ket - 23 23 Ket - 26 End + Bra + CBra 1 + a + Ket + Bra + bc + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Named capturing subpatterns: @@ -4454,17 +4449,17 @@ Need char = 'c' 0: abc 1: a -/(a)(?P<named>bc)/IND +/(a)(?P<named>bc)/INDZ ------------------------------------------------------------------ - 0 23 Bra 0 - 3 5 Bra 0 - 6 a - 8 5 Ket - 11 9 Bra 1 - 16 bc - 20 9 Ket - 23 23 Ket - 26 End + Bra + Bra + a + Ket + CBra 1 + bc + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Named capturing subpatterns: @@ -4540,22 +4535,22 @@ Need char = 'h' 2: gh C cd (2) one C gh (2) two - abcdefgh\Cthree + abcdefgh\Cthree no parentheses with name "three" 0: abcdefgh 1: cd 2: gh copy substring three failed -7 -/(?P<Tes>)(?P<Test>)/D +/(?P<Tes>)(?P<Test>)/DZ ------------------------------------------------------------------ - 0 19 Bra 0 - 3 5 Bra 1 - 8 5 Ket - 11 5 Bra 2 - 16 5 Ket - 19 19 Ket - 22 End + Bra + CBra 1 + Ket + CBra 2 + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 2 Named capturing subpatterns: @@ -4565,15 +4560,15 @@ No options No first char No need char -/(?P<Test>)(?P<Tes>)/D +/(?P<Test>)(?P<Tes>)/DZ ------------------------------------------------------------------ - 0 19 Bra 0 - 3 5 Bra 1 - 8 5 Ket - 11 5 Bra 2 - 16 5 Ket - 19 19 Ket - 22 End + Bra + CBra 1 + Ket + CBra 2 + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 2 Named capturing subpatterns: @@ -4623,7 +4618,7 @@ Need char = ']' 3: ,4234 *** Failers No match - [] + [] No match "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I @@ -4639,96 +4634,96 @@ Need char = ']' 1: 10,20,30,5,5,4,4,2,43,23,4234 2: 10 3: ,4234 - [] + [] 0: [] -/(a(b(?2)c))?/D ------------------------------------------------------------------- - 0 35 Bra 0 - 3 Brazero - 4 28 Bra 1 - 9 a - 11 18 Bra 2 - 16 b - 18 6 Once - 21 11 Recurse - 24 6 Ket - 27 c - 29 18 Ket - 32 28 Ket - 35 35 Ket - 38 End +/(a(b(?2)c))?/DZ +------------------------------------------------------------------ + Bra + Brazero + CBra 1 + a + CBra 2 + b + Once + Recurse + Ket + c + Ket + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 2 No options No first char No need char -/(a(b(?2)c))*/D +/(a(b(?2)c))*/DZ ------------------------------------------------------------------ - 0 35 Bra 0 - 3 Brazero - 4 28 Bra 1 - 9 a - 11 18 Bra 2 - 16 b - 18 6 Once - 21 11 Recurse - 24 6 Ket - 27 c - 29 18 Ket - 32 28 KetRmax - 35 35 Ket - 38 End + Bra + Brazero + CBra 1 + a + CBra 2 + b + Once + Recurse + Ket + c + Ket + KetRmax + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 2 No options No first char No need char -/(a(b(?2)c)){0,2}/D ------------------------------------------------------------------- - 0 73 Bra 0 - 3 Brazero - 4 66 Bra 0 - 7 28 Bra 1 - 12 a - 14 18 Bra 2 - 19 b - 21 6 Once - 24 14 Recurse - 27 6 Ket - 30 c - 32 18 Ket - 35 28 Ket - 38 Brazero - 39 28 Bra 1 - 44 a - 46 18 Bra 2 - 51 b - 53 6 Once - 56 14 Recurse - 59 6 Ket - 62 c - 64 18 Ket - 67 28 Ket - 70 66 Ket - 73 73 Ket - 76 End +/(a(b(?2)c)){0,2}/DZ +------------------------------------------------------------------ + Bra + Brazero + Bra + CBra 1 + a + CBra 2 + b + Once + Recurse + Ket + c + Ket + Ket + Brazero + CBra 1 + a + CBra 2 + b + Once + Recurse + Ket + c + Ket + Ket + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 2 No options No first char No need char -/[ab]{1}+/D +/[ab]{1}+/DZ ------------------------------------------------------------------ - 0 47 Bra 0 - 3 41 Once - 6 [ab]{1,1} - 44 41 Ket - 47 47 Ket - 50 End + Bra + Once + [ab]{1,1} + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options @@ -4755,15 +4750,15 @@ Study returned NULL Baby Bjorn Active Carrier - With free SHIPPING!! 0: Baby Bjorn Active Carrier - With free SHIPPING!! 1: Baby Bjorn Active Carrier - With free SHIPPING!! - -/a*.*b/ISD + +/a*.*b/ISDZ ------------------------------------------------------------------ - 0 9 Bra 0 - 3 a* - 5 Any* - 7 b - 9 9 Ket - 12 End + Bra + a* + Any* + b + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -4772,19 +4767,19 @@ No first char Need char = 'b' Study returned NULL -/(a|b)*.?c/ISD +/(a|b)*.?c/ISDZ ------------------------------------------------------------------ - 0 23 Bra 0 - 3 Brazero - 4 7 Bra 1 - 9 a - 11 5 Alt - 14 b - 16 12 KetRmax - 19 Any? - 21 c - 23 23 Ket - 26 End + Bra + Brazero + CBra 1 + a + Alt + b + KetRmax + Any? + c + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 No options @@ -4792,38 +4787,38 @@ No first char Need char = 'c' Study returned NULL -/abc(?C255)de(?C)f/D +/abc(?C255)de(?C)f/DZ ------------------------------------------------------------------ - 0 27 Bra 0 - 3 abc - 9 Callout 255 10 1 - 15 de - 19 Callout 0 16 1 - 25 f - 27 27 Ket - 30 End + Bra + abc + Callout 255 10 1 + de + Callout 0 16 1 + f + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options First char = 'a' Need char = 'f' -/abcde/ICD +/abcde/ICDZ ------------------------------------------------------------------ - 0 49 Bra 0 - 3 Callout 255 0 1 - 9 a - 11 Callout 255 1 1 - 17 b - 19 Callout 255 2 1 - 25 c - 27 Callout 255 3 1 - 33 d - 35 Callout 255 4 1 - 41 e - 43 Callout 255 5 0 - 49 49 Ket - 52 End + Bra + Callout 255 0 1 + a + Callout 255 1 1 + b + Callout 255 2 1 + c + Callout 255 3 1 + d + Callout 255 4 1 + e + Callout 255 5 0 + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: @@ -4838,7 +4833,7 @@ Need char = 'e' +4 ^ ^ e +5 ^ ^ 0: abcde - abcdfe + abcdfe --->abcdfe +0 ^ a +1 ^^ b @@ -4846,17 +4841,17 @@ Need char = 'e' +3 ^ ^ d +4 ^ ^ e No match - -/a*b/ICD + +/a*b/ICDZ ------------------------------------------------------------------ - 0 25 Bra 0 - 3 Callout 255 0 2 - 9 a*+ - 11 Callout 255 2 1 - 17 b - 19 Callout 255 3 0 - 25 25 Ket - 28 End + Bra + Callout 255 0 2 + a*+ + Callout 255 2 1 + b + Callout 255 3 0 + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -4875,7 +4870,7 @@ Need char = 'b' +2 ^ ^ b +3 ^ ^ 0: aaaab - aaaacb + aaaacb --->aaaacb +0 ^ a* +2 ^ ^ b @@ -4892,16 +4887,16 @@ Need char = 'b' +3 ^^ 0: b -/a+b/ICD +/a+b/ICDZ ------------------------------------------------------------------ - 0 25 Bra 0 - 3 Callout 255 0 2 - 9 a++ - 11 Callout 255 2 1 - 17 b - 19 Callout 255 3 0 - 25 25 Ket - 28 End + Bra + Callout 255 0 2 + a++ + Callout 255 2 1 + b + Callout 255 3 0 + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -4920,7 +4915,7 @@ Need char = 'b' +2 ^ ^ b +3 ^ ^ 0: aaaab - aaaacb + aaaacb --->aaaacb +0 ^ a+ +2 ^ ^ b @@ -4932,32 +4927,32 @@ Need char = 'b' +2 ^^ b No match -/(abc|def)x/ICD ------------------------------------------------------------------- - 0 94 Bra 0 - 3 Callout 255 0 9 - 9 35 Bra 1 - 14 Callout 255 1 1 - 20 a - 22 Callout 255 2 1 - 28 b - 30 Callout 255 3 1 - 36 c - 38 Callout 255 4 0 - 44 33 Alt - 47 Callout 255 5 1 - 53 d - 55 Callout 255 6 1 - 61 e - 63 Callout 255 7 1 - 69 f - 71 Callout 255 8 0 - 77 68 Ket - 80 Callout 255 9 1 - 86 x - 88 Callout 255 10 0 - 94 94 Ket - 97 End +/(abc|def)x/ICDZ +------------------------------------------------------------------ + Bra + Callout 255 0 9 + CBra 1 + Callout 255 1 1 + a + Callout 255 2 1 + b + Callout 255 3 1 + c + Callout 255 4 0 + Alt + Callout 255 5 1 + d + Callout 255 6 1 + e + Callout 255 7 1 + f + Callout 255 8 0 + Ket + Callout 255 9 1 + x + Callout 255 10 0 + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: @@ -5064,7 +5059,7 @@ No need char +12 ^ ^ 0: abcdabcd 1: cd - abcdcdcdcdcd + abcdcdcdcdcd --->abcdcdcdcdcd +0 ^ (ab|cd){3,4} +1 ^ a @@ -5086,34 +5081,34 @@ No need char 0: abcdcdcd 1: cd -/([ab]{,4}c|xy)/ICD ------------------------------------------------------------------- - 0 133 Bra 0 - 3 Callout 255 0 14 - 9 90 Bra 1 - 14 Callout 255 1 4 - 20 [ab] - 53 Callout 255 5 1 - 59 { - 61 Callout 255 6 1 - 67 , - 69 Callout 255 7 1 - 75 4 - 77 Callout 255 8 1 - 83 } - 85 Callout 255 9 1 - 91 c - 93 Callout 255 10 0 - 99 25 Alt -102 Callout 255 11 1 -108 x -110 Callout 255 12 1 -116 y -118 Callout 255 13 0 -124 115 Ket -127 Callout 255 14 0 -133 133 Ket -136 End +/([ab]{,4}c|xy)/ICDZ +------------------------------------------------------------------ + Bra + Callout 255 0 14 + CBra 1 + Callout 255 1 4 + [ab] + Callout 255 5 1 + { + Callout 255 6 1 + , + Callout 255 7 1 + 4 + Callout 255 8 1 + } + Callout 255 9 1 + c + Callout 255 10 0 + Alt + Callout 255 11 1 + x + Callout 255 12 1 + y + Callout 255 13 0 + Ket + Callout 255 14 0 + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: @@ -5261,85 +5256,85 @@ No need char +11 ^ x No match -/([ab]{1,4}c|xy){4,5}?123/ICD ------------------------------------------------------------------- - 0 495 Bra 0 - 3 Callout 255 0 21 - 9 63 Bra 1 - 14 Callout 255 1 9 - 20 [ab]{1,4} - 58 Callout 255 10 1 - 64 c - 66 Callout 255 11 0 - 72 25 Alt - 75 Callout 255 12 1 - 81 x - 83 Callout 255 13 1 - 89 y - 91 Callout 255 14 0 - 97 88 Ket -100 63 Bra 1 -105 Callout 255 1 9 -111 [ab]{1,4} -149 Callout 255 10 1 -155 c -157 Callout 255 11 0 -163 25 Alt -166 Callout 255 12 1 -172 x -174 Callout 255 13 1 -180 y -182 Callout 255 14 0 -188 88 Ket -191 63 Bra 1 -196 Callout 255 1 9 -202 [ab]{1,4} -240 Callout 255 10 1 -246 c -248 Callout 255 11 0 -254 25 Alt -257 Callout 255 12 1 -263 x -265 Callout 255 13 1 -271 y -273 Callout 255 14 0 -279 88 Ket -282 63 Bra 1 -287 Callout 255 1 9 -293 [ab]{1,4} -331 Callout 255 10 1 -337 c -339 Callout 255 11 0 -345 25 Alt -348 Callout 255 12 1 -354 x -356 Callout 255 13 1 -362 y -364 Callout 255 14 0 -370 88 Ket -373 Braminzero -374 63 Bra 1 -379 Callout 255 1 9 -385 [ab]{1,4} -423 Callout 255 10 1 -429 c -431 Callout 255 11 0 -437 25 Alt -440 Callout 255 12 1 -446 x -448 Callout 255 13 1 -454 y -456 Callout 255 14 0 -462 88 Ket -465 Callout 255 21 1 -471 1 -473 Callout 255 22 1 -479 2 -481 Callout 255 23 1 -487 3 -489 Callout 255 24 0 -495 495 Ket -498 End +/([ab]{1,4}c|xy){4,5}?123/ICDZ +------------------------------------------------------------------ + Bra + Callout 255 0 21 + CBra 1 + Callout 255 1 9 + [ab]{1,4} + Callout 255 10 1 + c + Callout 255 11 0 + Alt + Callout 255 12 1 + x + Callout 255 13 1 + y + Callout 255 14 0 + Ket + CBra 1 + Callout 255 1 9 + [ab]{1,4} + Callout 255 10 1 + c + Callout 255 11 0 + Alt + Callout 255 12 1 + x + Callout 255 13 1 + y + Callout 255 14 0 + Ket + CBra 1 + Callout 255 1 9 + [ab]{1,4} + Callout 255 10 1 + c + Callout 255 11 0 + Alt + Callout 255 12 1 + x + Callout 255 13 1 + y + Callout 255 14 0 + Ket + CBra 1 + Callout 255 1 9 + [ab]{1,4} + Callout 255 10 1 + c + Callout 255 11 0 + Alt + Callout 255 12 1 + x + Callout 255 13 1 + y + Callout 255 14 0 + Ket + Braminzero + CBra 1 + Callout 255 1 9 + [ab]{1,4} + Callout 255 10 1 + c + Callout 255 11 0 + Alt + Callout 255 12 1 + x + Callout 255 13 1 + y + Callout 255 14 0 + Ket + Callout 255 21 1 + 1 + Callout 255 22 1 + 2 + Callout 255 23 1 + 3 + Callout 255 24 0 + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Partial matching not supported @@ -5380,8 +5375,8 @@ No first char No need char ab cd\>1 0: cd - -/\b.*/Is + +/\b.*/Is Capturing subpattern count = 0 Partial matching not supported Options: dotall @@ -5389,14 +5384,14 @@ No first char No need char ab cd\>1 0: cd - + /(?!.bcd).*/I Capturing subpattern count = 0 Partial matching not supported No options No first char No need char - Xbcd12345 + Xbcd12345 0: bcd12345 /abcde/I @@ -5410,7 +5405,7 @@ Partial match Partial match abcd\P Partial match - abcde\P + abcde\P 0: abcde the quick brown abc\P Partial match @@ -5418,7 +5413,7 @@ Partial match No match the quick brown abxyz fox\P No match - + "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I Capturing subpattern count = 3 Options: anchored @@ -5433,7 +5428,7 @@ Need char = '/' 1: 13 2: 5 3: 20 - 02/05/09\P + 02/05/09\P 0: 02/05/09 1: 02 2: 05 @@ -5443,7 +5438,7 @@ Partial match Partial match 1/2/0\P Partial match - 1/2/04\P + 1/2/04\P 0: 1/2/04 1: 1 2: 2 @@ -5451,7 +5446,7 @@ Partial match Partial match 02/\P Partial match - 02/0\P + 02/0\P Partial match 02/1\P Partial match @@ -5467,11 +5462,11 @@ No match No match 0/1/2003\P No match - 0/\P + 0/\P No match - 02/0/\P + 02/0/\P No match - 02/13\P + 02/13\P No match /0{0,2}ABC/I @@ -5480,14 +5475,14 @@ Partial matching not supported No options No first char Need char = 'C' - + /\d{3,}ABC/I Capturing subpattern count = 0 Partial matching not supported No options No first char Need char = 'C' - + /\d*ABC/I Capturing subpattern count = 0 Partial matching not supported @@ -5517,7 +5512,7 @@ Partial match Partial match c12\P Partial match - c123\P + c123\P 0: c123 /^(?:\d){3,5}X/I @@ -5537,13 +5532,13 @@ Partial match 0: 1234X 12345\P Partial match - 12345X + 12345X 0: 12345X - *** Failers + *** Failers No match - 1X + 1X No match - 123456\P + 123456\P No match /abc/I>testsavedregex @@ -5561,7 +5556,7 @@ No study data No match bca No match - + /abc/IF>testsavedregex Capturing subpattern count = 0 No options @@ -5595,9 +5590,9 @@ Study data loaded from testsavedregex ** Failers 0: a 1: a - def + def No match - + /(a|b)/ISF>testsavedregex Capturing subpattern count = 1 No options @@ -5615,9 +5610,9 @@ Study data loaded from testsavedregex ** Failers 0: a 1: a - def + def No match - + ~<(\w+)/?>(.)*</(\1)>~smgI Capturing subpattern count = 3 Max back reference = 1 @@ -5639,42 +5634,45 @@ No need char /line\nbreak/I Capturing subpattern count = 0 +Contains explicit CR or LF match No options First char = 'l' Need char = 'k' this is a line\nbreak 0: line\x0abreak - line one\nthis is a line\nbreak in the second line + line one\nthis is a line\nbreak in the second line 0: line\x0abreak /line\nbreak/If Capturing subpattern count = 0 +Contains explicit CR or LF match Options: firstline First char = 'l' Need char = 'k' this is a line\nbreak 0: line\x0abreak - ** Failers + ** Failers No match - line one\nthis is a line\nbreak in the second line + line one\nthis is a line\nbreak in the second line No match /line\nbreak/Imf Capturing subpattern count = 0 +Contains explicit CR or LF match Options: multiline firstline First char = 'l' Need char = 'k' this is a line\nbreak 0: line\x0abreak - ** Failers + ** Failers No match - line one\nthis is a line\nbreak in the second line + line one\nthis is a line\nbreak in the second line No match /ab.cd/IP ab-cd 0: ab-cd - ab=cd + ab=cd 0: ab=cd ** Failers No match: POSIX code 17: match failed @@ -5684,7 +5682,7 @@ No match: POSIX code 17: match failed /ab.cd/IPs ab-cd 0: ab-cd - ab=cd + ab=cd 0: ab=cd ab\ncd 0: ab\x0acd @@ -5698,9 +5696,9 @@ Need char = 'd' 0: AbCd ** Failers No match - abcd + abcd No match - + /a{11111111111111111111}/I Failed: number too big in {} quantifier at offset 22 @@ -5931,7 +5929,7 @@ No first char No need char (this(and)that 0: - (this(and)that) + (this(and)that) 0: (this(and)that) (this(and)that)stuff 0: (this(and)that)stuff @@ -5944,9 +5942,9 @@ No first char No need char (this(and)that 0: - (this(and)that) + (this(and)that) 0: (this(and)that) - + /[^()]*(?:\((?R)\))*[^()]*/I Capturing subpattern count = 0 Partial matching not supported @@ -5955,7 +5953,7 @@ No first char No need char (this(and)that 0: - (this(and)that) + (this(and)that) 0: (this(and)that) /(?:\((?R)\))*[^()]*/I @@ -5966,9 +5964,9 @@ No first char No need char (this(and)that 0: - (this(and)that) + (this(and)that) 0: - ((this)) + ((this)) 0: ((this)) /(?:\((?R)\))|[^()]*/I @@ -5979,22 +5977,22 @@ No first char No need char (this(and)that 0: - (this(and)that) + (this(and)that) 0: (this) 0: (this) - ((this)) + ((this)) 0: ((this)) - + /a(b)c/IPN abc Matched with REG_NOSUB - + /a(?P<name>b)c/IPN - abc + abc Matched with REG_NOSUB - -/\x{100}/I + +/\x{100}/I Failed: character value in \x{...} sequence is too large at offset 6 /\x{0000ff}/I @@ -6019,7 +6017,7 @@ No need char 1: a1 2: a1 C a1 (2) A - a2b\CA + a2b\CA 0: a2b 1: a2b 2: <unset> @@ -6027,14 +6025,14 @@ No need char C a2 (2) A ** Failers No match - a1b\CZ\CA + a1b\CZ\CA no parentheses with name "Z" 0: a1 1: a1 2: a1 copy substring Z failed -7 C a1 (2) A - + /^(?P<A>a)(?P<A>b)/IJ Capturing subpattern count = 2 Named capturing subpatterns: @@ -6048,7 +6046,7 @@ No need char 1: a 2: b C a (1) A - + /^(?P<A>a)(?P<A>b)|cd/IJ Capturing subpattern count = 2 Named capturing subpatterns: @@ -6062,10 +6060,10 @@ No need char 1: a 2: b C a (1) A - cd\CA + cd\CA 0: cd copy substring A failed -7 - + /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ Capturing subpattern count = 4 Named capturing subpatterns: @@ -6076,14 +6074,14 @@ Named capturing subpatterns: Options: dupnames No first char No need char - cdefgh\CA + cdefgh\CA 0: cdefgh 1: <unset> 2: <unset> 3: ef 4: gh C ef (2) A - + /^((?P<A>a1)|(?P<A>a2)b)/IJ Capturing subpattern count = 3 Named capturing subpatterns: @@ -6097,7 +6095,7 @@ No need char 1: a1 2: a1 G a1 (2) A - a2b\GA + a2b\GA 0: a2b 1: a2b 2: <unset> @@ -6105,14 +6103,14 @@ No need char G a2 (2) A ** Failers No match - a1b\GZ\GA + a1b\GZ\GA no parentheses with name "Z" 0: a1 1: a1 2: a1 copy substring Z failed -7 G a1 (2) A - + /^(?P<A>a)(?P<A>b)/IJ Capturing subpattern count = 2 Named capturing subpatterns: @@ -6126,7 +6124,7 @@ No need char 1: a 2: b G a (1) A - + /^(?P<A>a)(?P<A>b)|cd/IJ Capturing subpattern count = 2 Named capturing subpatterns: @@ -6140,10 +6138,10 @@ No need char 1: a 2: b G a (1) A - cd\GA + cd\GA 0: cd copy substring A failed -7 - + /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ Capturing subpattern count = 4 Named capturing subpatterns: @@ -6154,20 +6152,21 @@ Named capturing subpatterns: Options: dupnames No first char No need char - cdefgh\GA + cdefgh\GA 0: cdefgh 1: <unset> 2: <unset> 3: ef 4: gh G ef (2) A - + /(?J)^((?P<A>a1)|(?P<A>a2)b)/I Capturing subpattern count = 3 Named capturing subpatterns: A 2 A 3 Options: anchored dupnames +Duplicate name status changes No first char No need char a1b\CA @@ -6175,18 +6174,18 @@ No need char 1: a1 2: a1 C a1 (2) A - a2b\CA + a2b\CA 0: a2b 1: a2b 2: <unset> 3: a2 C a2 (2) A - + /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I Failed: two named subpatterns have the same name at offset 37 / In this next test, J is not set at the outer level; consequently it isn't -set in the pattern's options; consequently pcre_get_named_substring() produces +set in the pattern's options; consequently pcre_get_named_substring() produces a random value. /Ix Capturing subpattern count = 1 Options: extended @@ -6201,6 +6200,7 @@ Named capturing subpatterns: B 3 C 4 Options: anchored +Duplicate name status changes No first char No need char a bc d\CA\CB\CC @@ -6227,7 +6227,7 @@ No need char 0: b ** Failers No match - abc + abc No match /(?:(?(ZZ)a|b)(?P<ZZ>X))+/I @@ -6283,7 +6283,7 @@ No need char bXXaYYaY 0: bXXaYYaY 1: Y - bXYaXXaX + bXYaXXaX 0: bX 1: X @@ -6320,7 +6320,7 @@ Need char = ',' Starting byte set: \x09 \x0a \x0c \x0d \x20 , \x0b,\x0b 0: , - \x0c,\x0d + \x0c,\x0d 0: \x0c,\x0d /^abc/Im @@ -6338,7 +6338,7 @@ Need char = 'c' 0: abc xyz\r\nabc\<crlf> 0: abc - ** Failers + ** Failers No match xyz\nabc\<cr> No match @@ -6350,7 +6350,7 @@ No match No match xyz\rabc\<lf> No match - + /abc$/Im<lf> Capturing subpattern count = 0 Options: multiline @@ -6359,29 +6359,29 @@ First char = 'a' Need char = 'c' xyzabc 0: abc - xyzabc\n + xyzabc\n 0: abc - xyzabc\npqr + xyzabc\npqr 0: abc - xyzabc\r\<cr> + xyzabc\r\<cr> 0: abc - xyzabc\rpqr\<cr> + xyzabc\rpqr\<cr> 0: abc - xyzabc\r\n\<crlf> + xyzabc\r\n\<crlf> 0: abc - xyzabc\r\npqr\<crlf> + xyzabc\r\npqr\<crlf> 0: abc ** Failers No match - xyzabc\r + xyzabc\r No match - xyzabc\rpqr + xyzabc\rpqr No match - xyzabc\r\n + xyzabc\r\n No match - xyzabc\r\npqr + xyzabc\r\npqr No match - + /^abc/Im<cr> Capturing subpattern count = 0 Options: multiline @@ -6392,11 +6392,11 @@ Need char = 'c' 0: abc xyz\nabcdef\<lf> 0: abc - ** Failers + ** Failers No match xyz\nabcdef No match - + /^abc/Im<lf> Capturing subpattern count = 0 Options: multiline @@ -6407,11 +6407,11 @@ Need char = 'c' 0: abc xyz\rabcdef\<cr> 0: abc - ** Failers + ** Failers No match xyz\rabcdef No match - + /^abc/Im<crlf> Capturing subpattern count = 0 Options: multiline @@ -6422,11 +6422,11 @@ Need char = 'c' 0: abc xyz\rabcdef\<cr> 0: abc - ** Failers + ** Failers No match xyz\rabcdef No match - + /^abc/Im<bad> Unknown newline type at: <bad> @@ -6438,9 +6438,9 @@ First char = 'a' Need char = 'c' xyz\rabc\<bad> Unknown newline type at: <bad> - abc + abc 0: abc - + /.*/I<lf> Capturing subpattern count = 0 Partial matching not supported @@ -6514,7 +6514,7 @@ Capturing subpattern count = 102 Options: extended No first char No need char - XY\O400 + XY\O400 0: XY 1: 2: @@ -6669,15 +6669,15 @@ No first char Need char = 'z' Starting byte set: a b c d -/^a*b\d/D +/^a*b\d/DZ ------------------------------------------------------------------ - 0 9 Bra 0 - 3 ^ - 4 a*+ - 6 b - 8 \d - 9 9 Ket - 12 End + Bra + ^ + a*+ + b + \d + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -6685,15 +6685,15 @@ Options: anchored No first char Need char = 'b' -/^a*+b\d/D +/^a*+b\d/DZ ------------------------------------------------------------------ - 0 9 Bra 0 - 3 ^ - 4 a*+ - 6 b - 8 \d - 9 9 Ket - 12 End + Bra + ^ + a*+ + b + \d + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -6701,15 +6701,15 @@ Options: anchored No first char Need char = 'b' -/^a*?b\d/D +/^a*?b\d/DZ ------------------------------------------------------------------ - 0 9 Bra 0 - 3 ^ - 4 a*+ - 6 b - 8 \d - 9 9 Ket - 12 End + Bra + ^ + a*+ + b + \d + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -6717,15 +6717,15 @@ Options: anchored No first char Need char = 'b' -/^a+A\d/D +/^a+A\d/DZ ------------------------------------------------------------------ - 0 9 Bra 0 - 3 ^ - 4 a++ - 6 A - 8 \d - 9 9 Ket - 12 End + Bra + ^ + a++ + A + \d + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -6736,18 +6736,18 @@ Need char = 'A' 0: aaaA5 ** Failers No match - aaaa5 + aaaa5 No match -/^a*A\d/IiD +/^a*A\d/IiDZ ------------------------------------------------------------------ - 0 9 Bra 0 - 3 ^ - 4 a* - 6 NC A - 8 \d - 9 9 Ket - 12 End + Bra + ^ + a* + NC A + \d + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -6797,8 +6797,8 @@ Starting byte set: a b a )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) - ))) -/Ix + ))) +/Ix Capturing subpattern count = 203 Options: extended First char = 'a' @@ -6821,598 +6821,598 @@ Matched, but too many substrings 13: a 14: a -/a*\d/B +/a*\d/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 a*+ - 5 \d - 6 6 Ket - 9 End + Bra + a*+ + \d + Ket + End ------------------------------------------------------------------ -/a*\D/B +/a*\D/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 a* - 5 \D - 6 6 Ket - 9 End + Bra + a* + \D + Ket + End ------------------------------------------------------------------ -/0*\d/B +/0*\d/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 0* - 5 \d - 6 6 Ket - 9 End + Bra + 0* + \d + Ket + End ------------------------------------------------------------------ -/0*\D/B +/0*\D/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 0*+ - 5 \D - 6 6 Ket - 9 End + Bra + 0*+ + \D + Ket + End ------------------------------------------------------------------ -/a*\s/B +/a*\s/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 a*+ - 5 \s - 6 6 Ket - 9 End + Bra + a*+ + \s + Ket + End ------------------------------------------------------------------ -/a*\S/B +/a*\S/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 a* - 5 \S - 6 6 Ket - 9 End + Bra + a* + \S + Ket + End ------------------------------------------------------------------ -/ *\s/B +/ *\s/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 * - 5 \s - 6 6 Ket - 9 End + Bra + * + \s + Ket + End ------------------------------------------------------------------ -/ *\S/B +/ *\S/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 *+ - 5 \S - 6 6 Ket - 9 End + Bra + *+ + \S + Ket + End ------------------------------------------------------------------ -/a*\w/B +/a*\w/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 a* - 5 \w - 6 6 Ket - 9 End + Bra + a* + \w + Ket + End ------------------------------------------------------------------ -/a*\W/B +/a*\W/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 a*+ - 5 \W - 6 6 Ket - 9 End + Bra + a*+ + \W + Ket + End ------------------------------------------------------------------ -/=*\w/B +/=*\w/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 =*+ - 5 \w - 6 6 Ket - 9 End + Bra + =*+ + \w + Ket + End ------------------------------------------------------------------ -/=*\W/B +/=*\W/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 =* - 5 \W - 6 6 Ket - 9 End + Bra + =* + \W + Ket + End ------------------------------------------------------------------ -/\d*a/B +/\d*a/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \d*+ - 5 a - 7 7 Ket - 10 End + Bra + \d*+ + a + Ket + End ------------------------------------------------------------------ -/\d*2/B +/\d*2/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \d* - 5 2 - 7 7 Ket - 10 End + Bra + \d* + 2 + Ket + End ------------------------------------------------------------------ -/\d*\d/B +/\d*\d/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \d* - 5 \d - 6 6 Ket - 9 End + Bra + \d* + \d + Ket + End ------------------------------------------------------------------ -/\d*\D/B +/\d*\D/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \d*+ - 5 \D - 6 6 Ket - 9 End + Bra + \d*+ + \D + Ket + End ------------------------------------------------------------------ -/\d*\s/B +/\d*\s/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \d*+ - 5 \s - 6 6 Ket - 9 End + Bra + \d*+ + \s + Ket + End ------------------------------------------------------------------ -/\d*\S/B +/\d*\S/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \d* - 5 \S - 6 6 Ket - 9 End + Bra + \d* + \S + Ket + End ------------------------------------------------------------------ -/\d*\w/B +/\d*\w/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \d* - 5 \w - 6 6 Ket - 9 End + Bra + \d* + \w + Ket + End ------------------------------------------------------------------ -/\d*\W/B +/\d*\W/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \d*+ - 5 \W - 6 6 Ket - 9 End + Bra + \d*+ + \W + Ket + End ------------------------------------------------------------------ -/\D*a/B +/\D*a/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \D* - 5 a - 7 7 Ket - 10 End + Bra + \D* + a + Ket + End ------------------------------------------------------------------ -/\D*2/B +/\D*2/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \D*+ - 5 2 - 7 7 Ket - 10 End + Bra + \D*+ + 2 + Ket + End ------------------------------------------------------------------ -/\D*\d/B +/\D*\d/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \D*+ - 5 \d - 6 6 Ket - 9 End + Bra + \D*+ + \d + Ket + End ------------------------------------------------------------------ -/\D*\D/B +/\D*\D/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \D* - 5 \D - 6 6 Ket - 9 End + Bra + \D* + \D + Ket + End ------------------------------------------------------------------ -/\D*\s/B +/\D*\s/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \D* - 5 \s - 6 6 Ket - 9 End + Bra + \D* + \s + Ket + End ------------------------------------------------------------------ -/\D*\S/B +/\D*\S/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \D* - 5 \S - 6 6 Ket - 9 End + Bra + \D* + \S + Ket + End ------------------------------------------------------------------ -/\D*\w/B +/\D*\w/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \D* - 5 \w - 6 6 Ket - 9 End + Bra + \D* + \w + Ket + End ------------------------------------------------------------------ -/\D*\W/B +/\D*\W/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \D* - 5 \W - 6 6 Ket - 9 End + Bra + \D* + \W + Ket + End ------------------------------------------------------------------ -/\s*a/B +/\s*a/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \s*+ - 5 a - 7 7 Ket - 10 End + Bra + \s*+ + a + Ket + End ------------------------------------------------------------------ -/\s*2/B +/\s*2/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \s*+ - 5 2 - 7 7 Ket - 10 End + Bra + \s*+ + 2 + Ket + End ------------------------------------------------------------------ -/\s*\d/B +/\s*\d/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \s*+ - 5 \d - 6 6 Ket - 9 End + Bra + \s*+ + \d + Ket + End ------------------------------------------------------------------ -/\s*\D/B +/\s*\D/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \s* - 5 \D - 6 6 Ket - 9 End + Bra + \s* + \D + Ket + End ------------------------------------------------------------------ -/\s*\s/B +/\s*\s/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \s* - 5 \s - 6 6 Ket - 9 End + Bra + \s* + \s + Ket + End ------------------------------------------------------------------ -/\s*\S/B +/\s*\S/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \s*+ - 5 \S - 6 6 Ket - 9 End + Bra + \s*+ + \S + Ket + End ------------------------------------------------------------------ -/\s*\w/B +/\s*\w/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \s*+ - 5 \w - 6 6 Ket - 9 End + Bra + \s*+ + \w + Ket + End ------------------------------------------------------------------ -/\s*\W/B +/\s*\W/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \s* - 5 \W - 6 6 Ket - 9 End + Bra + \s* + \W + Ket + End ------------------------------------------------------------------ -/\S*a/B +/\S*a/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \S* - 5 a - 7 7 Ket - 10 End + Bra + \S* + a + Ket + End ------------------------------------------------------------------ -/\S*2/B +/\S*2/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \S* - 5 2 - 7 7 Ket - 10 End + Bra + \S* + 2 + Ket + End ------------------------------------------------------------------ -/\S*\d/B +/\S*\d/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \S* - 5 \d - 6 6 Ket - 9 End + Bra + \S* + \d + Ket + End ------------------------------------------------------------------ -/\S*\D/B +/\S*\D/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \S* - 5 \D - 6 6 Ket - 9 End + Bra + \S* + \D + Ket + End ------------------------------------------------------------------ -/\S*\s/B +/\S*\s/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \S*+ - 5 \s - 6 6 Ket - 9 End + Bra + \S*+ + \s + Ket + End ------------------------------------------------------------------ -/\S*\S/B +/\S*\S/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \S* - 5 \S - 6 6 Ket - 9 End + Bra + \S* + \S + Ket + End ------------------------------------------------------------------ -/\S*\w/B +/\S*\w/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \S* - 5 \w - 6 6 Ket - 9 End + Bra + \S* + \w + Ket + End ------------------------------------------------------------------ -/\S*\W/B +/\S*\W/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \S* - 5 \W - 6 6 Ket - 9 End + Bra + \S* + \W + Ket + End ------------------------------------------------------------------ -/\w*a/B +/\w*a/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \w* - 5 a - 7 7 Ket - 10 End + Bra + \w* + a + Ket + End ------------------------------------------------------------------ -/\w*2/B +/\w*2/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \w* - 5 2 - 7 7 Ket - 10 End + Bra + \w* + 2 + Ket + End ------------------------------------------------------------------ -/\w*\d/B +/\w*\d/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \w* - 5 \d - 6 6 Ket - 9 End + Bra + \w* + \d + Ket + End ------------------------------------------------------------------ -/\w*\D/B +/\w*\D/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \w* - 5 \D - 6 6 Ket - 9 End + Bra + \w* + \D + Ket + End ------------------------------------------------------------------ -/\w*\s/B +/\w*\s/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \w*+ - 5 \s - 6 6 Ket - 9 End + Bra + \w*+ + \s + Ket + End ------------------------------------------------------------------ -/\w*\S/B +/\w*\S/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \w* - 5 \S - 6 6 Ket - 9 End + Bra + \w* + \S + Ket + End ------------------------------------------------------------------ -/\w*\w/B +/\w*\w/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \w* - 5 \w - 6 6 Ket - 9 End + Bra + \w* + \w + Ket + End ------------------------------------------------------------------ -/\w*\W/B +/\w*\W/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \w*+ - 5 \W - 6 6 Ket - 9 End + Bra + \w*+ + \W + Ket + End ------------------------------------------------------------------ -/\W*a/B +/\W*a/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \W*+ - 5 a - 7 7 Ket - 10 End + Bra + \W*+ + a + Ket + End ------------------------------------------------------------------ -/\W*2/B +/\W*2/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \W*+ - 5 2 - 7 7 Ket - 10 End + Bra + \W*+ + 2 + Ket + End ------------------------------------------------------------------ -/\W*\d/B +/\W*\d/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \W*+ - 5 \d - 6 6 Ket - 9 End + Bra + \W*+ + \d + Ket + End ------------------------------------------------------------------ -/\W*\D/B +/\W*\D/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \W* - 5 \D - 6 6 Ket - 9 End + Bra + \W* + \D + Ket + End ------------------------------------------------------------------ -/\W*\s/B +/\W*\s/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \W* - 5 \s - 6 6 Ket - 9 End + Bra + \W* + \s + Ket + End ------------------------------------------------------------------ -/\W*\S/B +/\W*\S/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \W* - 5 \S - 6 6 Ket - 9 End + Bra + \W* + \S + Ket + End ------------------------------------------------------------------ -/\W*\w/B +/\W*\w/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \W*+ - 5 \w - 6 6 Ket - 9 End + Bra + \W*+ + \w + Ket + End ------------------------------------------------------------------ -/\W*\W/B +/\W*\W/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \W* - 5 \W - 6 6 Ket - 9 End + Bra + \W* + \W + Ket + End ------------------------------------------------------------------ -/[^a]+a/B +/[^a]+a/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 [^a]++ - 5 a - 7 7 Ket - 10 End + Bra + [^a]++ + a + Ket + End ------------------------------------------------------------------ -/[^a]+a/Bi +/[^a]+a/BZi ------------------------------------------------------------------ - 0 7 Bra 0 - 3 [^A]++ - 5 NC a - 7 7 Ket - 10 End + Bra + [^A]++ + NC a + Ket + End ------------------------------------------------------------------ -/[^a]+A/Bi +/[^a]+A/BZi ------------------------------------------------------------------ - 0 7 Bra 0 - 3 [^A]++ - 5 NC A - 7 7 Ket - 10 End + Bra + [^A]++ + NC A + Ket + End ------------------------------------------------------------------ -/[^a]+b/B +/[^a]+b/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 [^a]+ - 5 b - 7 7 Ket - 10 End + Bra + [^a]+ + b + Ket + End ------------------------------------------------------------------ -/[^a]+\d/B +/[^a]+\d/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 [^a]+ - 5 \d - 6 6 Ket - 9 End + Bra + [^a]+ + \d + Ket + End ------------------------------------------------------------------ -/a*[^a]/B +/a*[^a]/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 a* - 5 [^a] - 7 7 Ket - 10 End + Bra + a* + [^a] + Ket + End ------------------------------------------------------------------ /(?P<abc>x)(?P<xyz>y)/I @@ -7463,9 +7463,9 @@ Failed: unrecognized character after (?P at offset 3 1: X ** Failers No match - aXaX + aXaX No match - aXbX + aXbX No match /^(?P>abc)(?<abcd>xxx)/ @@ -7481,7 +7481,7 @@ Failed: reference to non-existent subpattern at offset 8 yy 0: yy 1: y - yx + yx 0: yx 1: x @@ -7495,7 +7495,7 @@ Failed: reference to non-existent subpattern at offset 8 yy 0: yy 1: y - yx + yx 0: yx 1: x @@ -7504,13 +7504,13 @@ Failed: reference to non-existent subpattern at offset 8 0: bxay 1: ay 2: y - bxby + bxby 0: bx 1: bx 2: x ** Failers No match - axby + axby No match /^(((?P=abc)|X)(?<abc>x|y))+/ @@ -7531,7 +7531,7 @@ No match 3: y ** Failers No match - x + x No match /^(?1)(abc)/ @@ -7543,113 +7543,113 @@ No match Xaaa 0: Xaaa 1: a - Xaba + Xaba 0: Xa 1: a -/^[\E\Qa\E-\Qz\E]+/B +/^[\E\Qa\E-\Qz\E]+/BZ ------------------------------------------------------------------ - 0 38 Bra 0 - 3 ^ - 4 [a-z]+ - 38 38 Ket - 41 End + Bra + ^ + [a-z]+ + Ket + End ------------------------------------------------------------------ - -/^[a\Q]bc\E]/B + +/^[a\Q]bc\E]/BZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [\]a-c] - 37 37 Ket - 40 End + Bra + ^ + [\]a-c] + Ket + End ------------------------------------------------------------------ - -/^[a-\Q\E]/B ------------------------------------------------------------------- - 0 37 Bra 0 - 3 ^ - 4 [\-a] - 37 37 Ket - 40 End ------------------------------------------------------------------- - -/^(?P>abc)[()](?<abc>)/B ------------------------------------------------------------------- - 0 54 Bra 0 - 3 ^ - 4 6 Once - 7 46 Recurse - 10 6 Ket - 13 [()] - 46 5 Bra 1 - 51 5 Ket - 54 54 Ket - 57 End ------------------------------------------------------------------- - -/^((?(abc)y)[()](?P<abc>x))+/B ------------------------------------------------------------------- - 0 66 Bra 0 - 3 ^ - 4 59 Bra 1 - 9 8 Cond - 12 2 Cond ref - 15 y - 17 8 Ket - 20 [()] - 53 7 Bra 2 - 58 x - 60 7 Ket - 63 59 KetRmax - 66 66 Ket - 69 End + +/^[a-\Q\E]/BZ +------------------------------------------------------------------ + Bra + ^ + [\-a] + Ket + End +------------------------------------------------------------------ + +/^(?P>abc)[()](?<abc>)/BZ +------------------------------------------------------------------ + Bra + ^ + Once + Recurse + Ket + [()] + CBra 1 + Ket + Ket + End +------------------------------------------------------------------ + +/^((?(abc)y)[()](?P<abc>x))+/BZ +------------------------------------------------------------------ + Bra + ^ + CBra 1 + Cond + 2 Cond ref + y + Ket + [()] + CBra 2 + x + Ket + KetRmax + Ket + End ------------------------------------------------------------------ (xy)x 0: (xy)x 1: y)x 2: x - -/^(?P>abc)\Q()\E(?<abc>)/B ------------------------------------------------------------------- - 0 25 Bra 0 - 3 ^ - 4 6 Once - 7 17 Recurse - 10 6 Ket - 13 () - 17 5 Bra 1 - 22 5 Ket - 25 25 Ket - 28 End ------------------------------------------------------------------- - -/^(?P>abc)[a\Q(]\E(](?<abc>)/B ------------------------------------------------------------------- - 0 54 Bra 0 - 3 ^ - 4 6 Once - 7 46 Recurse - 10 6 Ket - 13 [(\]a] - 46 5 Bra 1 - 51 5 Ket - 54 54 Ket - 57 End + +/^(?P>abc)\Q()\E(?<abc>)/BZ +------------------------------------------------------------------ + Bra + ^ + Once + Recurse + Ket + () + CBra 1 + Ket + Ket + End +------------------------------------------------------------------ + +/^(?P>abc)[a\Q(]\E(](?<abc>)/BZ +------------------------------------------------------------------ + Bra + ^ + Once + Recurse + Ket + [(\]a] + CBra 1 + Ket + Ket + End ------------------------------------------------------------------ /^(?P>abc) # this is (a comment) - (?<abc>)/Bx + (?<abc>)/BZx ------------------------------------------------------------------ - 0 21 Bra 0 - 3 ^ - 4 6 Once - 7 13 Recurse - 10 6 Ket - 13 5 Bra 1 - 18 5 Ket - 21 21 Ket - 24 End + Bra + ^ + Once + Recurse + Ket + CBra 1 + Ket + Ket + End ------------------------------------------------------------------ /^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii @@ -7680,7 +7680,7 @@ No need char 2: <unset> 3: A man, a plan, a canal: Panama 4: A - Able was I ere I saw Elba. + Able was I ere I saw Elba. 0: Able was I ere I saw Elba. 1: <unset> 2: <unset> @@ -7688,9 +7688,9 @@ No need char 4: A *** Failers No match - The quick brown fox + The quick brown fox No match - + /(?=(\w+))\1:/I Capturing subpattern count = 1 Max back reference = 1 @@ -7724,9 +7724,9 @@ Need char = ':' 1: ab ** Failers No match - a:axyz + a:axyz No match - ab:abxyz + ab:abxyz No match /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J @@ -7738,7 +7738,7 @@ No match No match addd No match - adbb + adbb No match /(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J @@ -7752,20 +7752,20 @@ No match 2: d ** Failers No match - bddd + bddd No match /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x abd 0: abd 1: a - ce + ce 0: ce - + /(?(<bc))/ Failed: malformed number or name after (?( at offset 6 -/(?(''))/ +/(?(''))/ Failed: assertion expected after (?( at offset 4 /(?('R')stuff)/ @@ -7797,7 +7797,7 @@ Failed: reference to non-existent subpattern at offset 29 0: ab 1: <unset> 2: <unset> - + /(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT)) (?(DEFINE) (?<NAME_PAT>[a-z]+) @@ -7809,7 +7809,7 @@ Failed: reference to non-existent subpattern at offset 29 2: 33 3: <unset> 4: <unset> - + /^(?(DEFINE) abc | xyz ) /x Failed: DEFINE group contains more than one branch at offset 22 @@ -7831,17 +7831,23 @@ Matched, but too many substrings /^a.b/<lf> a\rb 0: a\x0db - a\nb\<cr> + a\nb\<cr> 0: a\x0ab + a\x85b\<anycrlf> + 0: a\x85b ** Failers No match a\nb No match a\nb\<any> No match - a\rb\<cr> + a\rb\<cr> No match - a\rb\<any> + a\rb\<any> +No match + a\x85b\<any> +No match + a\rb\<anycrlf> No match /^abc./mgx<any> @@ -7865,12 +7871,11 @@ No match 0: abc9 /a/<cr><any> -Failed: inconsistent NEWLINE options at offset 0 /a/<any><crlf> Failed: inconsistent NEWLINE options at offset 0 -/^a\Rb/ +/^a\Rb/<bsr_unicode> a\nb 0: a\x0ab a\rb @@ -7881,14 +7886,14 @@ Failed: inconsistent NEWLINE options at offset 0 0: a\x0bb a\x0cb 0: a\x0cb - a\x85b + a\x85b 0: a\x85b ** Failers No match - a\n\rb + a\n\rb No match -/^a\R*b/ +/^a\R*b/<bsr_unicode> ab 0: ab a\nb @@ -7901,14 +7906,14 @@ No match 0: a\x0bb a\x0cb 0: a\x0cb - a\x85b + a\x85b 0: a\x85b - a\n\rb + a\n\rb 0: a\x0a\x0db - a\n\r\x85\x0cb + a\n\r\x85\x0cb 0: a\x0a\x0d\x85\x0cb -/^a\R+b/ +/^a\R+b/<bsr_unicode> a\nb 0: a\x0ab a\rb @@ -7919,31 +7924,31 @@ No match 0: a\x0bb a\x0cb 0: a\x0cb - a\x85b + a\x85b 0: a\x85b - a\n\rb + a\n\rb 0: a\x0a\x0db - a\n\r\x85\x0cb + a\n\r\x85\x0cb 0: a\x0a\x0d\x85\x0cb ** Failers No match - ab + ab No match - -/^a\R{1,3}b/ + +/^a\R{1,3}b/<bsr_unicode> a\nb 0: a\x0ab a\n\rb 0: a\x0a\x0db a\n\r\x85b 0: a\x0a\x0d\x85b - a\r\n\r\nb + a\r\n\r\nb 0: a\x0d\x0a\x0d\x0ab - a\r\n\r\n\r\nb + a\r\n\r\n\r\nb 0: a\x0d\x0a\x0d\x0a\x0d\x0ab a\n\r\n\rb 0: a\x0a\x0d\x0a\x0db - a\n\n\r\nb + a\n\n\r\nb 0: a\x0a\x0a\x0d\x0ab ** Failers No match @@ -7952,12 +7957,12 @@ No match a\r No match -/^a[\R]b/ +/^a[\R]b/<bsr_unicode> aRb 0: aRb ** Failers No match - a\nb + a\nb No match /(?&abc)X(?<abc>P)/I @@ -7999,7 +8004,7 @@ Need char = 'P' No match 10.6 No match - 455.3.4.5 + 455.3.4.5 No match /\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/ @@ -8019,9 +8024,9 @@ No match No match 10.6 No match - 455.3.4.5 + 455.3.4.5 No match - + /(?:a(?&abc)b)*(?<abc>x)/ 123axbaxbaxbx456 0: axbaxbaxbx @@ -8029,7 +8034,7 @@ No match 123axbaxbaxb456 0: x 1: x - + /(?:a(?&abc)b){1,5}(?<abc>x)/ 123axbaxbaxbx456 0: axbaxbaxbx @@ -8066,19 +8071,19 @@ No match 2: b /^(a)\g-2/ -Failed: reference to non-existent subpattern at offset 4 +Failed: reference to non-existent subpattern at offset 7 /^(a)\g/ -Failed: \g is not followed by an (optionally braced) non-zero number at offset 4 +Failed: a numbered reference must not be zero at offset 5 /^(a)\g{0}/ -Failed: \g is not followed by an (optionally braced) non-zero number at offset 4 +Failed: a numbered reference must not be zero at offset 8 /^(a)\g{3/ -Failed: \g is not followed by an (optionally braced) non-zero number at offset 4 +Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8 /^(a)\g{4a}/ -Failed: \g is not followed by an (optionally braced) non-zero number at offset 4 +Failed: reference to non-existent subpattern at offset 9 /^a.b/<lf> a\rb @@ -8091,39 +8096,1539 @@ No match /.+foo/ afoo 0: afoo - ** Failers + ** Failers No match - \r\nfoo + \r\nfoo No match - \nfoo + \nfoo No match /.+foo/<crlf> afoo 0: afoo - \nfoo + \nfoo 0: \x0afoo - ** Failers + ** Failers No match - \r\nfoo + \r\nfoo No match /.+foo/<any> afoo 0: afoo - ** Failers + ** Failers No match - \nfoo + \nfoo No match - \r\nfoo + \r\nfoo No match /.+foo/s afoo 0: afoo - \r\nfoo + \r\nfoo 0: \x0d\x0afoo - \nfoo + \nfoo 0: \x0afoo + +/^$/mg<any> + abc\r\rxyz + 0: + abc\n\rxyz + 0: + ** Failers +No match + abc\r\nxyz +No match + +/(?m)^$/<any>g+ + abc\r\n\r\n + 0: + 0+ \x0d\x0a + +/(?m)^$|^\r\n/<any>g+ + abc\r\n\r\n + 0: + 0+ \x0d\x0a + 0: \x0d\x0a + 0+ + +/(?m)$/<any>g+ + abc\r\n\r\n + 0: + 0+ \x0d\x0a\x0d\x0a + 0: + 0+ \x0d\x0a + 0: + 0+ + +/abc.$/mgx<anycrlf> + abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9 + 0: abc1 + 0: abc4 + 0: abc5 + 0: abc9 + +/^X/m + XABC + 0: X + ** Failers +No match + XABC\B +No match + +/(ab|c)(?-1)/BZ +------------------------------------------------------------------ + Bra + CBra 1 + ab + Alt + c + Ket + Once + Recurse + Ket + Ket + End +------------------------------------------------------------------ + abc + 0: abc + 1: ab + +/xy(?+1)(abc)/BZ +------------------------------------------------------------------ + Bra + xy + Once + Recurse + Ket + CBra 1 + abc + Ket + Ket + End +------------------------------------------------------------------ + xyabcabc + 0: xyabcabc + 1: abc + ** Failers +No match + xyabc +No match + +/x(?-0)y/ +Failed: a numbered reference must not be zero at offset 5 + +/x(?-1)y/ +Failed: reference to non-existent subpattern at offset 5 + +/x(?+0)y/ +Failed: a numbered reference must not be zero at offset 5 + +/x(?+1)y/ +Failed: reference to non-existent subpattern at offset 5 + +/^(abc)?(?(-1)X|Y)/BZ +------------------------------------------------------------------ + Bra + ^ + Brazero + CBra 1 + abc + Ket + Cond + 1 Cond ref + X + Alt + Y + Ket + Ket + End +------------------------------------------------------------------ + abcX + 0: abcX + 1: abc + Y + 0: Y + ** Failers +No match + abcY +No match + +/^((?(+1)X|Y)(abc))+/BZ +------------------------------------------------------------------ + Bra + ^ + CBra 1 + Cond + 2 Cond ref + X + Alt + Y + Ket + CBra 2 + abc + Ket + KetRmax + Ket + End +------------------------------------------------------------------ + YabcXabc + 0: YabcXabc + 1: Xabc + 2: abc + YabcXabcXabc + 0: YabcXabcXabc + 1: Xabc + 2: abc + ** Failers +No match + XabcXabc +No match + +/(?(-1)a)/BZ +Failed: reference to non-existent subpattern at offset 6 + +/((?(-1)a))/BZ +------------------------------------------------------------------ + Bra + CBra 1 + Cond + 1 Cond ref + a + Ket + Ket + Ket + End +------------------------------------------------------------------ + +/((?(-2)a))/BZ +Failed: reference to non-existent subpattern at offset 7 + +/^(?(+1)X|Y)(.)/BZ +------------------------------------------------------------------ + Bra + ^ + Cond + 1 Cond ref + X + Alt + Y + Ket + CBra 1 + Any + Ket + Ket + End +------------------------------------------------------------------ + Y! + 0: Y! + 1: ! + +/(foo)\Kbar/ + foobar + 0: bar + 1: foo + +/(foo)(\Kbar|baz)/ + foobar + 0: bar + 1: foo + 2: bar + foobaz + 0: foobaz + 1: foo + 2: baz + +/(foo\Kbar)baz/ + foobarbaz + 0: barbaz + 1: foobar + +/(?<A>tom|bon)-\k{A}/ + tom-tom + 0: tom-tom + 1: tom + bon-bon + 0: bon-bon + 1: bon + ** Failers +No match + tom-bon +No match + +/(?<A>tom|bon)-\g{A}/ + tom-tom + 0: tom-tom + 1: tom + bon-bon + 0: bon-bon + 1: bon + +/\g{A/ +Failed: syntax error in subpattern name (missing terminator) at offset 4 + +/(?|(abc)|(xyz))/BZ +------------------------------------------------------------------ + Bra + Bra + CBra 1 + abc + Ket + Alt + CBra 1 + xyz + Ket + Ket + Ket + End +------------------------------------------------------------------ + >abc< + 0: abc + 1: abc + >xyz< + 0: xyz + 1: xyz + +/(x)(?|(abc)|(xyz))(x)/BZ +------------------------------------------------------------------ + Bra + CBra 1 + x + Ket + Bra + CBra 2 + abc + Ket + Alt + CBra 2 + xyz + Ket + Ket + CBra 3 + x + Ket + Ket + End +------------------------------------------------------------------ + xabcx + 0: xabcx + 1: x + 2: abc + 3: x + xxyzx + 0: xxyzx + 1: x + 2: xyz + 3: x + +/(x)(?|(abc)(pqr)|(xyz))(x)/BZ +------------------------------------------------------------------ + Bra + CBra 1 + x + Ket + Bra + CBra 2 + abc + Ket + CBra 3 + pqr + Ket + Alt + CBra 2 + xyz + Ket + Ket + CBra 4 + x + Ket + Ket + End +------------------------------------------------------------------ + xabcpqrx + 0: xabcpqrx + 1: x + 2: abc + 3: pqr + 4: x + xxyzx + 0: xxyzx + 1: x + 2: xyz + 3: <unset> + 4: x + +/(?|(abc)|(xyz))\1/ + abcabc + 0: abcabc + 1: abc + xyzxyz + 0: xyzxyz + 1: xyz + ** Failers +No match + abcxyz +No match + xyzabc +No match + +/(?|(abc)|(xyz))(?1)/ + abcabc + 0: abcabc + 1: abc + xyzabc + 0: xyzabc + 1: xyz + ** Failers +No match + xyzxyz +No match + +/\H\h\V\v/ + X X\x0a + 0: X X\x0a + X\x09X\x0b + 0: X\x09X\x0b + ** Failers +No match + \xa0 X\x0a +No match + +/\H*\h+\V?\v{3,4}/ + \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a + 0: \x09 \xa0X\x0a\x0b\x0c\x0d + \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a + 0: \x09 \xa0\x0a\x0b\x0c\x0d + \x09\x20\xa0\x0a\x0b\x0c + 0: \x09 \xa0\x0a\x0b\x0c + ** Failers +No match + \x09\x20\xa0\x0a\x0b +No match + +/\H{3,4}/ + XY ABCDE + 0: ABCD + XY PQR ST + 0: PQR + +/.\h{3,4}./ + XY AB PQRS + 0: B P + +/\h*X\h?\H+Y\H?Z/ + >XNNNYZ + 0: XNNNYZ + > X NYQZ + 0: X NYQZ + ** Failers +No match + >XYZ +No match + > X NY Z +No match + +/\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/ + >XY\x0aZ\x0aA\x0bNN\x0c + 0: XY\x0aZ\x0aA\x0bNN\x0c + >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c + 0: \x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c + +/[\h]/BZ +------------------------------------------------------------------ + Bra + [\x09 \xa0] + Ket + End +------------------------------------------------------------------ + >\x09< + 0: \x09 + +/[\h]+/BZ +------------------------------------------------------------------ + Bra + [\x09 \xa0]+ + Ket + End +------------------------------------------------------------------ + >\x09\x20\xa0< + 0: \x09 \xa0 + +/[\v]/BZ +------------------------------------------------------------------ + Bra + [\x0a-\x0d\x85] + Ket + End +------------------------------------------------------------------ + +/[\H]/BZ +------------------------------------------------------------------ + Bra + [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff] + Ket + End +------------------------------------------------------------------ + +/[^\h]/BZ +------------------------------------------------------------------ + Bra + [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff] (neg) + Ket + End +------------------------------------------------------------------ + +/[\V]/BZ +------------------------------------------------------------------ + Bra + [\x00-\x09\x0e-\x84\x86-\xff] + Ket + End +------------------------------------------------------------------ + +/[\x0a\V]/BZ +------------------------------------------------------------------ + Bra + [\x00-\x0a\x0e-\x84\x86-\xff] + Ket + End +------------------------------------------------------------------ + +/\H++X/BZ +------------------------------------------------------------------ + Bra + \H++ + X + Ket + End +------------------------------------------------------------------ + ** Failers +No match + XXXX +No match + +/\H+\hY/BZ +------------------------------------------------------------------ + Bra + \H++ + \h + Y + Ket + End +------------------------------------------------------------------ + XXXX Y + 0: XXXX Y + +/\H+ Y/BZ +------------------------------------------------------------------ + Bra + \H++ + Y + Ket + End +------------------------------------------------------------------ + +/\h+A/BZ +------------------------------------------------------------------ + Bra + \h++ + A + Ket + End +------------------------------------------------------------------ + +/\v*B/BZ +------------------------------------------------------------------ + Bra + \v*+ + B + Ket + End +------------------------------------------------------------------ + +/\V+\x0a/BZ +------------------------------------------------------------------ + Bra + \V++ + \x0a + Ket + End +------------------------------------------------------------------ + +/A+\h/BZ +------------------------------------------------------------------ + Bra + A++ + \h + Ket + End +------------------------------------------------------------------ + +/ *\H/BZ +------------------------------------------------------------------ + Bra + *+ + \H + Ket + End +------------------------------------------------------------------ + +/A*\v/BZ +------------------------------------------------------------------ + Bra + A*+ + \v + Ket + End +------------------------------------------------------------------ + +/\x0b*\V/BZ +------------------------------------------------------------------ + Bra + \x0b*+ + \V + Ket + End +------------------------------------------------------------------ + +/\d+\h/BZ +------------------------------------------------------------------ + Bra + \d++ + \h + Ket + End +------------------------------------------------------------------ + +/\d*\v/BZ +------------------------------------------------------------------ + Bra + \d*+ + \v + Ket + End +------------------------------------------------------------------ + +/S+\h\S+\v/BZ +------------------------------------------------------------------ + Bra + S++ + \h + \S++ + \v + Ket + End +------------------------------------------------------------------ + +/\w{3,}\h\w+\v/BZ +------------------------------------------------------------------ + Bra + \w{3} + \w*+ + \h + \w++ + \v + Ket + End +------------------------------------------------------------------ + +/\h+\d\h+\w\h+\S\h+\H/BZ +------------------------------------------------------------------ + Bra + \h++ + \d + \h++ + \w + \h++ + \S + \h++ + \H + Ket + End +------------------------------------------------------------------ + +/\v+\d\v+\w\v+\S\v+\V/BZ +------------------------------------------------------------------ + Bra + \v++ + \d + \v++ + \w + \v+ + \S + \v++ + \V + Ket + End +------------------------------------------------------------------ + +/\H+\h\H+\d/BZ +------------------------------------------------------------------ + Bra + \H++ + \h + \H+ + \d + Ket + End +------------------------------------------------------------------ + +/\V+\v\V+\w/BZ +------------------------------------------------------------------ + Bra + \V++ + \v + \V+ + \w + Ket + End +------------------------------------------------------------------ + +/\( (?: [^()]* | (?R) )* \)/x +(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0) + 0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0) + +/[\E]AAA/ +Failed: missing terminating ] for character class at offset 7 + +/[\Q\E]AAA/ +Failed: missing terminating ] for character class at offset 9 + +/[^\E]AAA/ +Failed: missing terminating ] for character class at offset 8 + +/[^\Q\E]AAA/ +Failed: missing terminating ] for character class at offset 10 + +/[\E^]AAA/ +Failed: missing terminating ] for character class at offset 8 + +/[\Q\E^]AAA/ +Failed: missing terminating ] for character class at offset 10 + +/A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ +------------------------------------------------------------------ + Bra + A + *PRUNE + B + *SKIP + C + *THEN + D + *COMMIT + E + *FAIL + F + *FAIL + G + *FAIL + H + *ACCEPT + I + Ket + End +------------------------------------------------------------------ + +/^a+(*FAIL)/ + aaaaaa +No match + +/a+b?c+(*FAIL)/ + aaabccc +No match + +/a+b?(*PRUNE)c+(*FAIL)/ + aaabccc +No match + +/a+b?(*COMMIT)c+(*FAIL)/ + aaabccc +No match + +/a+b?(*SKIP)c+(*FAIL)/ + aaabcccaaabccc +No match + +/^(?:aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/ + aaaxxxxxx + 0: aaaxxxxxx + aaa++++++ + 0: aaa + bbbxxxxx + 0: bbbxxxxx + bbb+++++ + 0: bbb + cccxxxx + 0: cccxxxx + ccc++++ + 0: ccc + dddddddd + 0: ddd + +/^(aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/ + aaaxxxxxx + 0: aaaxxxxxx + 1: aaaxxxxxx + aaa++++++ + 0: aaa + 1: aaa + bbbxxxxx + 0: bbbxxxxx + 1: bbbxxxxx + bbb+++++ + 0: bbb + 1: bbb + cccxxxx + 0: cccxxxx + 1: cccxxxx + ccc++++ + 0: ccc + 1: ccc + dddddddd + 0: ddd + 1: ddd + +/a+b?(*THEN)c+(*FAIL)/ + aaabccc +No match + +/(A (A|B(*ACCEPT)|C) D)(E)/x + ABX + 0: AB + AADE + 0: AADE + 1: AAD + 2: A + 3: E + ACDE + 0: ACDE + 1: ACD + 2: C + 3: E + ** Failers +No match + AD +No match + +/^a+(*FAIL)/C + aaaaaa +--->aaaaaa + +0 ^ ^ + +1 ^ a+ + +3 ^ ^ (*FAIL) + +3 ^ ^ (*FAIL) + +3 ^ ^ (*FAIL) + +3 ^ ^ (*FAIL) + +3 ^ ^ (*FAIL) + +3 ^^ (*FAIL) +No match + +/a+b?c+(*FAIL)/C + aaabccc +--->aaabccc + +0 ^ a+ + +2 ^ ^ b? + +4 ^ ^ c+ + +6 ^ ^ (*FAIL) + +6 ^ ^ (*FAIL) + +6 ^ ^ (*FAIL) + +4 ^ ^ c+ + +2 ^ ^ b? + +4 ^ ^ c+ + +2 ^^ b? + +4 ^^ c+ + +0 ^ a+ + +2 ^ ^ b? + +4 ^ ^ c+ + +6 ^ ^ (*FAIL) + +6 ^ ^ (*FAIL) + +6 ^ ^ (*FAIL) + +4 ^ ^ c+ + +2 ^^ b? + +4 ^^ c+ + +0 ^ a+ + +2 ^^ b? + +4 ^ ^ c+ + +6 ^ ^ (*FAIL) + +6 ^ ^ (*FAIL) + +6 ^ ^ (*FAIL) + +4 ^^ c+ +No match + +/a+b?(*PRUNE)c+(*FAIL)/C + aaabccc +--->aaabccc + +0 ^ a+ + +2 ^ ^ b? + +4 ^ ^ (*PRUNE) ++12 ^ ^ c+ ++14 ^ ^ (*FAIL) ++14 ^ ^ (*FAIL) ++14 ^ ^ (*FAIL) + +0 ^ a+ + +2 ^ ^ b? + +4 ^ ^ (*PRUNE) ++12 ^ ^ c+ ++14 ^ ^ (*FAIL) ++14 ^ ^ (*FAIL) ++14 ^ ^ (*FAIL) + +0 ^ a+ + +2 ^^ b? + +4 ^ ^ (*PRUNE) ++12 ^ ^ c+ ++14 ^ ^ (*FAIL) ++14 ^ ^ (*FAIL) ++14 ^ ^ (*FAIL) +No match + +/a+b?(*COMMIT)c+(*FAIL)/C + aaabccc +--->aaabccc + +0 ^ a+ + +2 ^ ^ b? + +4 ^ ^ (*COMMIT) ++13 ^ ^ c+ ++15 ^ ^ (*FAIL) ++15 ^ ^ (*FAIL) ++15 ^ ^ (*FAIL) +No match + +/a+b?(*SKIP)c+(*FAIL)/C + aaabcccaaabccc +--->aaabcccaaabccc + +0 ^ a+ + +2 ^ ^ b? + +4 ^ ^ (*SKIP) ++11 ^ ^ c+ ++13 ^ ^ (*FAIL) ++13 ^ ^ (*FAIL) ++13 ^ ^ (*FAIL) + +0 ^ a+ + +2 ^ ^ b? + +4 ^ ^ (*SKIP) ++11 ^ ^ c+ ++13 ^ ^ (*FAIL) ++13 ^ ^ (*FAIL) ++13 ^ ^ (*FAIL) +No match + +/a+b?(*THEN)c+(*FAIL)/C + aaabccc +--->aaabccc + +0 ^ a+ + +2 ^ ^ b? + +4 ^ ^ (*THEN) ++11 ^ ^ c+ ++13 ^ ^ (*FAIL) ++13 ^ ^ (*FAIL) ++13 ^ ^ (*FAIL) + +0 ^ a+ + +2 ^ ^ b? + +4 ^ ^ (*THEN) ++11 ^ ^ c+ ++13 ^ ^ (*FAIL) ++13 ^ ^ (*FAIL) ++13 ^ ^ (*FAIL) + +0 ^ a+ + +2 ^^ b? + +4 ^ ^ (*THEN) ++11 ^ ^ c+ ++13 ^ ^ (*FAIL) ++13 ^ ^ (*FAIL) ++13 ^ ^ (*FAIL) +No match + +/a(*PRUNE:XXX)b/ +Failed: (*VERB) with an argument is not supported at offset 8 + +/a(*MARK)b/ +Failed: (*VERB) not recognized at offset 7 + +/(?i:A{1,}\6666666666)/ +Failed: number is too big at offset 19 + +/\g6666666666/ +Failed: number is too big at offset 11 + +/[\g6666666666]/ +Failed: number is too big at offset 12 + +/(?1)\c[/ +Failed: reference to non-existent subpattern at offset 3 + +/.+A/<crlf> + \r\nA +No match + +/\nA/<crlf> + \r\nA + 0: \x0aA + +/[\r\n]A/<crlf> + \r\nA + 0: \x0aA + +/(\r|\n)A/<crlf> + \r\nA + 0: \x0aA + 1: \x0a + +/a(*CR)b/ +Failed: (*VERB) not recognized at offset 5 + +/(*CR)a.b/ + a\nb + 0: a\x0ab + ** Failers +No match + a\rb +No match + +/(*CR)a.b/<lf> + a\nb + 0: a\x0ab + ** Failers +No match + a\rb +No match + +/(*LF)a.b/<CRLF> + a\rb + 0: a\x0db + ** Failers +No match + a\nb +No match + +/(*CRLF)a.b/ + a\rb + 0: a\x0db + a\nb + 0: a\x0ab + ** Failers +No match + a\r\nb +No match + +/(*ANYCRLF)a.b/<CR> + ** Failers +No match + a\rb +No match + a\nb +No match + a\r\nb +No match + +/(*ANY)a.b/<cr> + ** Failers +No match + a\rb +No match + a\nb +No match + a\r\nb +No match + a\x85b +No match + +/a\Rb/I<bsr_anycrlf> +Capturing subpattern count = 0 +Options: bsr_anycrlf +First char = 'a' +Need char = 'b' + a\rb + 0: a\x0db + a\nb + 0: a\x0ab + a\r\nb + 0: a\x0d\x0ab + ** Failers +No match + a\x85b +No match + a\x0bb +No match + +/a\Rb/I<bsr_unicode> +Capturing subpattern count = 0 +Options: bsr_unicode +First char = 'a' +Need char = 'b' + a\rb + 0: a\x0db + a\nb + 0: a\x0ab + a\r\nb + 0: a\x0d\x0ab + a\x85b + 0: a\x85b + a\x0bb + 0: a\x0bb + ** Failers +No match + a\x85b\<bsr_anycrlf> +No match + a\x0bb\<bsr_anycrlf> +No match + +/a\R?b/I<bsr_anycrlf> +Capturing subpattern count = 0 +Options: bsr_anycrlf +First char = 'a' +Need char = 'b' + a\rb + 0: a\x0db + a\nb + 0: a\x0ab + a\r\nb + 0: a\x0d\x0ab + ** Failers +No match + a\x85b +No match + a\x0bb +No match + +/a\R?b/I<bsr_unicode> +Capturing subpattern count = 0 +Options: bsr_unicode +First char = 'a' +Need char = 'b' + a\rb + 0: a\x0db + a\nb + 0: a\x0ab + a\r\nb + 0: a\x0d\x0ab + a\x85b + 0: a\x85b + a\x0bb + 0: a\x0bb + ** Failers +No match + a\x85b\<bsr_anycrlf> +No match + a\x0bb\<bsr_anycrlf> +No match + +/a\R{2,4}b/I<bsr_anycrlf> +Capturing subpattern count = 0 +Partial matching not supported +Options: bsr_anycrlf +First char = 'a' +Need char = 'b' + a\r\n\nb + 0: a\x0d\x0a\x0ab + a\n\r\rb + 0: a\x0a\x0d\x0db + a\r\n\r\n\r\n\r\nb + 0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab + ** Failers +No match + a\x85\85b +No match + a\x0b\0bb +No match + +/a\R{2,4}b/I<bsr_unicode> +Capturing subpattern count = 0 +Partial matching not supported +Options: bsr_unicode +First char = 'a' +Need char = 'b' + a\r\rb + 0: a\x0d\x0db + a\n\n\nb + 0: a\x0a\x0a\x0ab + a\r\n\n\r\rb + 0: a\x0d\x0a\x0a\x0d\x0db + a\x85\85b +No match + a\x0b\0bb +No match + ** Failers +No match + a\r\r\r\r\rb +No match + a\x85\85b\<bsr_anycrlf> +No match + a\x0b\0bb\<bsr_anycrlf> +No match + +/(*BSR_ANYCRLF)a\Rb/I +Capturing subpattern count = 0 +Options: bsr_anycrlf +First char = 'a' +Need char = 'b' + a\nb + 0: a\x0ab + a\rb + 0: a\x0db + +/(*BSR_UNICODE)a\Rb/I +Capturing subpattern count = 0 +Options: bsr_unicode +First char = 'a' +Need char = 'b' + a\x85b + 0: a\x85b + +/(*BSR_ANYCRLF)(*CRLF)a\Rb/I +Capturing subpattern count = 0 +Options: bsr_anycrlf +Forced newline sequence: CRLF +First char = 'a' +Need char = 'b' + a\nb + 0: a\x0ab + a\rb + 0: a\x0db + +/(*CRLF)(*BSR_UNICODE)a\Rb/I +Capturing subpattern count = 0 +Options: bsr_unicode +Forced newline sequence: CRLF +First char = 'a' +Need char = 'b' + a\x85b + 0: a\x85b + +/(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I +Capturing subpattern count = 0 +Options: bsr_anycrlf +Forced newline sequence: CR +First char = 'a' +Need char = 'b' + +/(?<a>)(?&)/ +Failed: subpattern name expected at offset 9 + +/(?<abc>)(?&a)/ +Failed: reference to non-existent subpattern at offset 12 + +/(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/ +Failed: reference to non-existent subpattern at offset 32 + +/(?+-a)/ +Failed: digit expected after (?+ at offset 3 + +/(?-+a)/ +Failed: unrecognized character after (? or (?- at offset 3 + +/(?(-1))/ +Failed: reference to non-existent subpattern at offset 6 + +/(?(+10))/ +Failed: reference to non-existent subpattern at offset 7 + +/(?(10))/ +Failed: reference to non-existent subpattern at offset 6 + +/(?(+2))()()/ + +/(?(2))()()/ + +/\k''/ +Failed: subpattern name expected at offset 3 + +/\k<>/ +Failed: subpattern name expected at offset 3 + +/\k{}/ +Failed: subpattern name expected at offset 3 + +/(?P=)/ +Failed: subpattern name expected at offset 4 + +/(?P>)/ +Failed: subpattern name expected at offset 4 + +/(?!\w)(?R)/ +Failed: recursive call could loop indefinitely at offset 9 + +/(?=\w)(?R)/ +Failed: recursive call could loop indefinitely at offset 9 + +/(?<!\w)(?R)/ +Failed: recursive call could loop indefinitely at offset 10 + +/(?<=\w)(?R)/ +Failed: recursive call could loop indefinitely at offset 10 + +/[[:foo:]]/ +Failed: unknown POSIX class name at offset 3 + +/[[:1234:]]/ +Failed: unknown POSIX class name at offset 3 + +/[[:f\oo:]]/ +Failed: unknown POSIX class name at offset 3 + +/[[: :]]/ +Failed: unknown POSIX class name at offset 3 + +/[[:...:]]/ +Failed: unknown POSIX class name at offset 3 + +/[[:l\ower:]]/ +Failed: unknown POSIX class name at offset 3 + +/[[:abc\:]]/ +Failed: unknown POSIX class name at offset 3 + +/[abc[:x\]pqr:]]/ +Failed: unknown POSIX class name at offset 6 + +/[[:a\dz:]]/ +Failed: unknown POSIX class name at offset 3 + +/^(?<name>a|b\g<name>c)/ + aaaa + 0: a + 1: a + bacxxx + 0: bac + 1: bac + bbaccxxx + 0: bbacc + 1: bbacc + bbbacccxx + 0: bbbaccc + 1: bbbaccc + +/^(?<name>a|b\g'name'c)/ + aaaa + 0: a + 1: a + bacxxx + 0: bac + 1: bac + bbaccxxx + 0: bbacc + 1: bbacc + bbbacccxx + 0: bbbaccc + 1: bbbaccc + +/^(a|b\g<1>c)/ + aaaa + 0: a + 1: a + bacxxx + 0: bac + 1: bac + bbaccxxx + 0: bbacc + 1: bbacc + bbbacccxx + 0: bbbaccc + 1: bbbaccc + +/^(a|b\g'1'c)/ + aaaa + 0: a + 1: a + bacxxx + 0: bac + 1: bac + bbaccxxx + 0: bbacc + 1: bbacc + bbbacccxx + 0: bbbaccc + 1: bbbaccc + +/^(a|b\g'-1'c)/ + aaaa + 0: a + 1: a + bacxxx + 0: bac + 1: bac + bbaccxxx + 0: bbacc + 1: bbacc + bbbacccxx + 0: bbbaccc + 1: bbbaccc + +/(^(a|b\g<-1>c))/ + aaaa + 0: a + 1: a + 2: a + bacxxx + 0: bac + 1: bac + 2: bac + bbaccxxx + 0: bbacc + 1: bbacc + 2: bbacc + bbbacccxx + 0: bbbaccc + 1: bbbaccc + 2: bbbaccc + +/(^(a|b\g<-1'c))/ +Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15 + +/(^(a|b\g{-1}))/ + bacxxx +No match + +/(?-i:\g<name>)(?i:(?<name>a))/ + XaaX + 0: aa + 1: a + XAAX + 0: AA + 1: A + +/(?i:\g<name>)(?-i:(?<name>a))/ + XaaX + 0: aa + 1: a + ** Failers +No match + XAAX +No match + +/(?-i:\g<+1>)(?i:(a))/ + XaaX + 0: aa + 1: a + XAAX + 0: AA + 1: A + +/(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/ + +/(?<n>a|b|c)\g<n>*/ + abc + 0: abc + 1: a + accccbbb + 0: accccbbb + 1: a + +/^(?+1)(?<a>x|y){0}z/ + xzxx + 0: xz + 1: <unset> + yzyy + 0: yz + 1: <unset> + ** Failers +No match + xxz +No match + +/(\3)(\1)(a)/ + cat +No match + +/(\3)(\1)(a)/<JS> + cat + 0: a + 1: + 2: + 3: a + +/TA]/ + The ACTA] comes + 0: TA] + +/TA]/<JS> +Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2 + +/(?2)[]a()b](abc)/ +Failed: reference to non-existent subpattern at offset 3 + +/(?2)[^]a()b](abc)/ +Failed: reference to non-existent subpattern at offset 3 + +/(?1)[]a()b](abc)/ + abcbabc + 0: abcbabc + 1: abc + ** Failers +No match + abcXabc +No match + +/(?1)[^]a()b](abc)/ + abcXabc + 0: abcXabc + 1: abc + ** Failers +No match + abcbabc +No match + +/(?2)[]a()b](abc)(xyz)/ + xyzbabcxyz + 0: xyzbabcxyz + 1: abc + 2: xyz + +/(?&N)[]a(?<N>)](?<M>abc)/ +Failed: reference to non-existent subpattern at offset 4 + +/(?&N)[]a(?<N>)](abc)/ +Failed: reference to non-existent subpattern at offset 4 + +/a[]b/ +Failed: missing terminating ] for character class at offset 4 + +/a[^]b/ +Failed: missing terminating ] for character class at offset 5 + +/a[]b/<JS> + ** Failers +No match + ab +No match + +/a[]+b/<JS> + ** Failers +No match + ab +No match + +/a[]*+b/<JS> + ** Failers +No match + ab +No match + +/a[^]b/<JS> + aXb + 0: aXb + a\nb + 0: a\x0ab + ** Failers +No match + ab +No match + +/a[^]+b/<JS> + aXb + 0: aXb + a\nX\nXb + 0: a\x0aX\x0aXb + ** Failers +No match + ab +No match + +/a(?!)+b/ +Failed: nothing to repeat at offset 5 + +/a(*FAIL)+b/ +Failed: nothing to repeat at offset 8 / End of testinput2 / |