diff options
Diffstat (limited to 'ext/pcre/pcrelib/testdata')
| -rw-r--r-- | ext/pcre/pcrelib/testdata/grepinputx | 7 | ||||
| -rw-r--r-- | ext/pcre/pcrelib/testdata/grepoutput | 56 | ||||
| -rw-r--r-- | ext/pcre/pcrelib/testdata/grepoutputN | 22 | ||||
| -rw-r--r-- | ext/pcre/pcrelib/testdata/testinput10 | 104 | ||||
| -rw-r--r-- | ext/pcre/pcrelib/testdata/testinput2 | 972 | ||||
| -rw-r--r-- | ext/pcre/pcrelib/testdata/testinput3 | 2 | ||||
| -rw-r--r-- | ext/pcre/pcrelib/testdata/testinput5 | 148 | ||||
| -rw-r--r-- | ext/pcre/pcrelib/testdata/testinput6 | 38 | ||||
| -rw-r--r-- | ext/pcre/pcrelib/testdata/testinput7 | 20 | ||||
| -rw-r--r-- | ext/pcre/pcrelib/testdata/testinput9 | 6 | ||||
| -rw-r--r-- | ext/pcre/pcrelib/testdata/testoutput10 | 563 | ||||
| -rw-r--r-- | ext/pcre/pcrelib/testdata/testoutput2 | 3321 | ||||
| -rw-r--r-- | ext/pcre/pcrelib/testdata/testoutput3 | 14 | ||||
| -rw-r--r-- | ext/pcre/pcrelib/testdata/testoutput5 | 973 | ||||
| -rw-r--r-- | ext/pcre/pcrelib/testdata/testoutput6 | 156 | ||||
| -rw-r--r-- | ext/pcre/pcrelib/testdata/testoutput7 | 38 | ||||
| -rw-r--r-- | ext/pcre/pcrelib/testdata/testoutput9 | 8 |
17 files changed, 3617 insertions, 2831 deletions
diff --git a/ext/pcre/pcrelib/testdata/grepinputx b/ext/pcre/pcrelib/testdata/grepinputx index 4c02567552..aebba02770 100644 --- a/ext/pcre/pcrelib/testdata/grepinputx +++ b/ext/pcre/pcrelib/testdata/grepinputx @@ -39,11 +39,4 @@ eighteen nineteen twenty -Here follows some CR/LF/CRLF test data. - -abc -def -ghi -jkl - This is the last line of this file. diff --git a/ext/pcre/pcrelib/testdata/grepoutput b/ext/pcre/pcrelib/testdata/grepoutput index 804c33fc3f..2e8cdc7d69 100644 --- a/ext/pcre/pcrelib/testdata/grepoutput +++ b/ext/pcre/pcrelib/testdata/grepoutput @@ -75,14 +75,7 @@ RC=1 39:nineteen 40:twenty 41: -42:Here follows some CR/LF/CRLF test data. -43: -44:abc -def -45:ghi -46:jkl -47: -48:This is the last line of this file. +42:This is the last line of this file. ---------------------------- Test 12 ----------------------------- Pattern ---------------------------- Test 13 ----------------------------- @@ -164,8 +157,7 @@ eighteen nineteen twenty -Here follows some CR/LF/CRLF test data. - +This is the last line of this file. ---------------------------- Test 25 ----------------------------- 15- 16-complete pair @@ -215,8 +207,7 @@ eighteen nineteen twenty -Here follows some CR/LF/CRLF test data. - +This is the last line of this file. ---------------------------- Test 27 ----------------------------- four five @@ -236,10 +227,7 @@ eighteen nineteen twenty -Here follows some CR/LF/CRLF test data. - -abc -def +This is the last line of this file. ---------------------------- Test 28 ----------------------------- 14-of lines all by themselves. 15- @@ -291,12 +279,7 @@ eighteen nineteen twenty -Here follows some CR/LF/CRLF test data. - -abc -def -ghi -jkl +This is the last line of this file. ---------------------------- Test 30 ----------------------------- ./testdata/grepinput-4-features should be added at the end, because some of the tests involve the ./testdata/grepinput-5-output of line numbers, and we don't want these to change. @@ -345,8 +328,8 @@ RC=2 ./testdata/grepinputx RC=0 ---------------------------- Test 36 ----------------------------- -./testdata/grepinputx ./testdata/grepinput8 +./testdata/grepinputx RC=0 ---------------------------- Test 37 ----------------------------- aaaaa0 @@ -400,30 +383,3 @@ AB.VE AB.VE the turtle PUT NEW DATA ABOVE THIS LINE. ---------------------------- Test 49 ------------------------------ -abc -def -ghi -jkl ----------------------------- Test 50 ------------------------------ -def ----------------------------- Test 51 ------------------------------ -ghi -jkl - -This is the last line of this file. ----------------------------- Test 52 ------------------------------ -def -ghi -jkl - -This is the last line of this file. ----------------------------- Test 53 ------------------------------ -ghi -jkl - -This is the last line of this file. ----------------------------- Test 54 ------------------------------ -44:abc -45:def -46:ghi -47:jkl diff --git a/ext/pcre/pcrelib/testdata/grepoutputN b/ext/pcre/pcrelib/testdata/grepoutputN new file mode 100644 index 0000000000..170a4321ee --- /dev/null +++ b/ext/pcre/pcrelib/testdata/grepoutputN @@ -0,0 +1,22 @@ +---------------------------- Test N1 ------------------------------ +1:abc +2:def +---------------------------- Test N2 ------------------------------ +1:abc +def +2:ghi +jkl---------------------------- Test N3 ------------------------------ +2:def +3: +ghi +jkl---------------------------- Test N4 ------------------------------ +2:ghi +jkl---------------------------- Test N5 ------------------------------ +1:abc +2:def +3:ghi +4:jkl---------------------------- Test N6 ------------------------------ +1:abc +2:def +3:ghi +4:jkl
\ No newline at end of file diff --git a/ext/pcre/pcrelib/testdata/testinput10 b/ext/pcre/pcrelib/testdata/testinput10 new file mode 100644 index 0000000000..369af4a3d3 --- /dev/null +++ b/ext/pcre/pcrelib/testdata/testinput10 @@ -0,0 +1,104 @@ +/-- These are a few representative patterns whose lengths and offsets are to be +shown when the link size is 2. This is just a doublecheck test to ensure the +sizes don't go horribly wrong when something is changed. The pattern contents +are all themselves checked in other tests. --/ + +/((?i)b)/BM + +/(?s)(.*X|^B)/BM + +/(?s:.*X|^B)/BM + +/^[[:alnum:]]/BM + +/#/IxMD + +/a#/IxMD + +/x?+/BM + +/x++/BM + +/x{1,3}+/BM + +/(x)*+/BM + +/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/BM + +|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|BM + +|\$\<\.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|BM + +/(a(?1)b)/BM + +/(a(?1)+b)/BM + +/a(?P<name1>b|c)d(?P<longername2>e)/BM + +/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/BM + +/(?P<a>a)...(?P=a)bbb(?P>a)d/BM + +/abc(?C255)de(?C)f/BM + +/abcde/CBM + +/\x{100}/8BM + +/\x{1000}/8BM + +/\x{10000}/8BM + +/\x{100000}/8BM + +/\x{1000000}/8BM + +/\x{4000000}/8BM + +/\x{7fffFFFF}/8BM + +/[\x{ff}]/8BM + +/[\x{100}]/8BM + +/\x80/8BM + +/\xff/8BM + +/\x{0041}\x{2262}\x{0391}\x{002e}/D8M + +/\x{D55c}\x{ad6d}\x{C5B4}/D8M + +/\x{65e5}\x{672c}\x{8a9e}/D8M + +/[\x{100}]/8BM + +/[Z\x{100}]/8BM + +/^[\x{100}\E-\Q\E\x{150}]/B8M + +/^[\QĀ\E-\QŐ\E]/B8M + +/^[\QĀ\E-\QŐ\E/B8M + +/[\p{L}]/BM + +/[\p{^L}]/BM + +/[\P{L}]/BM + +/[\P{^L}]/BM + +/[abc\p{L}\x{0660}]/8BM + +/[\p{Nd}]/8BM + +/[\p{Nd}+-]+/8BM + +/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8iBM + +/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8BM + +/[\x{105}-\x{109}]/8iBM + +/ End of testinput10 / diff --git a/ext/pcre/pcrelib/testdata/testinput2 b/ext/pcre/pcrelib/testdata/testinput2 index bb21f4819b..280684650b 100644 --- a/ext/pcre/pcrelib/testdata/testinput2 +++ b/ext/pcre/pcrelib/testdata/testinput2 @@ -82,7 +82,7 @@ \O3abcb \O6abcb \O9abcb - \O12abcb + \O12abcb /(a)bc|(a)(b)\2/I abc @@ -126,7 +126,7 @@ /abc/IP abc *** Failers - + /^abc|def/IP abcdef abcdef\B @@ -134,23 +134,23 @@ /.*((abc)$|(def))/IP defabc \Zdefabc - + /the quick brown fox/IP the quick brown fox - *** Failers - The Quick Brown Fox + *** Failers + The Quick Brown Fox /the quick brown fox/IPi the quick brown fox - The Quick Brown Fox + The Quick Brown Fox /abc.def/IP *** Failers abc\ndef - + /abc$/IP abc - abc\n + abc\n /(abc)\2/IP @@ -162,8 +162,8 @@ /a[]b/ /[^aeiou ]{3,}/I - co-processors, and for - + co-processors, and for + /<.*>/I abc<def>ghi<klm>nop @@ -172,25 +172,25 @@ /<.*>/IU abc<def>ghi<klm>nop - + /(?U)<.*>/I abc<def>ghi<klm>nop /<.*?>/IU abc<def>ghi<klm>nop - + /={3,}/IU abc========def - + /(?U)={3,}?/I abc========def - + /(?<!bar|cattle)foo/I foo - catfoo + catfoo *** Failers the barfoo - and cattlefoo + and cattlefoo /(?<=a+)b/ @@ -236,27 +236,27 @@ /((?i)blah)\s+\1/I -/((?i)b)/IDS +/((?i)b)/IDZS /(a*b|(?i:c*(?-i)d))/IS /a$/I a a\n - *** Failers + *** Failers \Za - \Za\n + \Za\n /a$/Im a a\n - \Za\n - *** Failers + \Za\n + *** Failers \Za - + /\Aabc/Im -/^abc/Im +/^abc/Im /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I aaaaabbbbbcccccdef @@ -268,24 +268,24 @@ /(?!alphabet)[ab]/IS /(?<=foo\n)^bar/Im - foo\nbarbar + foo\nbarbar ***Failers - rhubarb + rhubarb barbell - abc\nbarton + abc\nbarton /^(?<=foo\n)bar/Im - foo\nbarbar + foo\nbarbar ***Failers - rhubarb + rhubarb barbell - abc\nbarton + abc\nbarton /(?>^abc)/Im abc def\nabc *** Failers - defabc + defabc /(?<=ab(c+)d)ef/ @@ -300,8 +300,8 @@ a donkey-cart race *** Failers cart - horse-and-cart - + horse-and-cart + /(?<=ab(?i)x|y|z)/I /(?>.*)(?<=(abcd)|(xyz))/I @@ -314,30 +314,30 @@ ZZZ zZZ bZZ - BZZ + BZZ *** Failers - ZZ - abXYZZ + ZZ + abXYZZ zzz - bzz + bzz /(?<!(foo)a)bar/I bar - foobbar + foobbar *** Failers - fooabar + fooabar /This one is here because Perl 5.005_02 doesn't fail it/I /^(a)?(?(1)a|b)+$/I *** Failers - a + a /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/I /^(a\1?){4}$/I aaaaaa - + /These are syntax tests from Perl 5.005/I /a[b-a]/ @@ -416,12 +416,12 @@ abcd abcd\C2 abcd\C5 - + /(.{20})/I abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz\C1 abcdefghijklmnopqrstuvwxyz\G1 - + /(.{15})/I abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz\C1\G1 @@ -429,30 +429,30 @@ /(.{16})/I abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz\C1\G1\L - + /^(a|(bc))de(f)/I - adef\G1\G2\G3\G4\L - bcdef\G1\G2\G3\G4\L - adefghijk\C0 - + adef\G1\G2\G3\G4\L + bcdef\G1\G2\G3\G4\L + adefghijk\C0 + /^abc\00def/I - abc\00def\L\C0 - -/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 + abc\00def\L\C0 -/.*X/ID +/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 -/.*X/IDs +/.*X/IDZ -/(.*X|^B)/ID +/.*X/IDZs -/(.*X|^B)/IDs - -/(?s)(.*X|^B)/ID +/(.*X|^B)/IDZ -/(?s:.*X|^B)/ID +/(.*X|^B)/IDZs + +/(?s)(.*X|^B)/IDZ + +/(?s:.*X|^B)/IDZ /\Biss\B/I+ Mississippi @@ -479,15 +479,15 @@ /^iss/Ig+ ississippi - + /.*iss/Ig+ - abciss\nxyzisspqr + abciss\nxyzisspqr /.i./I+g Mississippi Mississippi\A Missouri river - Missouri river\A + Missouri river\A /^.is/I+g Mississippi @@ -586,14 +586,14 @@ ab \ *** Failers - \N - + \N + /|-/I abcd -abc \Nab-c *** Failers - \Nabc + \Nabc /a*(b+)(z)(z)/IP aaaabbbbzzzz @@ -603,8 +603,8 @@ aaaabbbbzzzz\O3 aaaabbbbzzzz\O4 aaaabbbbzzzz\O5 - -/^.?abcd/IS + +/^.?abcd/IS /\( # ( at start (?: # Non-capturing bracket @@ -617,26 +617,26 @@ (abcd) (abcd)xyz xyz(abcd) - (ab(xy)cd)pqr - (ab(xycd)pqr - () abc () + (ab(xy)cd)pqr + (ab(xycd)pqr + () abc () 12(abcde(fsh)xyz(foo(bar))lmno)89 *** Failers - abcd + abcd abcd) - (abcd + (abcd /\( ( (?>[^()]+) | (?R) )* \) /Ixg - (ab(xy)cd)pqr + (ab(xy)cd)pqr 1(abcd)(x(y)z)pqr /\( (?: (?>[^()]+) | (?R) ) \) /Ix (abcd) (ab(xy)cd) - (a(b(c)d)e) - ((ab)) + (a(b(c)d)e) + ((ab)) *** Failers - () + () /\( (?: (?>[^()]+) | (?R) )? \) /Ix () @@ -666,53 +666,53 @@ (ab(cd)ef) (ab(cd(ef)gh)ij) -/^[[:alnum:]]/D +/^[[:alnum:]]/DZ + +/^[[:^alnum:]]/DZ -/^[[:^alnum:]]/D +/^[[:alpha:]]/DZ -/^[[:alpha:]]/D +/^[[:^alpha:]]/DZ -/^[[:^alpha:]]/D - /[_[:alpha:]]/IS -/^[[:ascii:]]/D +/^[[:ascii:]]/DZ -/^[[:^ascii:]]/D +/^[[:^ascii:]]/DZ -/^[[:blank:]]/D +/^[[:blank:]]/DZ -/^[[:^blank:]]/D +/^[[:^blank:]]/DZ /[\n\x0b\x0c\x0d[:blank:]]/IS -/^[[:cntrl:]]/D +/^[[:cntrl:]]/DZ -/^[[:digit:]]/D +/^[[:digit:]]/DZ -/^[[:graph:]]/D +/^[[:graph:]]/DZ -/^[[:lower:]]/D +/^[[:lower:]]/DZ -/^[[:print:]]/D +/^[[:print:]]/DZ -/^[[:punct:]]/D +/^[[:punct:]]/DZ -/^[[:space:]]/D +/^[[:space:]]/DZ -/^[[:upper:]]/D +/^[[:upper:]]/DZ -/^[[:xdigit:]]/D +/^[[:xdigit:]]/DZ -/^[[:word:]]/D +/^[[:word:]]/DZ -/^[[:^cntrl:]]/D +/^[[:^cntrl:]]/DZ -/^[12[:^digit:]]/D +/^[12[:^digit:]]/DZ -/^[[:^blank:]]/D +/^[[:^blank:]]/DZ -/[01[:alpha:]%]/D +/[01[:alpha:]%]/DZ /[[.ch.]]/I @@ -722,18 +722,18 @@ /[[:upper:]]/Ii A - a - + a + /[[:lower:]]/Ii A - a + a /((?-i)[[:lower:]])[[:lower:]]/Ii ab aB *** Failers Ab - AB + AB /[\200-\110]/I @@ -749,120 +749,120 @@ /(main(O)?)+/I mainmain mainOmain - + /These are all cases where Perl does it differently (nested captures)/I /^(a(b)?)+$/I aba - + /^(aa(bb)?)+$/I - aabbaa - + aabbaa + /^(aa|aa(bb))+$/I - aabbaa - + aabbaa + /^(aa(bb)??)+$/I - aabbaa - + aabbaa + /^(?:aa(bb)?)+$/I - aabbaa - + aabbaa + /^(aa(b(b))?)+$/I - aabbaa + aabbaa /^(?:aa(b(b))?)+$/I - aabbaa + aabbaa /^(?:aa(b(?:b))?)+$/I - aabbaa + aabbaa /^(?:aa(bb(?:b))?)+$/I - aabbbaa - + aabbbaa + /^(?:aa(b(?:bb))?)+$/I - aabbbaa + aabbbaa /^(?:aa(?:b(b))?)+$/I - aabbaa + aabbaa /^(?:aa(?:b(bb))?)+$/I - aabbbaa + aabbbaa /^(aa(b(bb))?)+$/I - aabbbaa + aabbbaa /^(aa(bb(bb))?)+$/I - aabbbbaa + aabbbbaa -/--------------------------------------------------------------------/I - -/#/IxMD +/--------------------------------------------------------------------/I + +/#/IxDZ -/a#/IxMD +/a#/IxDZ -/[\s]/D +/[\s]/DZ -/[\S]/D +/[\S]/DZ -/a(?i)b/D +/a(?i)b/DZ ab aB - *** Failers - AB + *** Failers + AB -/(a(?i)b)/D +/(a(?i)b)/DZ ab aB - *** Failers - AB - -/ (?i)abc/IxD + *** Failers + AB + +/ (?i)abc/IxDZ /#this is a comment - (?i)abc/IxD + (?i)abc/IxDZ -/123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D +/123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ -/\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D +/\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ -/\Q\E/D +/\Q\E/DZ \ -/\Q\Ex/D +/\Q\Ex/DZ -/ \Q\E/D +/ \Q\E/DZ -/a\Q\E/D +/a\Q\E/DZ abc bca - bac + bac -/a\Q\Eb/D +/a\Q\Eb/DZ abc -/\Q\Eabc/D +/\Q\Eabc/DZ -/x*+\w/D +/x*+\w/DZ *** Failers xxxxx - -/x?+/D -/x++/D +/x?+/DZ + +/x++/DZ -/x{1,3}+/D +/x{1,3}+/DZ -/(x)*+/D +/(x)*+/DZ /^(\w++|\s++)*$/I now is the time for all good men to come to the aid of the party *** Failers this is not a line with only words and spaces! - + /(\d++)(\w)/I 12345a *** Failers - 12345+ + 12345+ /a++b/I aaab @@ -875,14 +875,14 @@ /([^()]++|\([^()]*\))+/I ((abc(ade)ufh()()x - -/\(([^()]++|\([^()]+\))+\)/I + +/\(([^()]++|\([^()]+\))+\)/I (abc) (abc(def)xyz) *** Failers - ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -/(abc){1,3}+/D +/(abc){1,3}+/DZ /a+?+/I @@ -892,17 +892,17 @@ /a{2,3}?+b/IU -/x(?U)a++b/D +/x(?U)a++b/DZ xaaaab -/(?U)xa++b/D +/(?U)xa++b/DZ xaaaab -/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D +/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ -/^x(?U)a+b/D +/^x(?U)a+b/DZ -/^x(?U)(a+)b/D +/^x(?U)(a+)b/DZ /[.x.]/I @@ -926,30 +926,30 @@ /[[:space:]/I -/[\s]/IDM +/[\s]/IDZ -/[[:space:]]/IDM +/[[:space:]]/IDZ -/[[:space:]abcde]/IDM +/[[:space:]abcde]/IDZ /< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix <> <abcd> <abc <123> hij> <abc <def> hij> - <abc<>def> - <abc<> + <abc<>def> + <abc<> *** Failers <abc -|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 +|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 -|\$\<\.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 +|\$\<\.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 /(.*)\d+\1/I /(.*)\d+/I - + /(.*)\d+\1/Is /(.*)\d+/Is @@ -958,7 +958,7 @@ /((.*))\d+\1/I abc123bc - + /a[b]/I /(?=a).*/I @@ -1007,9 +1007,9 @@ /^a/Im abcde - xy\nabc - *** Failers - xyabc + xy\nabc + *** Failers + xyabc /c|abc/I @@ -1019,24 +1019,24 @@ /abc(?C)def/I abcdef - 1234abcdef + 1234abcdef *** Failers abcxyz - abcxyzf + abcxyzf /abc(?C)de(?C1)f/I 123abcdef - -/(?C1)\dabc(?C2)def/I + +/(?C1)\dabc(?C2)def/I 1234abcdef *** Failers - abcdef - + abcdef + /(?C255)ab/I /(?C256)ab/I -/(?Cab)xx/I +/(?Cab)xx/I /(?C12vr)x/I @@ -1046,21 +1046,21 @@ /(abc)(?C)de(?C1)f/I 123abcdef - 123abcdef\C+ - 123abcdef\C- + 123abcdef\C+ + 123abcdef\C- *** Failers - 123abcdef\C!1 - + 123abcdef\C!1 + /(?C0)(abc(?C1))*/I abcabcabc - abcabc\C!1!3 + abcabc\C!1!3 *** Failers - abcabcabc\C!1!3 + abcabcabc\C!1!3 /(\d{3}(?C))*/I 123\C+ 123456\C+ - 123456789\C+ + 123456789\C+ /((xyz)(?C)p|(?C1)xyzabc)/I xyzabc\C+ @@ -1070,20 +1070,20 @@ /(?=(abc))(?C)abcdef/I abcdef\C+ - + /(?!(abc)(?C1)d)(?C2)abcxyz/I - abcxyz\C+ + abcxyz\C+ /(?<=(abc)(?C))xyz/I abcxyz\C+ - + /a(b+)(c*)(?C1)/I abbbbbccc\C*1 /a(b+?)(c*?)(?C1)/I abbbbbccc\C*1 - -/(?C)abc/I + +/(?C)abc/I /(?C)^abc/I @@ -1102,7 +1102,7 @@ xxab xxxab *** Failers - xyab + xyab /(ab|(bc|(de|(?1))))/I @@ -1111,48 +1111,48 @@ /^([^()]|\((?1)*\))*$/I abc a(b)c - a(b(c))d + a(b(c))d *** Failers) - a(b(c)d + a(b(c)d /^>abc>([^()]|\((?1)*\))*<xyz<$/I >abc>123<xyz< >abc>1(2)3<xyz< >abc>(1(2)3)<xyz< -/(a(?1)b)/D +/(a(?1)b)/DZ -/(a(?1)+b)/D +/(a(?1)+b)/DZ /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii 1221 Satan, oscillate my metallic sonatas! A man, a plan, a canal: Panama! - Able was I ere I saw Elba. + Able was I ere I saw Elba. *** Failers - The quick brown fox - + The quick brown fox + /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I 12 (((2+2)*-3)-7) -12 *** Failers ((2+2)*-3)-7) - + /^(x(y|(?1){2})z)/I xyz - xxyzxyzz + xxyzxyzz *** Failers xxyzz - xxyzxyzxyzz + xxyzxyzxyzz /((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix <> <abcd> <abc <123> hij> <abc <def> hij> - <abc<>def> - <abc<> + <abc<>def> + <abc<> *** Failers <abc @@ -1166,32 +1166,32 @@ /^(a|b|c)=(?1)+/I a=a a=b - a=bc + a=bc /^(a|b|c)=((?1))+/I a=a a=b - a=bc + a=bc -/a(?P<name1>b|c)d(?P<longername2>e)/D +/a(?P<name1>b|c)d(?P<longername2>e)/DZ abde - acde + acde -/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D +/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ -/(?P<a>a)...(?P=a)bbb(?P>a)d/D +/(?P<a>a)...(?P=a)bbb(?P>a)d/DZ /^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii 1221 Satan, oscillate my metallic sonatas! A man, a plan, a canal: Panama! - Able was I ere I saw Elba. + Able was I ere I saw Elba. *** Failers - The quick brown fox - + The quick brown fox + /((?(R)a|b))\1(?1)?/I bb - bbaa + bbaa /(.*)a/Is @@ -1215,13 +1215,13 @@ /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is -/(a)(bc)/IND +/(a)(bc)/INDZ abc -/(?P<one>a)(bc)/IND +/(?P<one>a)(bc)/INDZ abc -/(a)(?P<named>bc)/IND +/(a)(?P<named>bc)/INDZ /(a+)*zz/I aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M @@ -1237,11 +1237,11 @@ abcdefgh abcdefgh\C1\Gtwo abcdefgh\Cone\Ctwo - abcdefgh\Cthree + abcdefgh\Cthree -/(?P<Tes>)(?P<Test>)/D +/(?P<Tes>)(?P<Test>)/DZ -/(?P<Test>)(?P<Tes>)/D +/(?P<Test>)(?P<Tes>)/DZ /(?P<Z>zz)(?P<A>aa)/I zzaa\CZ @@ -1254,47 +1254,47 @@ "\[((?P<elem>\d+)(,(?P>elem))*)\]"I [10,20,30,5,5,4,4,2,43,23,4234] *** Failers - [] + [] "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I [10,20,30,5,5,4,4,2,43,23,4234] - [] + [] -/(a(b(?2)c))?/D +/(a(b(?2)c))?/DZ -/(a(b(?2)c))*/D +/(a(b(?2)c))*/DZ -/(a(b(?2)c)){0,2}/D +/(a(b(?2)c)){0,2}/DZ -/[ab]{1}+/D +/[ab]{1}+/DZ /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii Baby Bjorn Active Carrier - With free SHIPPING!! /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS Baby Bjorn Active Carrier - With free SHIPPING!! - -/a*.*b/ISD -/(a|b)*.?c/ISD +/a*.*b/ISDZ + +/(a|b)*.?c/ISDZ -/abc(?C255)de(?C)f/D +/abc(?C255)de(?C)f/DZ -/abcde/ICD +/abcde/ICDZ abcde - abcdfe - -/a*b/ICD + abcdfe + +/a*b/ICDZ ab aaaab - aaaacb + aaaacb -/a+b/ICD +/a+b/ICDZ ab aaaab - aaaacb + aaaacb -/(abc|def)x/ICD +/(abc|def)x/ICDZ abcx defx abcdefzx @@ -1302,43 +1302,43 @@ /(ab|cd){3,4}/IC ababab abcdabcd - abcdcdcdcdcd + abcdcdcdcdcd -/([ab]{,4}c|xy)/ICD +/([ab]{,4}c|xy)/ICDZ Note: that { does NOT introduce a quantifier -/([ab]{1,4}c|xy){4,5}?123/ICD +/([ab]{1,4}c|xy){4,5}?123/ICDZ aacaacaacaacaac123 /\b.*/I ab cd\>1 - -/\b.*/Is + +/\b.*/Is ab cd\>1 - + /(?!.bcd).*/I - Xbcd12345 + Xbcd12345 /abcde/I ab\P abc\P abcd\P - abcde\P + abcde\P the quick brown abc\P ** Failers\P the quick brown abxyz fox\P - + "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I 13/05/04\P 13/5/2004\P - 02/05/09\P + 02/05/09\P 1\P 1/2\P 1/2/0\P - 1/2/04\P + 1/2/04\P 0\P 02/\P - 02/0\P + 02/0\P 02/1\P ** Failers\P \P @@ -1346,14 +1346,14 @@ 33/4/04\P 3/13/04\P 0/1/2003\P - 0/\P - 02/0/\P - 02/13\P + 0/\P + 02/0/\P + 02/13\P /0{0,2}ABC/I - + /\d{3,}ABC/I - + /\d*ABC/I /[abc]+DE/I @@ -1364,7 +1364,7 @@ b\P c\P c12\P - c123\P + c123\P /^(?:\d){3,5}X/I 1\P @@ -1373,17 +1373,17 @@ 1234\P 1234X 12345\P - 12345X - *** Failers - 1X - 123456\P + 12345X + *** Failers + 1X + 123456\P /abc/I>testsavedregex <testsavedregex abc ** Failers bca - + /abc/IF>testsavedregex <testsavedregex abc @@ -1394,14 +1394,14 @@ <testsavedregex abc ** Failers - def - + def + /(a|b)/ISF>testsavedregex <testsavedregex abc ** Failers - def - + def + ~<(\w+)/?>(.)*</(\1)>~smgI <!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite> @@ -1409,34 +1409,34 @@ /line\nbreak/I this is a line\nbreak - line one\nthis is a line\nbreak in the second line + line one\nthis is a line\nbreak in the second line /line\nbreak/If this is a line\nbreak - ** Failers - line one\nthis is a line\nbreak in the second line + ** Failers + line one\nthis is a line\nbreak in the second line /line\nbreak/Imf this is a line\nbreak - ** Failers - line one\nthis is a line\nbreak in the second line + ** Failers + line one\nthis is a line\nbreak in the second line /ab.cd/IP ab-cd - ab=cd + ab=cd ** Failers ab\ncd /ab.cd/IPs ab-cd - ab=cd + ab=cd ab\ncd /(?i)(?-i)AbCd/I AbCd ** Failers - abcd - + abcd + /a{11111111111111111111}/I /(){64294967295}/I @@ -1460,35 +1460,35 @@ /[^()]*(?:\((?R)\)[^()]*)*/I (this(and)that - (this(and)that) + (this(and)that) (this(and)that)stuff /[^()]*(?:\((?>(?R))\)[^()]*)*/I (this(and)that - (this(and)that) - + (this(and)that) + /[^()]*(?:\((?R)\))*[^()]*/I (this(and)that - (this(and)that) + (this(and)that) /(?:\((?R)\))*[^()]*/I (this(and)that - (this(and)that) - ((this)) + (this(and)that) + ((this)) /(?:\((?R)\))|[^()]*/I (this(and)that - (this(and)that) + (this(and)that) (this) - ((this)) - + ((this)) + /a(b)c/IPN abc - + /a(?P<name>b)c/IPN - abc - -/\x{100}/I + abc + +/\x{100}/I /\x{0000ff}/I @@ -1496,44 +1496,44 @@ /^((?P<A>a1)|(?P<A>a2)b)/IJ a1b\CA - a2b\CA + a2b\CA ** Failers - a1b\CZ\CA - + a1b\CZ\CA + /^(?P<A>a)(?P<A>b)/IJ ab\CA - + /^(?P<A>a)(?P<A>b)|cd/IJ ab\CA - cd\CA - + cd\CA + /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ - cdefgh\CA - + cdefgh\CA + /^((?P<A>a1)|(?P<A>a2)b)/IJ a1b\GA - a2b\GA + a2b\GA ** Failers - a1b\GZ\GA - + a1b\GZ\GA + /^(?P<A>a)(?P<A>b)/IJ ab\GA - + /^(?P<A>a)(?P<A>b)|cd/IJ ab\GA - cd\GA - + cd\GA + /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ - cdefgh\GA - + cdefgh\GA + /(?J)^((?P<A>a1)|(?P<A>a2)b)/I a1b\CA - a2b\CA - + a2b\CA + /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I / 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 /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I @@ -1543,7 +1543,7 @@ a random value. /Ix aabc bc ** Failers - abc + abc /(?:(?(ZZ)a|b)(?P<ZZ>X))+/I bXaX @@ -1562,7 +1562,7 @@ a random value. /Ix /(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I bXXaYYaY - bXYaXXaX + bXYaXXaX /()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I bXXaYYaY @@ -1571,7 +1571,7 @@ a random value. /Ix /\s*,\s*/IS \x0b,\x0b - \x0c,\x0d + \x0c,\x0d /^abc/Im xyz\nabc @@ -1579,51 +1579,51 @@ a random value. /Ix xyz\r\nabc\<lf> xyz\rabc\<cr> xyz\r\nabc\<crlf> - ** Failers + ** Failers xyz\nabc\<cr> xyz\r\nabc\<cr> xyz\nabc\<crlf> xyz\rabc\<crlf> xyz\rabc\<lf> - + /abc$/Im<lf> xyzabc - xyzabc\n - xyzabc\npqr - xyzabc\r\<cr> - xyzabc\rpqr\<cr> - xyzabc\r\n\<crlf> - xyzabc\r\npqr\<crlf> + xyzabc\n + xyzabc\npqr + xyzabc\r\<cr> + xyzabc\rpqr\<cr> + xyzabc\r\n\<crlf> + xyzabc\r\npqr\<crlf> ** Failers - xyzabc\r - xyzabc\rpqr - xyzabc\r\n - xyzabc\r\npqr - + xyzabc\r + xyzabc\rpqr + xyzabc\r\n + xyzabc\r\npqr + /^abc/Im<cr> xyz\rabcdef xyz\nabcdef\<lf> - ** Failers + ** Failers xyz\nabcdef - + /^abc/Im<lf> xyz\nabcdef xyz\rabcdef\<cr> - ** Failers + ** Failers xyz\rabcdef - + /^abc/Im<crlf> xyz\r\nabcdef xyz\rabcdef\<cr> - ** Failers + ** Failers xyz\rabcdef - + /^abc/Im<bad> /abc/I xyz\rabc\<bad> - abc - + abc + /.*/I<lf> abc\ndef abc\rdef @@ -1651,7 +1651,7 @@ a random value. /Ix ()()()()()()()()()()()()()()()()()()()() ()()()()()()()()()()()()()()()()()()()() (.(.))/Ix - XY\O400 + XY\O400 /(a*b|(?i:c*(?-i)d))/IS @@ -1667,18 +1667,18 @@ a random value. /Ix /(d?|c)[ab]xyz/IS -/^a*b\d/D +/^a*b\d/DZ -/^a*+b\d/D +/^a*+b\d/DZ -/^a*?b\d/D +/^a*?b\d/DZ -/^a+A\d/D +/^a+A\d/DZ aaaA5 ** Failers - aaaa5 + aaaa5 -/^a*A\d/IiD +/^a*A\d/IiDZ aaaA5 aaaa5 @@ -1696,141 +1696,141 @@ a random value. /Ix a )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) - ))) -/Ix + ))) +/Ix large nest -/a*\d/B +/a*\d/BZ -/a*\D/B +/a*\D/BZ -/0*\d/B +/0*\d/BZ -/0*\D/B +/0*\D/BZ -/a*\s/B +/a*\s/BZ -/a*\S/B +/a*\S/BZ -/ *\s/B +/ *\s/BZ -/ *\S/B +/ *\S/BZ -/a*\w/B +/a*\w/BZ -/a*\W/B +/a*\W/BZ -/=*\w/B +/=*\w/BZ -/=*\W/B +/=*\W/BZ -/\d*a/B +/\d*a/BZ -/\d*2/B +/\d*2/BZ -/\d*\d/B +/\d*\d/BZ -/\d*\D/B +/\d*\D/BZ -/\d*\s/B +/\d*\s/BZ -/\d*\S/B +/\d*\S/BZ -/\d*\w/B +/\d*\w/BZ -/\d*\W/B +/\d*\W/BZ -/\D*a/B +/\D*a/BZ -/\D*2/B +/\D*2/BZ -/\D*\d/B +/\D*\d/BZ -/\D*\D/B +/\D*\D/BZ -/\D*\s/B +/\D*\s/BZ -/\D*\S/B +/\D*\S/BZ -/\D*\w/B +/\D*\w/BZ -/\D*\W/B +/\D*\W/BZ -/\s*a/B +/\s*a/BZ -/\s*2/B +/\s*2/BZ -/\s*\d/B +/\s*\d/BZ -/\s*\D/B +/\s*\D/BZ -/\s*\s/B +/\s*\s/BZ -/\s*\S/B +/\s*\S/BZ -/\s*\w/B +/\s*\w/BZ -/\s*\W/B +/\s*\W/BZ -/\S*a/B +/\S*a/BZ -/\S*2/B +/\S*2/BZ -/\S*\d/B +/\S*\d/BZ -/\S*\D/B +/\S*\D/BZ -/\S*\s/B +/\S*\s/BZ -/\S*\S/B +/\S*\S/BZ -/\S*\w/B +/\S*\w/BZ -/\S*\W/B +/\S*\W/BZ -/\w*a/B +/\w*a/BZ -/\w*2/B +/\w*2/BZ -/\w*\d/B +/\w*\d/BZ -/\w*\D/B +/\w*\D/BZ -/\w*\s/B +/\w*\s/BZ -/\w*\S/B +/\w*\S/BZ -/\w*\w/B +/\w*\w/BZ -/\w*\W/B +/\w*\W/BZ -/\W*a/B +/\W*a/BZ -/\W*2/B +/\W*2/BZ -/\W*\d/B +/\W*\d/BZ -/\W*\D/B +/\W*\D/BZ -/\W*\s/B +/\W*\s/BZ -/\W*\S/B +/\W*\S/BZ -/\W*\w/B +/\W*\w/BZ -/\W*\W/B +/\W*\W/BZ -/[^a]+a/B +/[^a]+a/BZ -/[^a]+a/Bi +/[^a]+a/BZi -/[^a]+A/Bi +/[^a]+A/BZi -/[^a]+b/B +/[^a]+b/BZ -/[^a]+\d/B +/[^a]+\d/BZ -/a*[^a]/B +/a*[^a]/BZ /(?P<abc>x)(?P<xyz>y)/I xy\Cabc\Cxyz @@ -1848,8 +1848,8 @@ a random value. /Ix bXaX bXbX ** Failers - aXaX - aXbX + aXaX + aXbX /^(?P>abc)(?<abcd>xxx)/ @@ -1857,60 +1857,60 @@ a random value. /Ix xx xy yy - yx + yx /^(?P>abc)(?P<abc>x|y)/ xx xy yy - yx + yx /^((?(abc)a|b)(?<abc>x|y))+/ bxay - bxby + bxby ** Failers - axby + axby /^(((?P=abc)|X)(?<abc>x|y))+/ XxXxxx XxXyyx XxXyxx ** Failers - x + x /^(?1)(abc)/ abcabc /^(?:(?:\1|X)(a|b))+/ Xaaa - Xaba + Xaba -/^[\E\Qa\E-\Qz\E]+/B - -/^[a\Q]bc\E]/B - -/^[a-\Q\E]/B +/^[\E\Qa\E-\Qz\E]+/BZ + +/^[a\Q]bc\E]/BZ -/^(?P>abc)[()](?<abc>)/B +/^[a-\Q\E]/BZ -/^((?(abc)y)[()](?P<abc>x))+/B +/^(?P>abc)[()](?<abc>)/BZ + +/^((?(abc)y)[()](?P<abc>x))+/BZ (xy)x - -/^(?P>abc)\Q()\E(?<abc>)/B -/^(?P>abc)[a\Q(]\E(](?<abc>)/B +/^(?P>abc)\Q()\E(?<abc>)/BZ + +/^(?P>abc)[a\Q(]\E(](?<abc>)/BZ /^(?P>abc) # this is (a comment) - (?<abc>)/Bx + (?<abc>)/BZx /^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii 1221 Satan, oscillate my metallic sonatas! A man, a plan, a canal: Panama! - Able was I ere I saw Elba. + Able was I ere I saw Elba. *** Failers - The quick brown fox - + The quick brown fox + /(?=(\w+))\1:/I abcd: @@ -1921,28 +1921,28 @@ a random value. /Ix a:aaxyz ab:ababxyz ** Failers - a:axyz - ab:abxyz + a:axyz + ab:abxyz /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J adaa ** Failers addd - adbb + adbb /(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J bdaa bdab ** Failers - bddd + bddd /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x abd - ce - + ce + /(?(<bc))/ -/(?(''))/ +/(?(''))/ /(?('R')stuff)/ @@ -1959,16 +1959,16 @@ a random value. /Ix /^(?(DEFINE) (?<A> a) (?<B> b) ) (?&A) (?&B) /x abcd - + /(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT)) (?(DEFINE) (?<NAME_PAT>[a-z]+) (?<ADDRESS_PAT>\d+) )/x metcalfe 33 - + /^(?(DEFINE) abc | xyz ) /x - + /(?(DEFINE) abc) xyz/xI /(?(DEFINE) abc){3} xyz/x @@ -1979,12 +1979,15 @@ a random value. /Ix /^a.b/<lf> a\rb - a\nb\<cr> + a\nb\<cr> + a\x85b\<anycrlf> ** Failers a\nb a\nb\<any> - a\rb\<cr> - a\rb\<any> + a\rb\<cr> + a\rb\<any> + a\x85b\<any> + a\rb\<anycrlf> /^abc./mgx<any> abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK @@ -2002,9 +2005,9 @@ a random value. /Ix a\r\nb a\x0bb a\x0cb - a\x85b + a\x85b ** Failers - a\n\rb + a\n\rb /^a\R*b/ ab @@ -2013,9 +2016,9 @@ a random value. /Ix a\r\nb a\x0bb a\x0cb - a\x85b - a\n\rb - a\n\r\x85\x0cb + a\x85b + a\n\rb + a\n\r\x85\x0cb /^a\R+b/ a\nb @@ -2023,20 +2026,20 @@ a random value. /Ix a\r\nb a\x0bb a\x0cb - a\x85b - a\n\rb - a\n\r\x85\x0cb + a\x85b + a\n\rb + a\n\r\x85\x0cb ** Failers - ab - + ab + /^a\R{1,3}b/ a\nb a\n\rb a\n\r\x85b - a\r\n\r\nb - a\r\n\r\n\r\nb + a\r\n\r\nb + a\r\n\r\n\r\nb a\n\r\n\rb - a\n\n\r\nb + a\n\n\r\nb ** Failers a\n\n\n\rb a\r @@ -2044,7 +2047,7 @@ a random value. /Ix /^a[\R]b/ aRb ** Failers - a\nb + a\nb /(?&abc)X(?<abc>P)/I abcPXP123 @@ -2058,7 +2061,7 @@ a random value. /Ix 10.0.0.0 ** Failers 10.6 - 455.3.4.5 + 455.3.4.5 /\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/ 1.2.3.4 @@ -2066,12 +2069,12 @@ a random value. /Ix 10.0.0.0 ** Failers 10.6 - 455.3.4.5 - + 455.3.4.5 + /(?:a(?&abc)b)*(?<abc>x)/ 123axbaxbaxbx456 123axbaxbaxb456 - + /(?:a(?&abc)b){1,5}(?<abc>x)/ 123axbaxbaxbx456 @@ -2109,25 +2112,48 @@ a random value. /Ix /.+foo/ afoo - ** Failers - \r\nfoo - \nfoo + ** Failers + \r\nfoo + \nfoo /.+foo/<crlf> afoo - \nfoo - ** Failers - \r\nfoo + \nfoo + ** Failers + \r\nfoo /.+foo/<any> afoo - ** Failers - \nfoo - \r\nfoo + ** Failers + \nfoo + \r\nfoo /.+foo/s afoo - \r\nfoo - \nfoo + \r\nfoo + \nfoo + +/^$/mg<any> + abc\r\rxyz + abc\n\rxyz + ** Failers + abc\r\nxyz + +/(?m)^$/<any>g+ + abc\r\n\r\n + +/(?m)^$|^\r\n/<any>g+ + abc\r\n\r\n + +/(?m)$/<any>g+ + abc\r\n\r\n + +/abc.$/mgx<anycrlf> + abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9 + +/^X/m + XABC + ** Failers + XABC\B / End of testinput2 / diff --git a/ext/pcre/pcrelib/testdata/testinput3 b/ext/pcre/pcrelib/testdata/testinput3 index e6ac826f77..1376c213b4 100644 --- a/ext/pcre/pcrelib/testdata/testinput3 +++ b/ext/pcre/pcrelib/testdata/testinput3 @@ -86,6 +86,6 @@ >>>\xaa<<< >>>\xba<<< -/[[:alpha:]][[:lower:]][[:upper:]]/DLfr_FR +/[[:alpha:]][[:lower:]][[:upper:]]/DZLfr_FR / End of testinput3 / diff --git a/ext/pcre/pcrelib/testdata/testinput5 b/ext/pcre/pcrelib/testdata/testinput5 index 85d3ce63db..c99bee7c5f 100644 --- a/ext/pcre/pcrelib/testdata/testinput5 +++ b/ext/pcre/pcrelib/testdata/testinput5 @@ -1,20 +1,20 @@ -/\x{100}/8DM +/\x{100}/8DZ -/\x{1000}/8DM +/\x{1000}/8DZ -/\x{10000}/8DM +/\x{10000}/8DZ -/\x{100000}/8DM +/\x{100000}/8DZ -/\x{1000000}/8DM +/\x{1000000}/8DZ -/\x{4000000}/8DM +/\x{4000000}/8DZ -/\x{7fffFFFF}/8DM +/\x{7fffFFFF}/8DZ -/[\x{ff}]/8DM +/[\x{ff}]/8DZ -/[\x{100}]/8DM +/[\x{100}]/8DZ /\x{ffffffff}/8 @@ -23,39 +23,39 @@ /^\x{100}a\x{1234}/8 \x{100}a\x{1234}bcd -/\x80/8D +/\x80/8DZ -/\xff/8D +/\xff/8DZ -/\x{0041}\x{2262}\x{0391}\x{002e}/D8 +/\x{0041}\x{2262}\x{0391}\x{002e}/DZ8 \x{0041}\x{2262}\x{0391}\x{002e} -/\x{D55c}\x{ad6d}\x{C5B4}/D8 +/\x{D55c}\x{ad6d}\x{C5B4}/DZ8 \x{D55c}\x{ad6d}\x{C5B4} -/\x{65e5}\x{672c}\x{8a9e}/D8 +/\x{65e5}\x{672c}\x{8a9e}/DZ8 \x{65e5}\x{672c}\x{8a9e} -/\x{80}/D8 +/\x{80}/DZ8 -/\x{084}/D8 +/\x{084}/DZ8 -/\x{104}/D8 +/\x{104}/DZ8 -/\x{861}/D8 +/\x{861}/DZ8 -/\x{212ab}/D8 +/\x{212ab}/DZ8 -/.{3,5}X/D8 +/.{3,5}X/DZ8 \x{212ab}\x{212ab}\x{212ab}\x{861}X -/.{3,5}?/D8 +/.{3,5}?/DZ8 \x{212ab}\x{212ab}\x{212ab}\x{861} -/-- These tests are here rather than in testinput4 because Perl 5.6 has --/ -/-- some problems with UTF-8 support, in the area of \x{..} where the --/ -/-- value is < 255. It grumbles about invalid UTF-8 strings. --/ +/-- These tests are here rather than in testinput4 because Perl 5.6 has some +problems with UTF-8 support, in the area of \x{..} where the value is < 255. +It grumbles about invalid UTF-8 strings. --/ /^[a\x{c0}]b/8 \x{c0}b @@ -80,29 +80,29 @@ /(?<=\C)X/8 Should produce an error diagnostic -/-- This one is here not because it's different to Perl, but because the --/ -/-- way the captured single-byte is displayed. (In Perl it becomes a --/ -/-- character, and you can't tell the difference.) --/ +/-- This one is here not because it's different to Perl, but because the way +the captured single-byte is displayed. (In Perl it becomes a character, and you +can't tell the difference.) --/ /X(\C)(.*)/8 X\x{1234} X\nabc -/^[ab]/8D +/^[ab]/8DZ bar *** Failers c \x{ff} \x{100} -/^[^ab]/8D +/^[^ab]/8DZ c \x{ff} \x{100} *** Failers aaa -/[^ab\xC0-\xF0]/8SD +/[^ab\xC0-\xF0]/8SDZ \x{f1} \x{bf} \x{100} @@ -111,16 +111,16 @@ \x{c0} \x{f0} -/Ā{3,4}/8SD +/Ā{3,4}/8SDZ \x{100}\x{100}\x{100}\x{100\x{100} -/(\x{100}+|x)/8SD +/(\x{100}+|x)/8SDZ -/(\x{100}*a|x)/8SD +/(\x{100}*a|x)/8SDZ -/(\x{100}{0,2}a|x)/8SD +/(\x{100}{0,2}a|x)/8SDZ -/(\x{100}{1,2}a|x)/8SD +/(\x{100}{1,2}a|x)/8SDZ /\x{100}*(\d+|"(?1)")/8 1234 @@ -132,34 +132,34 @@ *** Failers \x{100}\x{100}abcd -/\x{100}/8D +/\x{100}/8DZ -/\x{100}*/8D +/\x{100}*/8DZ -/a\x{100}*/8D +/a\x{100}*/8DZ -/ab\x{100}*/8D +/ab\x{100}*/8DZ -/a\x{100}\x{101}*/8D +/a\x{100}\x{101}*/8DZ -/a\x{100}\x{101}+/8D +/a\x{100}\x{101}+/8DZ -/\x{100}*A/8D +/\x{100}*A/8DZ A -/\x{100}*\d(?R)/8D +/\x{100}*\d(?R)/8DZ -/[^\x{c4}]/D +/[^\x{c4}]/DZ -/[^\x{c4}]/8D +/[^\x{c4}]/8DZ -/[\x{100}]/8DM +/[\x{100}]/8DZ \x{100} Z\x{100} \x{100}Z *** Failers -/[Z\x{100}]/8DM +/[Z\x{100}]/8DZ Z\x{100} \x{100} \x{100}Z @@ -174,21 +174,21 @@ \x{105} \x{ff} -/[z-\x{100}]/8D +/[z-\x{100}]/8DZ -/[z\Qa-d]Ā\E]/8D +/[z\Qa-d]Ā\E]/8DZ \x{100} Ā -/[\xFF]/D +/[\xFF]/DZ >\xff< -/[\xff]/D8 +/[\xff]/DZ8 >\x{ff}< -/[^\xFF]/D +/[^\xFF]/DZ -/[^\xff]/8D +/[^\xff]/8DZ /[Ä-Ü]/8 Ö # Matches without Study @@ -212,7 +212,7 @@ /xxx/8 -/xxx/8?D +/xxx/8?DZ /abc/8 ] @@ -239,19 +239,19 @@ \xfc\x84\x80\x80\x80\x80 \xfd\x83\x80\x80\x80\x80 -/\x{100}abc(xyz(?1))/8D +/\x{100}abc(xyz(?1))/8DZ -/[^\x{100}]abc(xyz(?1))/8D +/[^\x{100}]abc(xyz(?1))/8DZ -/[ab\x{100}]abc(xyz(?1))/8D +/[ab\x{100}]abc(xyz(?1))/8DZ -/(\x{100}(b(?2)c))?/D8 +/(\x{100}(b(?2)c))?/DZ8 -/(\x{100}(b(?2)c)){0,2}/D8 +/(\x{100}(b(?2)c)){0,2}/DZ8 -/(\x{100}(b(?1)c))?/D8 +/(\x{100}(b(?1)c))?/DZ8 -/(\x{100}(b(?1)c)){0,2}/D8 +/(\x{100}(b(?1)c)){0,2}/DZ8 /\W/8 A.B @@ -263,7 +263,7 @@ /a\x{1234}b/P8 a\x{1234}b -/^\ሴ/8D +/^\ሴ/8DZ /\777/I @@ -271,23 +271,23 @@ \x{1ff} \777 -/\x{100}*\d/8D +/\x{100}*\d/8DZ -/\x{100}*\s/8D +/\x{100}*\s/8DZ -/\x{100}*\w/8D +/\x{100}*\w/8DZ -/\x{100}*\D/8D +/\x{100}*\D/8DZ -/\x{100}*\S/8D +/\x{100}*\S/8DZ -/\x{100}*\W/8D +/\x{100}*\W/8DZ -/\x{100}+\x{200}/8D +/\x{100}+\x{200}/8DZ -/\x{100}+X/8D +/\x{100}+X/8DZ -/X+\x{200}/8D +/X+\x{200}/8DZ /()()()()()()()()()() ()()()()()()()()()() @@ -296,11 +296,11 @@ A (x) (?41) B/8x AxxB -/^[\x{100}\E-\Q\E\x{150}]/B8 +/^[\x{100}\E-\Q\E\x{150}]/BZ8 -/^[\QĀ\E-\QŐ\E]/B8 +/^[\QĀ\E-\QŐ\E]/BZ8 -/^[\QĀ\E-\QŐ\E/B8 +/^[\QĀ\E-\QŐ\E/BZ8 /^abc./mgx8<any> abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK diff --git a/ext/pcre/pcrelib/testdata/testinput6 b/ext/pcre/pcrelib/testdata/testinput6 index 5a541f362a..1028845b0b 100644 --- a/ext/pcre/pcrelib/testdata/testinput6 +++ b/ext/pcre/pcrelib/testdata/testinput6 @@ -323,20 +323,20 @@ ** Failers WXYZ -/[\p{L}]/D +/[\p{L}]/DZ -/[\p{^L}]/D +/[\p{^L}]/DZ -/[\P{L}]/D +/[\P{L}]/DZ -/[\P{^L}]/D +/[\P{^L}]/DZ -/[abc\p{L}\x{0660}]/8D +/[abc\p{L}\x{0660}]/8DZ -/[\p{Nd}]/8DM +/[\p{Nd}]/8DZ 1234 -/[\p{Nd}+-]+/8DM +/[\p{Nd}+-]+/8DZ 1234 12-34 12+\x{661}-34 @@ -425,13 +425,13 @@ A\x{391}\x{10427}\x{ff5a}\x{1fb0} A\x{391}\x{10427}\x{ff3a}\x{1fb8} -/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8iD +/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8iDZ -/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8D +/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8DZ -/AB\x{1fb0}/8D +/AB\x{1fb0}/8DZ -/AB\x{1fb0}/8Di +/AB\x{1fb0}/8DZi /\x{391}+/8i \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391} @@ -452,7 +452,7 @@ \x{c0} \x{e0} -/[\x{105}-\x{109}]/8iD +/[\x{105}-\x{109}]/8iDZ \x{104} \x{105} \x{109} @@ -460,7 +460,7 @@ \x{100} \x{10a} -/[z-\x{100}]/8iD +/[z-\x{100}]/8iDZ Z z \x{39c} @@ -475,7 +475,7 @@ Y y -/[z-\x{100}]/8Di +/[z-\x{100}]/8DZi /^\X/8 A @@ -762,4 +762,14 @@ of case for anything other than the ASCII letters. / /^\p{Balinese}\p{Cuneiform}\p{Nko}\p{Phags_Pa}\p{Phoenician}/8 \x{1b00}\x{12000}\x{7c0}\x{a840}\x{10900} +/The next two are special cases where the lengths of the different cases of the +same character differ. The first went wrong with heap fram storage; the 2nd +was broken in all cases./ + +/^\x{023a}+?(\x{0130}+)/8i + \x{023a}\x{2c65}\x{0130} + +/^\x{023a}+([^X])/8i + \x{023a}\x{2c65}X + / End of testinput6 / diff --git a/ext/pcre/pcrelib/testdata/testinput7 b/ext/pcre/pcrelib/testdata/testinput7 index 23b35f16d8..5c2dd6f6da 100644 --- a/ext/pcre/pcrelib/testdata/testinput7 +++ b/ext/pcre/pcrelib/testdata/testinput7 @@ -4229,4 +4229,24 @@ \r\nfoo \nfoo +/^$/mg<any> + abc\r\rxyz + abc\n\rxyz + ** Failers + abc\r\nxyz + +/^X/m + XABC + ** Failers + XABC\B + +/(?m)^$/<any>g+ + abc\r\n\r\n + +/(?m)^$|^\r\n/<any>g+ + abc\r\n\r\n + +/(?m)$/<any>g+ + abc\r\n\r\n + / End of testinput7 / diff --git a/ext/pcre/pcrelib/testdata/testinput9 b/ext/pcre/pcrelib/testdata/testinput9 index 23d3d3e434..e11dda1bf5 100644 --- a/ext/pcre/pcrelib/testdata/testinput9 +++ b/ext/pcre/pcrelib/testdata/testinput9 @@ -813,4 +813,10 @@ \x{1c5}XY AXY +/^\x{023a}+?(\x{0130}+)/8i + \x{023a}\x{2c65}\x{0130} + +/^\x{023a}+([^X])/8i + \x{023a}\x{2c65}X + / End / diff --git a/ext/pcre/pcrelib/testdata/testoutput10 b/ext/pcre/pcrelib/testdata/testoutput10 new file mode 100644 index 0000000000..bfda261bc8 --- /dev/null +++ b/ext/pcre/pcrelib/testdata/testoutput10 @@ -0,0 +1,563 @@ +/-- These are a few representative patterns whose lengths and offsets are to be +shown when the link size is 2. This is just a doublecheck test to ensure the +sizes don't go horribly wrong when something is changed. The pattern contents +are all themselves checked in other tests. --/ + +/((?i)b)/BM +Memory allocation (code space): 21 +------------------------------------------------------------------ + 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 +------------------------------------------------------------------ + +/(?s)(.*X|^B)/BM +Memory allocation (code space): 25 +------------------------------------------------------------------ + 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)/BM +Memory allocation (code space): 29 +------------------------------------------------------------------ + 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 +------------------------------------------------------------------ + +/^[[:alnum:]]/BM +Memory allocation (code space): 41 +------------------------------------------------------------------ + 0 37 Bra 0 + 3 ^ + 4 [0-9A-Za-z] + 37 37 Ket + 40 End +------------------------------------------------------------------ + +/#/IxMD +Memory allocation (code space): 7 +------------------------------------------------------------------ + 0 3 Bra 0 + 3 3 Ket + 6 End +------------------------------------------------------------------ +Capturing subpattern count = 0 +Options: extended +No first char +No need char + +/a#/IxMD +Memory allocation (code space): 9 +------------------------------------------------------------------ + 0 5 Bra 0 + 3 a + 5 5 Ket + 8 End +------------------------------------------------------------------ +Capturing subpattern count = 0 +Options: extended +First char = 'a' +No need char + +/x?+/BM +Memory allocation (code space): 9 +------------------------------------------------------------------ + 0 5 Bra 0 + 3 x?+ + 5 5 Ket + 8 End +------------------------------------------------------------------ + +/x++/BM +Memory allocation (code space): 9 +------------------------------------------------------------------ + 0 5 Bra 0 + 3 x++ + 5 5 Ket + 8 End +------------------------------------------------------------------ + +/x{1,3}+/BM +Memory allocation (code space): 19 +------------------------------------------------------------------ + 0 15 Bra 0 + 3 9 Once + 6 x + 8 x{0,2} + 12 9 Ket + 15 15 Ket + 18 End +------------------------------------------------------------------ + +/(x)*+/BM +Memory allocation (code space): 24 +------------------------------------------------------------------ + 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 +------------------------------------------------------------------ + +/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/BM +Memory allocation (code space): 120 +------------------------------------------------------------------ + 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 +------------------------------------------------------------------ + +|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|BM +Memory allocation (code space): 826 +------------------------------------------------------------------ + 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 +------------------------------------------------------------------ + +|\$\<\.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|BM +Memory allocation (code space): 816 +------------------------------------------------------------------ + 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 +------------------------------------------------------------------ + +/(a(?1)b)/BM +Memory allocation (code space): 28 +------------------------------------------------------------------ + 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 +------------------------------------------------------------------ + +/(a(?1)+b)/BM +Memory allocation (code space): 28 +------------------------------------------------------------------ + 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 +------------------------------------------------------------------ + +/a(?P<name1>b|c)d(?P<longername2>e)/BM +Memory allocation (code space): 42 +------------------------------------------------------------------ + 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<c>c(?P<d>d)))(?P<a>a)/BM +Memory allocation (code space): 54 +------------------------------------------------------------------ + 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 +------------------------------------------------------------------ + +/(?P<a>a)...(?P=a)bbb(?P>a)d/BM +Memory allocation (code space): 43 +------------------------------------------------------------------ + 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 +------------------------------------------------------------------ + +/abc(?C255)de(?C)f/BM +Memory allocation (code space): 31 +------------------------------------------------------------------ + 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 +------------------------------------------------------------------ + +/abcde/CBM +Memory allocation (code space): 53 +------------------------------------------------------------------ + 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 +------------------------------------------------------------------ + +/\x{100}/8BM +Memory allocation (code space): 10 +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \x{100} + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\x{1000}/8BM +Memory allocation (code space): 11 +------------------------------------------------------------------ + 0 7 Bra 0 + 3 \x{1000} + 7 7 Ket + 10 End +------------------------------------------------------------------ + +/\x{10000}/8BM +Memory allocation (code space): 12 +------------------------------------------------------------------ + 0 8 Bra 0 + 3 \x{10000} + 8 8 Ket + 11 End +------------------------------------------------------------------ + +/\x{100000}/8BM +Memory allocation (code space): 12 +------------------------------------------------------------------ + 0 8 Bra 0 + 3 \x{100000} + 8 8 Ket + 11 End +------------------------------------------------------------------ + +/\x{1000000}/8BM +Memory allocation (code space): 13 +------------------------------------------------------------------ + 0 9 Bra 0 + 3 \x{1000000} + 9 9 Ket + 12 End +------------------------------------------------------------------ + +/\x{4000000}/8BM +Memory allocation (code space): 14 +------------------------------------------------------------------ + 0 10 Bra 0 + 3 \x{4000000} + 10 10 Ket + 13 End +------------------------------------------------------------------ + +/\x{7fffFFFF}/8BM +Memory allocation (code space): 14 +------------------------------------------------------------------ + 0 10 Bra 0 + 3 \x{7fffffff} + 10 10 Ket + 13 End +------------------------------------------------------------------ + +/[\x{ff}]/8BM +Memory allocation (code space): 10 +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \x{ff} + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/[\x{100}]/8BM +Memory allocation (code space): 15 +------------------------------------------------------------------ + 0 11 Bra 0 + 3 [\x{100}] + 11 11 Ket + 14 End +------------------------------------------------------------------ + +/\x80/8BM +Memory allocation (code space): 10 +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \x{80} + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\xff/8BM +Memory allocation (code space): 10 +------------------------------------------------------------------ + 0 6 Bra 0 + 3 \x{ff} + 6 6 Ket + 9 End +------------------------------------------------------------------ + +/\x{0041}\x{2262}\x{0391}\x{002e}/D8M +Memory allocation (code space): 18 +------------------------------------------------------------------ + 0 14 Bra 0 + 3 A\x{2262}\x{391}. + 14 14 Ket + 17 End +------------------------------------------------------------------ +Capturing subpattern count = 0 +Options: utf8 +First char = 'A' +Need char = '.' + +/\x{D55c}\x{ad6d}\x{C5B4}/D8M +Memory allocation (code space): 19 +------------------------------------------------------------------ + 0 15 Bra 0 + 3 \x{d55c}\x{ad6d}\x{c5b4} + 15 15 Ket + 18 End +------------------------------------------------------------------ +Capturing subpattern count = 0 +Options: utf8 +First char = 237 +Need char = 180 + +/\x{65e5}\x{672c}\x{8a9e}/D8M +Memory allocation (code space): 19 +------------------------------------------------------------------ + 0 15 Bra 0 + 3 \x{65e5}\x{672c}\x{8a9e} + 15 15 Ket + 18 End +------------------------------------------------------------------ +Capturing subpattern count = 0 +Options: utf8 +First char = 230 +Need char = 158 + +/[\x{100}]/8BM +Memory allocation (code space): 15 +------------------------------------------------------------------ + 0 11 Bra 0 + 3 [\x{100}] + 11 11 Ket + 14 End +------------------------------------------------------------------ + +/[Z\x{100}]/8BM +Memory allocation (code space): 47 +------------------------------------------------------------------ + 0 43 Bra 0 + 3 [Z\x{100}] + 43 43 Ket + 46 End +------------------------------------------------------------------ + +/^[\x{100}\E-\Q\E\x{150}]/B8M +Memory allocation (code space): 18 +------------------------------------------------------------------ + 0 14 Bra 0 + 3 ^ + 4 [\x{100}-\x{150}] + 14 14 Ket + 17 End +------------------------------------------------------------------ + +/^[\QĀ\E-\QŐ\E]/B8M +Memory allocation (code space): 18 +------------------------------------------------------------------ + 0 14 Bra 0 + 3 ^ + 4 [\x{100}-\x{150}] + 14 14 Ket + 17 End +------------------------------------------------------------------ + +/^[\QĀ\E-\QŐ\E/B8M +Failed: missing terminating ] for character class at offset 15 + +/[\p{L}]/BM +Memory allocation (code space): 15 +------------------------------------------------------------------ + 0 11 Bra 0 + 3 [\p{L}] + 11 11 Ket + 14 End +------------------------------------------------------------------ + +/[\p{^L}]/BM +Memory allocation (code space): 15 +------------------------------------------------------------------ + 0 11 Bra 0 + 3 [\P{L}] + 11 11 Ket + 14 End +------------------------------------------------------------------ + +/[\P{L}]/BM +Memory allocation (code space): 15 +------------------------------------------------------------------ + 0 11 Bra 0 + 3 [\P{L}] + 11 11 Ket + 14 End +------------------------------------------------------------------ + +/[\P{^L}]/BM +Memory allocation (code space): 15 +------------------------------------------------------------------ + 0 11 Bra 0 + 3 [\p{L}] + 11 11 Ket + 14 End +------------------------------------------------------------------ + +/[abc\p{L}\x{0660}]/8BM +Memory allocation (code space): 50 +------------------------------------------------------------------ + 0 46 Bra 0 + 3 [a-c\p{L}\x{660}] + 46 46 Ket + 49 End +------------------------------------------------------------------ + +/[\p{Nd}]/8BM +Memory allocation (code space): 15 +------------------------------------------------------------------ + 0 11 Bra 0 + 3 [\p{Nd}] + 11 11 Ket + 14 End +------------------------------------------------------------------ + +/[\p{Nd}+-]+/8BM +Memory allocation (code space): 48 +------------------------------------------------------------------ + 0 44 Bra 0 + 3 [+\-\p{Nd}]+ + 44 44 Ket + 47 End +------------------------------------------------------------------ + +/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8iBM +Memory allocation (code space): 25 +------------------------------------------------------------------ + 0 21 Bra 0 + 3 NC A\x{391}\x{10427}\x{ff3a}\x{1fb0} + 21 21 Ket + 24 End +------------------------------------------------------------------ + +/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8BM +Memory allocation (code space): 25 +------------------------------------------------------------------ + 0 21 Bra 0 + 3 A\x{391}\x{10427}\x{ff3a}\x{1fb0} + 21 21 Ket + 24 End +------------------------------------------------------------------ + +/[\x{105}-\x{109}]/8iBM +Memory allocation (code space): 17 +------------------------------------------------------------------ + 0 13 Bra 0 + 3 [\x{104}-\x{109}] + 13 13 Ket + 16 End +------------------------------------------------------------------ + +/ End of testinput10 / diff --git a/ext/pcre/pcrelib/testdata/testoutput2 b/ext/pcre/pcrelib/testdata/testoutput2 index 45907492f9..8684dd77a3 100644 --- a/ext/pcre/pcrelib/testdata/testoutput2 +++ b/ext/pcre/pcrelib/testdata/testoutput2 @@ -222,7 +222,7 @@ Matched, but too many substrings 0: abcb 1: a 2: b - \O12abcb + \O12abcb 0: abcb 1: a 2: b @@ -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 0 + Bra 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 @@ -706,15 +706,15 @@ Capturing subpattern count = 0 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 @@ -722,15 +722,15 @@ Capturing subpattern count = 0 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 +744,7 @@ Need char = 'c' 0: abc *** Failers No match - defabc + defabc No match /(?<=ab(c+)d)ef/ @@ -771,9 +771,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 +809,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 +829,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 +849,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 +867,7 @@ No need char aaaaaa 0: aaaaaa 1: aa - + /These are syntax tests from Perl 5.005/I Capturing subpattern count = 0 No options @@ -1001,7 +1001,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 +1019,7 @@ No need char 0: abcdefghijklmnopqrst 1: abcdefghijklmnopqrst 1G abcdefghijklmnopqrst (20) - + /(.{15})/I Capturing subpattern count = 1 Partial matching not supported @@ -1051,13 +1051,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 +1070,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 +1083,39 @@ 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 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 0 + 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 0 + Any* + 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 0 + Bra 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 0 + Bra 1 + Any* + 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 0 + Bra 1 + Any* + X + Alt + ^ + B + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Partial matching not supported @@ -1195,21 +1194,21 @@ 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 0 + Bra 0 + 04 Opt + Any* + X + Alt + 04 Opt + ^ + B + Ket + 00 Opt + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -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 @@ -1646,9 +1645,9 @@ No need char 0: *** Failers 0: - \N + \N No match - + /|-/I Capturing subpattern count = 0 No options @@ -1662,7 +1661,7 @@ No need char 0: - *** Failers 0: - \Nabc + \Nabc No match /a*(b+)(z)(z)/IP @@ -1691,8 +1690,8 @@ No match 1: bbbb 2: z 3: z - -/^.?abcd/IS + +/^.?abcd/IS Capturing subpattern count = 0 Options: anchored No first char @@ -1718,21 +1717,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 +1740,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 +1759,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 +1883,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 + ^ + [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 0 + ^ + [\x00-/:-@[-`{-\xff] + 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 0 + ^ + [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 0 + ^ + [\x00-@[-`{-\xff] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored No first char No need char - + /[_[:alpha:]]/IS Capturing subpattern count = 0 No options @@ -1944,52 +1943,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 0 + ^ + [\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 0 + ^ + [\x80-\xff] + 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 0 + ^ + [\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 0 + ^ + [\x00-\x08\x0a-\x1f!-\xff] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored @@ -2003,181 +2002,181 @@ 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 0 + ^ + [\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 + ^ + [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 0 + ^ + [!-~] + 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 0 + ^ + [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 0 + ^ + [ -~] + 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 0 + ^ + [!-/:-@[-`{-~] + 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 0 + ^ + [\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 0 + ^ + [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 + ^ + [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 + ^ + [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 0 + ^ + [ -~\x80-\xff] + 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 0 + ^ + [\x00-/12:-\xff] + 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 0 + ^ + [\x00-\x08\x0a-\x1f!-\xff] + 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 0 + [%01A-Za-z] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options @@ -2200,9 +2199,9 @@ No first char No need char A 0: A - a + a 0: a - + /[[:lower:]]/Ii Capturing subpattern count = 0 Options: caseless @@ -2210,7 +2209,7 @@ No first char No need char A 0: A - a + a 0: a /((?-i)[[:lower:]])[[:lower:]]/Ii @@ -2229,7 +2228,7 @@ No need char 1: a Ab No match - AB + AB No match /[\200-\110]/I @@ -2543,7 +2542,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 +2558,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 +2614,7 @@ Capturing subpattern count = 2 Options: anchored No first char No need char - aabbaa + aabbaa 0: aabbaa 1: bb 2: b @@ -2625,7 +2624,7 @@ Capturing subpattern count = 1 Options: anchored No first char No need char - aabbaa + aabbaa 0: aabbaa 1: bb @@ -2634,16 +2633,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 +2651,7 @@ Capturing subpattern count = 1 Options: anchored No first char No need char - aabbaa + aabbaa 0: aabbaa 1: b @@ -2661,7 +2660,7 @@ Capturing subpattern count = 1 Options: anchored No first char No need char - aabbbaa + aabbbaa 0: aabbbaa 1: bb @@ -2670,7 +2669,7 @@ Capturing subpattern count = 3 Options: anchored No first char No need char - aabbbaa + aabbbaa 0: aabbbaa 1: aa 2: bbb @@ -2681,75 +2680,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 0 + 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 0 + 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 0 + [\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 0 + [\x00-\x08\x0b\x0e-\x1f!-\xff] + 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 0 + a + 01 Opt + NC b + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options @@ -2759,22 +2756,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 0 + Bra 1 + a + 01 Opt + NC b + Ket + 00 Opt + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 No options @@ -2786,17 +2783,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 0 + NC abc + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: caseless extended @@ -2804,47 +2801,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 0 + 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 0 + 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 0 + 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 0 + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options @@ -2853,36 +2850,36 @@ No need char \ 0: -/\Q\Ex/D +/\Q\Ex/DZ ------------------------------------------------------------------ - 0 5 Bra 0 - 3 x - 5 5 Ket - 8 End + Bra 0 + 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 0 + + 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 0 + a + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options @@ -2892,15 +2889,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 0 + ab + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options @@ -2909,25 +2906,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 0 + 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 0 + x*+ + \w + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -2938,25 +2935,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 0 + 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 0 + x++ + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -2964,15 +2961,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 0 + Once + x + x{0,2} + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -2980,17 +2977,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 0 + Once + Brazero + Bra 1 + x + KetRmax + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 No options @@ -3010,7 +3007,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 +3020,7 @@ No need char 2: a *** Failers No match - 12345+ + 12345+ No match /a++b/I @@ -3064,8 +3061,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 +3076,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 0 + Once + Bra 1 + abc + Ket + Brazero + Bra 0 + Bra 1 + abc + Ket + Brazero + Bra 1 + abc + Ket + Ket + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 No options @@ -3120,14 +3117,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 0 + x + a++ + b + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -3137,14 +3134,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 0 + x + a++ + b + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -3154,26 +3151,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 0 + ^ + Bra 1 + Bra 2 + a+ + Ket + Bra 3 + [ab]+? + Ket + Bra 4 + [bc]+ + Ket + Bra 5 + \w* + Ket + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 5 Partial matching not supported @@ -3181,15 +3178,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 0 + ^ + x + a++ + b + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -3197,17 +3194,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 0 + ^ + x + Bra 1 + a+? + Ket + b + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Partial matching not supported @@ -3248,39 +3245,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 0 + [\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 0 + [\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 0 + [\x09-\x0d a-e] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options @@ -3301,37 +3295,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 0 + 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 0 + $<.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 +3344,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 +3379,7 @@ No need char 0: bc123bc 1: bc 2: bc - + /a[b]/I Capturing subpattern count = 0 No options @@ -3536,11 +3528,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 +3564,7 @@ Need char = 'f' --->abcdef 0 ^ ^ d 0: abcdef - 1234abcdef + 1234abcdef --->1234abcdef 0 ^ ^ d 0: abcdef @@ -3580,7 +3572,7 @@ Need char = 'f' No match abcxyz No match - abcxyzf + abcxyzf --->abcxyzf 0 ^ ^ d No match @@ -3595,8 +3587,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 +3603,7 @@ Need char = 'f' 0: 4abcdef *** Failers No match - abcdef + abcdef --->abcdef 1 ^ \d 1 ^ \d @@ -3620,7 +3612,7 @@ No match 1 ^ \d 1 ^ \d No match - + /(?C255)ab/I Capturing subpattern count = 0 No options @@ -3630,7 +3622,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 +3651,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 +3664,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 +3688,7 @@ No need char 1 ^ ^ ) 0: abcabcabc 1: abc - abcabc\C!1!3 + abcabc\C!1!3 --->abcabc 0 ^ (abc(?C1))* 1 ^ ^ ) @@ -3707,7 +3699,7 @@ No need char --->*** Failers 0 ^ (abc(?C1))* 0: - abcabcabc\C!1!3 + abcabcabc\C!1!3 --->abcabcabc 0 ^ (abc(?C1))* 1 ^ ^ ) @@ -3741,7 +3733,7 @@ Callout 0: last capture = 1 ^ ^ ) 0: 123456 1: 456 - 123456789\C+ + 123456789\C+ Callout 0: last capture = -1 0: <unset> --->123456789 @@ -3813,13 +3805,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 +3836,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 +3888,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 +3946,7 @@ No need char 3: xxab *** Failers No match - xyab + xyab No match /(ab|(bc|(de|(?1))))/I @@ -3974,12 +3966,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 +3989,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 0 + Bra 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 0 + Bra 1 + a + Once + Recurse + KetRmax + b + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 No options @@ -4056,7 +4048,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 +4056,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 +4079,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 +4089,7 @@ No need char 0: xyz 1: xyz 2: y - xxyzxyzz + xxyzxyzz 0: xxyzxyzz 1: xxyzxyzz 2: xyzxyz @@ -4105,7 +4097,7 @@ No need char No match xxyzz No match - xxyzxyzxyzz + xxyzxyzxyzz No match /((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix @@ -4130,11 +4122,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 +4161,7 @@ No need char a=b 0: a=b 1: a - a=bc + a=bc 0: a=bc 1: a @@ -4186,26 +4178,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 0 + a + Bra 1 + b + Alt + c + Ket + d + Bra 2 + e + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 2 Named capturing subpatterns: @@ -4218,28 +4210,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 0 + Bra 0 + a + Bra 1 + c + Bra 2 + d + Ket + Ket + Ket + Bra 3 + a + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 3 Named capturing subpatterns: @@ -4250,23 +4242,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 0 + Bra 1 + a + Ket + Any + Any + Any + \1 + bbb + Once + Recurse + Ket + d + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Max back reference = 1 @@ -4304,7 +4296,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 +4304,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 +4316,7 @@ No need char bb 0: bb 1: b - bbaa + bbaa 0: bba 1: b @@ -4413,17 +4405,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 0 + Bra 0 + a + Ket + Bra 0 + bc + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: no_auto_capture @@ -4432,17 +4424,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 0 + Bra 1 + a + Ket + Bra 0 + bc + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Named capturing subpatterns: @@ -4454,17 +4446,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 0 + Bra 0 + a + Ket + Bra 1 + bc + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Named capturing subpatterns: @@ -4540,22 +4532,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 0 + Bra 1 + Ket + Bra 2 + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 2 Named capturing subpatterns: @@ -4565,15 +4557,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 0 + Bra 1 + Ket + Bra 2 + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 2 Named capturing subpatterns: @@ -4623,7 +4615,7 @@ Need char = ']' 3: ,4234 *** Failers No match - [] + [] No match "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I @@ -4639,96 +4631,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 0 + Brazero + Bra 1 + a + Bra 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 0 + Brazero + Bra 1 + a + Bra 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 0 + Brazero + Bra 0 + Bra 1 + a + Bra 2 + b + Once + Recurse + Ket + c + Ket + Ket + Brazero + Bra 1 + a + Bra 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 0 + Once + [ab]{1,1} + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options @@ -4755,15 +4747,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 0 + a* + Any* + b + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -4772,19 +4764,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 0 + Brazero + Bra 1 + a + Alt + b + KetRmax + Any? + c + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 No options @@ -4792,38 +4784,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 0 + 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 0 + 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 +4830,7 @@ Need char = 'e' +4 ^ ^ e +5 ^ ^ 0: abcde - abcdfe + abcdfe --->abcdfe +0 ^ a +1 ^^ b @@ -4846,17 +4838,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 0 + 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 +4867,7 @@ Need char = 'b' +2 ^ ^ b +3 ^ ^ 0: aaaab - aaaacb + aaaacb --->aaaacb +0 ^ a* +2 ^ ^ b @@ -4892,16 +4884,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 0 + 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 +4912,7 @@ Need char = 'b' +2 ^ ^ b +3 ^ ^ 0: aaaab - aaaacb + aaaacb --->aaaacb +0 ^ a+ +2 ^ ^ b @@ -4932,32 +4924,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 0 + Callout 255 0 9 + Bra 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 +5056,7 @@ No need char +12 ^ ^ 0: abcdabcd 1: cd - abcdcdcdcdcd + abcdcdcdcdcd --->abcdcdcdcdcd +0 ^ (ab|cd){3,4} +1 ^ a @@ -5086,34 +5078,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 0 + Callout 255 0 14 + Bra 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 +5253,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 0 + Callout 255 0 21 + Bra 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 + Bra 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 + Bra 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 + Bra 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 + Bra 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 +5372,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 +5381,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 +5402,7 @@ Partial match Partial match abcd\P Partial match - abcde\P + abcde\P 0: abcde the quick brown abc\P Partial match @@ -5418,7 +5410,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 +5425,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 +5435,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 +5443,7 @@ Partial match Partial match 02/\P Partial match - 02/0\P + 02/0\P Partial match 02/1\P Partial match @@ -5467,11 +5459,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 +5472,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 +5509,7 @@ Partial match Partial match c12\P Partial match - c123\P + c123\P 0: c123 /^(?:\d){3,5}X/I @@ -5537,13 +5529,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 +5553,7 @@ No study data No match bca No match - + /abc/IF>testsavedregex Capturing subpattern count = 0 No options @@ -5595,9 +5587,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 +5607,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 @@ -5644,7 +5636,7 @@ 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 @@ -5654,9 +5646,9 @@ 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 @@ -5666,15 +5658,15 @@ 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 +5676,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 +5690,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 +5923,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 +5936,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 +5947,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 +5958,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 +5971,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 +6011,7 @@ No need char 1: a1 2: a1 C a1 (2) A - a2b\CA + a2b\CA 0: a2b 1: a2b 2: <unset> @@ -6027,14 +6019,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 +6040,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 +6054,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 +6068,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 +6089,7 @@ No need char 1: a1 2: a1 G a1 (2) A - a2b\GA + a2b\GA 0: a2b 1: a2b 2: <unset> @@ -6105,14 +6097,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 +6118,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 +6132,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,14 +6146,14 @@ 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: @@ -6175,18 +6167,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 @@ -6227,7 +6219,7 @@ No need char 0: b ** Failers No match - abc + abc No match /(?:(?(ZZ)a|b)(?P<ZZ>X))+/I @@ -6283,7 +6275,7 @@ No need char bXXaYYaY 0: bXXaYYaY 1: Y - bXYaXXaX + bXYaXXaX 0: bX 1: X @@ -6320,7 +6312,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 +6330,7 @@ Need char = 'c' 0: abc xyz\r\nabc\<crlf> 0: abc - ** Failers + ** Failers No match xyz\nabc\<cr> No match @@ -6350,7 +6342,7 @@ No match No match xyz\rabc\<lf> No match - + /abc$/Im<lf> Capturing subpattern count = 0 Options: multiline @@ -6359,29 +6351,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 +6384,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 +6399,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 +6414,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 +6430,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 +6506,7 @@ Capturing subpattern count = 102 Options: extended No first char No need char - XY\O400 + XY\O400 0: XY 1: 2: @@ -6669,15 +6661,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 0 + ^ + a*+ + b + \d + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -6685,15 +6677,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 0 + ^ + a*+ + b + \d + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -6701,15 +6693,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 0 + ^ + a*+ + b + \d + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -6717,15 +6709,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 0 + ^ + a++ + A + \d + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -6736,18 +6728,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 0 + ^ + a* + NC A + \d + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -6797,8 +6789,8 @@ Starting byte set: a b a )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) - ))) -/Ix + ))) +/Ix Capturing subpattern count = 203 Options: extended First char = 'a' @@ -6821,598 +6813,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 0 + a*+ + \d + Ket + End ------------------------------------------------------------------ -/a*\D/B +/a*\D/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 a* - 5 \D - 6 6 Ket - 9 End + Bra 0 + 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 + 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 + 0*+ + \D + Ket + End ------------------------------------------------------------------ -/a*\s/B +/a*\s/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 a*+ - 5 \s - 6 6 Ket - 9 End + Bra 0 + a*+ + \s + Ket + End ------------------------------------------------------------------ -/a*\S/B +/a*\S/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 a* - 5 \S - 6 6 Ket - 9 End + Bra 0 + a* + \S + Ket + End ------------------------------------------------------------------ -/ *\s/B +/ *\s/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 * - 5 \s - 6 6 Ket - 9 End + Bra 0 + * + \s + Ket + End ------------------------------------------------------------------ -/ *\S/B +/ *\S/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 *+ - 5 \S - 6 6 Ket - 9 End + Bra 0 + *+ + \S + Ket + End ------------------------------------------------------------------ -/a*\w/B +/a*\w/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 a* - 5 \w - 6 6 Ket - 9 End + Bra 0 + a* + \w + Ket + End ------------------------------------------------------------------ -/a*\W/B +/a*\W/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 a*+ - 5 \W - 6 6 Ket - 9 End + Bra 0 + a*+ + \W + Ket + End ------------------------------------------------------------------ -/=*\w/B +/=*\w/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 =*+ - 5 \w - 6 6 Ket - 9 End + Bra 0 + =*+ + \w + Ket + End ------------------------------------------------------------------ -/=*\W/B +/=*\W/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 =* - 5 \W - 6 6 Ket - 9 End + Bra 0 + =* + \W + Ket + End ------------------------------------------------------------------ -/\d*a/B +/\d*a/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \d*+ - 5 a - 7 7 Ket - 10 End + Bra 0 + \d*+ + a + Ket + End ------------------------------------------------------------------ -/\d*2/B +/\d*2/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \d* - 5 2 - 7 7 Ket - 10 End + Bra 0 + \d* + 2 + Ket + End ------------------------------------------------------------------ -/\d*\d/B +/\d*\d/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \d* - 5 \d - 6 6 Ket - 9 End + Bra 0 + \d* + \d + Ket + End ------------------------------------------------------------------ -/\d*\D/B +/\d*\D/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \d*+ - 5 \D - 6 6 Ket - 9 End + Bra 0 + \d*+ + \D + Ket + End ------------------------------------------------------------------ -/\d*\s/B +/\d*\s/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \d*+ - 5 \s - 6 6 Ket - 9 End + Bra 0 + \d*+ + \s + Ket + End ------------------------------------------------------------------ -/\d*\S/B +/\d*\S/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \d* - 5 \S - 6 6 Ket - 9 End + Bra 0 + \d* + \S + Ket + End ------------------------------------------------------------------ -/\d*\w/B +/\d*\w/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \d* - 5 \w - 6 6 Ket - 9 End + Bra 0 + \d* + \w + Ket + End ------------------------------------------------------------------ -/\d*\W/B +/\d*\W/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \d*+ - 5 \W - 6 6 Ket - 9 End + Bra 0 + \d*+ + \W + Ket + End ------------------------------------------------------------------ -/\D*a/B +/\D*a/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \D* - 5 a - 7 7 Ket - 10 End + Bra 0 + \D* + a + Ket + End ------------------------------------------------------------------ -/\D*2/B +/\D*2/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \D*+ - 5 2 - 7 7 Ket - 10 End + Bra 0 + \D*+ + 2 + Ket + End ------------------------------------------------------------------ -/\D*\d/B +/\D*\d/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \D*+ - 5 \d - 6 6 Ket - 9 End + Bra 0 + \D*+ + \d + Ket + End ------------------------------------------------------------------ -/\D*\D/B +/\D*\D/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \D* - 5 \D - 6 6 Ket - 9 End + Bra 0 + \D* + \D + Ket + End ------------------------------------------------------------------ -/\D*\s/B +/\D*\s/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \D* - 5 \s - 6 6 Ket - 9 End + Bra 0 + \D* + \s + Ket + End ------------------------------------------------------------------ -/\D*\S/B +/\D*\S/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \D* - 5 \S - 6 6 Ket - 9 End + Bra 0 + \D* + \S + Ket + End ------------------------------------------------------------------ -/\D*\w/B +/\D*\w/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \D* - 5 \w - 6 6 Ket - 9 End + Bra 0 + \D* + \w + Ket + End ------------------------------------------------------------------ -/\D*\W/B +/\D*\W/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \D* - 5 \W - 6 6 Ket - 9 End + Bra 0 + \D* + \W + Ket + End ------------------------------------------------------------------ -/\s*a/B +/\s*a/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \s*+ - 5 a - 7 7 Ket - 10 End + Bra 0 + \s*+ + a + Ket + End ------------------------------------------------------------------ -/\s*2/B +/\s*2/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \s*+ - 5 2 - 7 7 Ket - 10 End + Bra 0 + \s*+ + 2 + Ket + End ------------------------------------------------------------------ -/\s*\d/B +/\s*\d/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \s*+ - 5 \d - 6 6 Ket - 9 End + Bra 0 + \s*+ + \d + Ket + End ------------------------------------------------------------------ -/\s*\D/B +/\s*\D/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \s* - 5 \D - 6 6 Ket - 9 End + Bra 0 + \s* + \D + Ket + End ------------------------------------------------------------------ -/\s*\s/B +/\s*\s/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \s* - 5 \s - 6 6 Ket - 9 End + Bra 0 + \s* + \s + Ket + End ------------------------------------------------------------------ -/\s*\S/B +/\s*\S/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \s*+ - 5 \S - 6 6 Ket - 9 End + Bra 0 + \s*+ + \S + Ket + End ------------------------------------------------------------------ -/\s*\w/B +/\s*\w/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \s*+ - 5 \w - 6 6 Ket - 9 End + Bra 0 + \s*+ + \w + Ket + End ------------------------------------------------------------------ -/\s*\W/B +/\s*\W/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \s* - 5 \W - 6 6 Ket - 9 End + Bra 0 + \s* + \W + Ket + End ------------------------------------------------------------------ -/\S*a/B +/\S*a/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \S* - 5 a - 7 7 Ket - 10 End + Bra 0 + \S* + a + Ket + End ------------------------------------------------------------------ -/\S*2/B +/\S*2/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \S* - 5 2 - 7 7 Ket - 10 End + Bra 0 + \S* + 2 + Ket + End ------------------------------------------------------------------ -/\S*\d/B +/\S*\d/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \S* - 5 \d - 6 6 Ket - 9 End + Bra 0 + \S* + \d + Ket + End ------------------------------------------------------------------ -/\S*\D/B +/\S*\D/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \S* - 5 \D - 6 6 Ket - 9 End + Bra 0 + \S* + \D + Ket + End ------------------------------------------------------------------ -/\S*\s/B +/\S*\s/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \S*+ - 5 \s - 6 6 Ket - 9 End + Bra 0 + \S*+ + \s + Ket + End ------------------------------------------------------------------ -/\S*\S/B +/\S*\S/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \S* - 5 \S - 6 6 Ket - 9 End + Bra 0 + \S* + \S + Ket + End ------------------------------------------------------------------ -/\S*\w/B +/\S*\w/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \S* - 5 \w - 6 6 Ket - 9 End + Bra 0 + \S* + \w + Ket + End ------------------------------------------------------------------ -/\S*\W/B +/\S*\W/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \S* - 5 \W - 6 6 Ket - 9 End + Bra 0 + \S* + \W + Ket + End ------------------------------------------------------------------ -/\w*a/B +/\w*a/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \w* - 5 a - 7 7 Ket - 10 End + Bra 0 + \w* + a + Ket + End ------------------------------------------------------------------ -/\w*2/B +/\w*2/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \w* - 5 2 - 7 7 Ket - 10 End + Bra 0 + \w* + 2 + Ket + End ------------------------------------------------------------------ -/\w*\d/B +/\w*\d/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \w* - 5 \d - 6 6 Ket - 9 End + Bra 0 + \w* + \d + Ket + End ------------------------------------------------------------------ -/\w*\D/B +/\w*\D/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \w* - 5 \D - 6 6 Ket - 9 End + Bra 0 + \w* + \D + Ket + End ------------------------------------------------------------------ -/\w*\s/B +/\w*\s/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \w*+ - 5 \s - 6 6 Ket - 9 End + Bra 0 + \w*+ + \s + Ket + End ------------------------------------------------------------------ -/\w*\S/B +/\w*\S/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \w* - 5 \S - 6 6 Ket - 9 End + Bra 0 + \w* + \S + Ket + End ------------------------------------------------------------------ -/\w*\w/B +/\w*\w/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \w* - 5 \w - 6 6 Ket - 9 End + Bra 0 + \w* + \w + Ket + End ------------------------------------------------------------------ -/\w*\W/B +/\w*\W/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \w*+ - 5 \W - 6 6 Ket - 9 End + Bra 0 + \w*+ + \W + Ket + End ------------------------------------------------------------------ -/\W*a/B +/\W*a/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \W*+ - 5 a - 7 7 Ket - 10 End + Bra 0 + \W*+ + a + Ket + End ------------------------------------------------------------------ -/\W*2/B +/\W*2/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \W*+ - 5 2 - 7 7 Ket - 10 End + Bra 0 + \W*+ + 2 + Ket + End ------------------------------------------------------------------ -/\W*\d/B +/\W*\d/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \W*+ - 5 \d - 6 6 Ket - 9 End + Bra 0 + \W*+ + \d + Ket + End ------------------------------------------------------------------ -/\W*\D/B +/\W*\D/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \W* - 5 \D - 6 6 Ket - 9 End + Bra 0 + \W* + \D + Ket + End ------------------------------------------------------------------ -/\W*\s/B +/\W*\s/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \W* - 5 \s - 6 6 Ket - 9 End + Bra 0 + \W* + \s + Ket + End ------------------------------------------------------------------ -/\W*\S/B +/\W*\S/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \W* - 5 \S - 6 6 Ket - 9 End + Bra 0 + \W* + \S + Ket + End ------------------------------------------------------------------ -/\W*\w/B +/\W*\w/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \W*+ - 5 \w - 6 6 Ket - 9 End + Bra 0 + \W*+ + \w + Ket + End ------------------------------------------------------------------ -/\W*\W/B +/\W*\W/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \W* - 5 \W - 6 6 Ket - 9 End + Bra 0 + \W* + \W + Ket + End ------------------------------------------------------------------ -/[^a]+a/B +/[^a]+a/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 [^a]++ - 5 a - 7 7 Ket - 10 End + Bra 0 + [^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 0 + [^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 0 + [^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 0 + [^a]+ + b + Ket + End ------------------------------------------------------------------ -/[^a]+\d/B +/[^a]+\d/BZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 [^a]+ - 5 \d - 6 6 Ket - 9 End + Bra 0 + [^a]+ + \d + Ket + End ------------------------------------------------------------------ -/a*[^a]/B +/a*[^a]/BZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 a* - 5 [^a] - 7 7 Ket - 10 End + Bra 0 + a* + [^a] + Ket + End ------------------------------------------------------------------ /(?P<abc>x)(?P<xyz>y)/I @@ -7463,9 +7455,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 +7473,7 @@ Failed: reference to non-existent subpattern at offset 8 yy 0: yy 1: y - yx + yx 0: yx 1: x @@ -7495,7 +7487,7 @@ Failed: reference to non-existent subpattern at offset 8 yy 0: yy 1: y - yx + yx 0: yx 1: x @@ -7504,13 +7496,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 +7523,7 @@ No match 3: y ** Failers No match - x + x No match /^(?1)(abc)/ @@ -7543,113 +7535,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 0 + ^ + [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 0 + ^ + [\]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 0 + ^ + [\-a] + Ket + End +------------------------------------------------------------------ + +/^(?P>abc)[()](?<abc>)/BZ +------------------------------------------------------------------ + Bra 0 + ^ + Once + Recurse + Ket + [()] + Bra 1 + Ket + Ket + End +------------------------------------------------------------------ + +/^((?(abc)y)[()](?P<abc>x))+/BZ +------------------------------------------------------------------ + Bra 0 + ^ + Bra 1 + Cond + 2 Cond ref + y + Ket + [()] + Bra 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 0 + ^ + Once + Recurse + Ket + () + Bra 1 + Ket + Ket + End +------------------------------------------------------------------ + +/^(?P>abc)[a\Q(]\E(](?<abc>)/BZ +------------------------------------------------------------------ + Bra 0 + ^ + Once + Recurse + Ket + [(\]a] + Bra 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 0 + ^ + Once + Recurse + Ket + Bra 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 +7672,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 +7680,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 +7716,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 +7730,7 @@ No match No match addd No match - adbb + adbb No match /(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J @@ -7752,20 +7744,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 +7789,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 +7801,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 +7823,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> No match - a\rb\<any> + a\x85b\<any> +No match + a\rb\<anycrlf> No match /^abc./mgx<any> @@ -7865,7 +7863,6 @@ No match 0: abc9 /a/<cr><any> -Failed: inconsistent NEWLINE options at offset 0 /a/<any><crlf> Failed: inconsistent NEWLINE options at offset 0 @@ -7881,11 +7878,11 @@ 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/ @@ -7901,11 +7898,11 @@ 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/ @@ -7919,17 +7916,17 @@ 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\nb 0: a\x0ab @@ -7937,13 +7934,13 @@ No match 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 @@ -7957,7 +7954,7 @@ No match 0: aRb ** Failers No match - a\nb + a\nb No match /(?&abc)X(?<abc>P)/I @@ -7999,7 +7996,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 +8016,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 +8026,7 @@ No match 123axbaxbaxb456 0: x 1: x - + /(?:a(?&abc)b){1,5}(?<abc>x)/ 123axbaxbaxbx456 0: axbaxbaxbx @@ -8091,39 +8088,85 @@ 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 / End of testinput2 / diff --git a/ext/pcre/pcrelib/testdata/testoutput3 b/ext/pcre/pcrelib/testdata/testoutput3 index c539579832..839ae8a0dc 100644 --- a/ext/pcre/pcrelib/testdata/testoutput3 +++ b/ext/pcre/pcrelib/testdata/testoutput3 @@ -146,14 +146,14 @@ No match >>>\xba<<< 0: -/[[:alpha:]][[:lower:]][[:upper:]]/DLfr_FR +/[[:alpha:]][[:lower:]][[:upper:]]/DZLfr_FR ------------------------------------------------------------------ - 0 102 Bra 0 - 3 [A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\xff] - 36 [a-z\xb5\xdf-\xf6\xf8-\xff] - 69 [A-Z\xc0-\xd6\xd8-\xde] -102 102 Ket -105 End + Bra 0 + [A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\xff] + [a-z\xb5\xdf-\xf6\xf8-\xff] + [A-Z\xc0-\xd6\xd8-\xde] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options diff --git a/ext/pcre/pcrelib/testdata/testoutput5 b/ext/pcre/pcrelib/testdata/testoutput5 index 61c6842d77..cf80cd992b 100644 --- a/ext/pcre/pcrelib/testdata/testoutput5 +++ b/ext/pcre/pcrelib/testdata/testoutput5 @@ -1,114 +1,105 @@ -/\x{100}/8DM -Memory allocation (code space): 10 +/\x{100}/8DZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \x{100} - 6 6 Ket - 9 End + Bra 0 + \x{100} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 196 Need char = 128 -/\x{1000}/8DM -Memory allocation (code space): 11 +/\x{1000}/8DZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \x{1000} - 7 7 Ket - 10 End + Bra 0 + \x{1000} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 225 Need char = 128 -/\x{10000}/8DM -Memory allocation (code space): 12 +/\x{10000}/8DZ ------------------------------------------------------------------ - 0 8 Bra 0 - 3 \x{10000} - 8 8 Ket - 11 End + Bra 0 + \x{10000} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 240 Need char = 128 -/\x{100000}/8DM -Memory allocation (code space): 12 +/\x{100000}/8DZ ------------------------------------------------------------------ - 0 8 Bra 0 - 3 \x{100000} - 8 8 Ket - 11 End + Bra 0 + \x{100000} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 244 Need char = 128 -/\x{1000000}/8DM -Memory allocation (code space): 13 +/\x{1000000}/8DZ ------------------------------------------------------------------ - 0 9 Bra 0 - 3 \x{1000000} - 9 9 Ket - 12 End + Bra 0 + \x{1000000} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 249 Need char = 128 -/\x{4000000}/8DM -Memory allocation (code space): 14 +/\x{4000000}/8DZ ------------------------------------------------------------------ - 0 10 Bra 0 - 3 \x{4000000} - 10 10 Ket - 13 End + Bra 0 + \x{4000000} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 252 Need char = 128 -/\x{7fffFFFF}/8DM -Memory allocation (code space): 14 +/\x{7fffFFFF}/8DZ ------------------------------------------------------------------ - 0 10 Bra 0 - 3 \x{7fffffff} - 10 10 Ket - 13 End + Bra 0 + \x{7fffffff} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 253 Need char = 191 -/[\x{ff}]/8DM -Memory allocation (code space): 10 +/[\x{ff}]/8DZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \x{ff} - 6 6 Ket - 9 End + Bra 0 + \x{ff} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 195 Need char = 191 -/[\x{100}]/8DM -Memory allocation (code space): 15 +/[\x{100}]/8DZ ------------------------------------------------------------------ - 0 11 Bra 0 - 3 [\x{100}] - 11 11 Ket - 14 End + Bra 0 + [\x{100}] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 @@ -125,36 +116,36 @@ Failed: character value in \x{...} sequence is too large at offset 12 \x{100}a\x{1234}bcd 0: \x{100}a\x{1234} -/\x80/8D +/\x80/8DZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \x{80} - 6 6 Ket - 9 End + Bra 0 + \x{80} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 194 Need char = 128 -/\xff/8D +/\xff/8DZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \x{ff} - 6 6 Ket - 9 End + Bra 0 + \x{ff} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 195 Need char = 191 -/\x{0041}\x{2262}\x{0391}\x{002e}/D8 +/\x{0041}\x{2262}\x{0391}\x{002e}/DZ8 ------------------------------------------------------------------ - 0 14 Bra 0 - 3 A\x{2262}\x{391}. - 14 14 Ket - 17 End + Bra 0 + A\x{2262}\x{391}. + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 @@ -163,12 +154,12 @@ Need char = '.' \x{0041}\x{2262}\x{0391}\x{002e} 0: A\x{2262}\x{391}. -/\x{D55c}\x{ad6d}\x{C5B4}/D8 +/\x{D55c}\x{ad6d}\x{C5B4}/DZ8 ------------------------------------------------------------------ - 0 15 Bra 0 - 3 \x{d55c}\x{ad6d}\x{c5b4} - 15 15 Ket - 18 End + Bra 0 + \x{d55c}\x{ad6d}\x{c5b4} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 @@ -177,12 +168,12 @@ Need char = 180 \x{D55c}\x{ad6d}\x{C5B4} 0: \x{d55c}\x{ad6d}\x{c5b4} -/\x{65e5}\x{672c}\x{8a9e}/D8 +/\x{65e5}\x{672c}\x{8a9e}/DZ8 ------------------------------------------------------------------ - 0 15 Bra 0 - 3 \x{65e5}\x{672c}\x{8a9e} - 15 15 Ket - 18 End + Bra 0 + \x{65e5}\x{672c}\x{8a9e} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 @@ -191,74 +182,74 @@ Need char = 158 \x{65e5}\x{672c}\x{8a9e} 0: \x{65e5}\x{672c}\x{8a9e} -/\x{80}/D8 +/\x{80}/DZ8 ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \x{80} - 6 6 Ket - 9 End + Bra 0 + \x{80} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 194 Need char = 128 -/\x{084}/D8 +/\x{084}/DZ8 ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \x{84} - 6 6 Ket - 9 End + Bra 0 + \x{84} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 194 Need char = 132 -/\x{104}/D8 +/\x{104}/DZ8 ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \x{104} - 6 6 Ket - 9 End + Bra 0 + \x{104} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 196 Need char = 132 -/\x{861}/D8 +/\x{861}/DZ8 ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \x{861} - 7 7 Ket - 10 End + Bra 0 + \x{861} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 224 Need char = 161 -/\x{212ab}/D8 +/\x{212ab}/DZ8 ------------------------------------------------------------------ - 0 8 Bra 0 - 3 \x{212ab} - 8 8 Ket - 11 End + Bra 0 + \x{212ab} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 240 Need char = 171 -/.{3,5}X/D8 +/.{3,5}X/DZ8 ------------------------------------------------------------------ - 0 13 Bra 0 - 3 Any{3} - 7 Any{0,2} - 11 X - 13 13 Ket - 16 End + Bra 0 + Any{3} + Any{0,2} + X + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -269,13 +260,13 @@ Need char = 'X' 0: \x{212ab}\x{212ab}\x{212ab}\x{861}X -/.{3,5}?/D8 +/.{3,5}?/DZ8 ------------------------------------------------------------------ - 0 11 Bra 0 - 3 Any{3} - 7 Any{0,2}? - 11 11 Ket - 14 End + Bra 0 + Any{3} + Any{0,2}? + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -285,11 +276,9 @@ No need char \x{212ab}\x{212ab}\x{212ab}\x{861} 0: \x{212ab}\x{212ab}\x{212ab} -/-- These tests are here rather than in testinput4 because Perl 5.6 has --/ -/-- some problems with UTF-8 support, in the area of \x{..} where the --/ -No match -/-- value is < 255. It grumbles about invalid UTF-8 strings. --/ -No match +/-- These tests are here rather than in testinput4 because Perl 5.6 has some +problems with UTF-8 support, in the area of \x{..} where the value is < 255. +It grumbles about invalid UTF-8 strings. --/ /^[a\x{c0}]b/8 \x{c0}b @@ -329,11 +318,9 @@ No match /(?<=\C)X/8 Failed: \C not allowed in lookbehind assertion at offset 6 -/-- This one is here not because it's different to Perl, but because the --/ -/-- way the captured single-byte is displayed. (In Perl it becomes a --/ -No match -/-- character, and you can't tell the difference.) --/ -No match +/-- This one is here not because it's different to Perl, but because the way +the captured single-byte is displayed. (In Perl it becomes a character, and you +can't tell the difference.) --/ /X(\C)(.*)/8 X\x{1234} @@ -345,13 +332,13 @@ No match 1: \x{0a} 2: abc -/^[ab]/8D +/^[ab]/8DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [ab] - 37 37 Ket - 40 End + Bra 0 + ^ + [ab] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored utf8 @@ -368,13 +355,13 @@ No match \x{100} No match -/^[^ab]/8D +/^[^ab]/8DZ ------------------------------------------------------------------ - 0 37 Bra 0 - 3 ^ - 4 [\x00-`c-\xff] (neg) - 37 37 Ket - 40 End + Bra 0 + ^ + [\x00-`c-\xff] (neg) + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored utf8 @@ -391,12 +378,12 @@ No need char aaa No match -/[^ab\xC0-\xF0]/8SD +/[^ab\xC0-\xF0]/8SDZ ------------------------------------------------------------------ - 0 36 Bra 0 - 3 [\x00-`c-\xbf\xf1-\xff] (neg) - 36 36 Ket - 39 End + Bra 0 + [\x00-`c-\xbf\xf1-\xff] (neg) + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 @@ -427,13 +414,13 @@ No match \x{f0} No match -/Ā{3,4}/8SD +/Ā{3,4}/8SDZ ------------------------------------------------------------------ - 0 11 Bra 0 - 3 \x{100}{3} - 8 \x{100}? - 11 11 Ket - 14 End + Bra 0 + \x{100}{3} + \x{100}? + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -444,16 +431,16 @@ Study returned NULL \x{100}\x{100}\x{100}\x{100\x{100} 0: \x{100}\x{100}\x{100} -/(\x{100}+|x)/8SD +/(\x{100}+|x)/8SDZ ------------------------------------------------------------------ - 0 19 Bra 0 - 3 8 Bra 1 - 8 \x{100}+ - 11 5 Alt - 14 x - 16 13 Ket - 19 19 Ket - 22 End + Bra 0 + Bra 1 + \x{100}+ + Alt + x + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Partial matching not supported @@ -462,17 +449,17 @@ No first char No need char Starting byte set: x \xc4 -/(\x{100}*a|x)/8SD +/(\x{100}*a|x)/8SDZ ------------------------------------------------------------------ - 0 21 Bra 0 - 3 10 Bra 1 - 8 \x{100}*+ - 11 a - 13 5 Alt - 16 x - 18 15 Ket - 21 21 Ket - 24 End + Bra 0 + Bra 1 + \x{100}*+ + a + Alt + x + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Partial matching not supported @@ -481,17 +468,17 @@ No first char No need char Starting byte set: a x \xc4 -/(\x{100}{0,2}a|x)/8SD +/(\x{100}{0,2}a|x)/8SDZ ------------------------------------------------------------------ - 0 23 Bra 0 - 3 12 Bra 1 - 8 \x{100}{0,2} - 13 a - 15 5 Alt - 18 x - 20 17 Ket - 23 23 Ket - 26 End + Bra 0 + Bra 1 + \x{100}{0,2} + a + Alt + x + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Partial matching not supported @@ -500,18 +487,18 @@ No first char No need char Starting byte set: a x \xc4 -/(\x{100}{1,2}a|x)/8SD +/(\x{100}{1,2}a|x)/8SDZ ------------------------------------------------------------------ - 0 26 Bra 0 - 3 15 Bra 1 - 8 \x{100} - 11 \x{100}{0,1} - 16 a - 18 5 Alt - 21 x - 23 20 Ket - 26 26 Ket - 29 End + Bra 0 + Bra 1 + \x{100} + \x{100}{0,1} + a + Alt + x + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Partial matching not supported @@ -544,24 +531,24 @@ No match \x{100}\x{100}abcd No match -/\x{100}/8D +/\x{100}/8DZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \x{100} - 6 6 Ket - 9 End + Bra 0 + \x{100} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 196 Need char = 128 -/\x{100}*/8D +/\x{100}*/8DZ ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \x{100}* - 6 6 Ket - 9 End + Bra 0 + \x{100}* + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -569,13 +556,13 @@ Options: utf8 No first char No need char -/a\x{100}*/8D +/a\x{100}*/8DZ ------------------------------------------------------------------ - 0 8 Bra 0 - 3 a - 5 \x{100}* - 8 8 Ket - 11 End + Bra 0 + a + \x{100}* + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -583,13 +570,13 @@ Options: utf8 First char = 'a' No need char -/ab\x{100}*/8D +/ab\x{100}*/8DZ ------------------------------------------------------------------ - 0 10 Bra 0 - 3 ab - 7 \x{100}* - 10 10 Ket - 13 End + Bra 0 + ab + \x{100}* + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -597,13 +584,13 @@ Options: utf8 First char = 'a' Need char = 'b' -/a\x{100}\x{101}*/8D +/a\x{100}\x{101}*/8DZ ------------------------------------------------------------------ - 0 11 Bra 0 - 3 a\x{100} - 8 \x{101}* - 11 11 Ket - 14 End + Bra 0 + a\x{100} + \x{101}* + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -611,13 +598,13 @@ Options: utf8 First char = 'a' Need char = 128 -/a\x{100}\x{101}+/8D +/a\x{100}\x{101}+/8DZ ------------------------------------------------------------------ - 0 11 Bra 0 - 3 a\x{100} - 8 \x{101}+ - 11 11 Ket - 14 End + Bra 0 + a\x{100} + \x{101}+ + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -625,13 +612,13 @@ Options: utf8 First char = 'a' Need char = 129 -/\x{100}*A/8D +/\x{100}*A/8DZ ------------------------------------------------------------------ - 0 8 Bra 0 - 3 \x{100}*+ - 6 A - 8 8 Ket - 11 End + Bra 0 + \x{100}*+ + A + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -641,16 +628,16 @@ Need char = 'A' A 0: A -/\x{100}*\d(?R)/8D +/\x{100}*\d(?R)/8DZ ------------------------------------------------------------------ - 0 16 Bra 0 - 3 \x{100}*+ - 6 \d - 7 6 Once - 10 0 Recurse - 13 6 Ket - 16 16 Ket - 19 End + Bra 0 + \x{100}*+ + \d + Once + Recurse + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -658,37 +645,36 @@ Options: utf8 No first char No need char -/[^\x{c4}]/D +/[^\x{c4}]/DZ ------------------------------------------------------------------ - 0 5 Bra 0 - 3 [^\xc4] - 5 5 Ket - 8 End + Bra 0 + [^\xc4] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options No first char No need char -/[^\x{c4}]/8D +/[^\x{c4}]/8DZ ------------------------------------------------------------------ - 0 36 Bra 0 - 3 [\x00-\xc3\xc5-\xff] (neg) - 36 36 Ket - 39 End + Bra 0 + [\x00-\xc3\xc5-\xff] (neg) + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 No first char No need char -/[\x{100}]/8DM -Memory allocation (code space): 15 +/[\x{100}]/8DZ ------------------------------------------------------------------ - 0 11 Bra 0 - 3 [\x{100}] - 11 11 Ket - 14 End + Bra 0 + [\x{100}] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 @@ -703,13 +689,12 @@ No need char *** Failers No match -/[Z\x{100}]/8DM -Memory allocation (code space): 47 +/[Z\x{100}]/8DZ ------------------------------------------------------------------ - 0 43 Bra 0 - 3 [Z\x{100}] - 43 43 Ket - 46 End + Bra 0 + [Z\x{100}] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 @@ -739,24 +724,24 @@ No match \x{ff} No match -/[z-\x{100}]/8D +/[z-\x{100}]/8DZ ------------------------------------------------------------------ - 0 12 Bra 0 - 3 [z-\x{100}] - 12 12 Ket - 15 End + Bra 0 + [z-\x{100}] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 No first char No need char -/[z\Qa-d]Ā\E]/8D +/[z\Qa-d]Ā\E]/8DZ ------------------------------------------------------------------ - 0 43 Bra 0 - 3 [\-\]adz\x{100}] - 43 43 Ket - 46 End + Bra 0 + [\-\]adz\x{100}] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 @@ -767,12 +752,12 @@ No need char Ā 0: \x{100} -/[\xFF]/D +/[\xFF]/DZ ------------------------------------------------------------------ - 0 5 Bra 0 - 3 \xff - 5 5 Ket - 8 End + Bra 0 + \xff + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options @@ -781,12 +766,12 @@ No need char >\xff< 0: \xff -/[\xff]/D8 +/[\xff]/DZ8 ------------------------------------------------------------------ - 0 6 Bra 0 - 3 \x{ff} - 6 6 Ket - 9 End + Bra 0 + \x{ff} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 @@ -795,24 +780,24 @@ Need char = 191 >\x{ff}< 0: \x{ff} -/[^\xFF]/D +/[^\xFF]/DZ ------------------------------------------------------------------ - 0 5 Bra 0 - 3 [^\xff] - 5 5 Ket - 8 End + Bra 0 + [^\xff] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options No first char No need char -/[^\xff]/8D +/[^\xff]/8DZ ------------------------------------------------------------------ - 0 36 Bra 0 - 3 [\x00-\xfe] (neg) - 36 36 Ket - 39 End + Bra 0 + [\x00-\xfe] (neg) + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 @@ -852,12 +837,12 @@ Failed: invalid UTF-8 string at offset 0 /xxx/8 Failed: invalid UTF-8 string at offset 1 -/xxx/8?D +/xxx/8?DZ ------------------------------------------------------------------ - 0 15 Bra 0 - 3 \X{c0}\X{c0}\X{c0}xxx - 15 15 Ket - 18 End + Bra 0 + \X{c0}\X{c0}\X{c0}xxx + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 no_utf8_check @@ -910,170 +895,170 @@ No match \xfd\x83\x80\x80\x80\x80 No match -/\x{100}abc(xyz(?1))/8D +/\x{100}abc(xyz(?1))/8DZ ------------------------------------------------------------------ - 0 35 Bra 0 - 3 \x{100}abc - 12 20 Bra 1 - 17 xyz - 23 6 Once - 26 12 Recurse - 29 6 Ket - 32 20 Ket - 35 35 Ket - 38 End + Bra 0 + \x{100}abc + Bra 1 + xyz + Once + Recurse + Ket + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: utf8 First char = 196 Need char = 'z' -/[^\x{100}]abc(xyz(?1))/8D +/[^\x{100}]abc(xyz(?1))/8DZ ------------------------------------------------------------------ - 0 40 Bra 0 - 3 [^\x{100}] - 11 abc - 17 20 Bra 1 - 22 xyz - 28 6 Once - 31 17 Recurse - 34 6 Ket - 37 20 Ket - 40 40 Ket - 43 End + Bra 0 + [^\x{100}] + abc + Bra 1 + xyz + Once + Recurse + Ket + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: utf8 No first char Need char = 'z' -/[ab\x{100}]abc(xyz(?1))/8D +/[ab\x{100}]abc(xyz(?1))/8DZ ------------------------------------------------------------------ - 0 72 Bra 0 - 3 [ab\x{100}] - 43 abc - 49 20 Bra 1 - 54 xyz - 60 6 Once - 63 49 Recurse - 66 6 Ket - 69 20 Ket - 72 72 Ket - 75 End + Bra 0 + [ab\x{100}] + abc + Bra 1 + xyz + Once + Recurse + Ket + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 1 Options: utf8 No first char Need char = 'z' -/(\x{100}(b(?2)c))?/D8 ------------------------------------------------------------------- - 0 36 Bra 0 - 3 Brazero - 4 29 Bra 1 - 9 \x{100} - 12 18 Bra 2 - 17 b - 19 6 Once - 22 12 Recurse - 25 6 Ket - 28 c - 30 18 Ket - 33 29 Ket - 36 36 Ket - 39 End +/(\x{100}(b(?2)c))?/DZ8 +------------------------------------------------------------------ + Bra 0 + Brazero + Bra 1 + \x{100} + Bra 2 + b + Once + Recurse + Ket + c + Ket + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 2 Options: utf8 No first char No need char -/(\x{100}(b(?2)c)){0,2}/D8 ------------------------------------------------------------------- - 0 75 Bra 0 - 3 Brazero - 4 68 Bra 0 - 7 29 Bra 1 - 12 \x{100} - 15 18 Bra 2 - 20 b - 22 6 Once - 25 15 Recurse - 28 6 Ket - 31 c - 33 18 Ket - 36 29 Ket - 39 Brazero - 40 29 Bra 1 - 45 \x{100} - 48 18 Bra 2 - 53 b - 55 6 Once - 58 15 Recurse - 61 6 Ket - 64 c - 66 18 Ket - 69 29 Ket - 72 68 Ket - 75 75 Ket - 78 End +/(\x{100}(b(?2)c)){0,2}/DZ8 +------------------------------------------------------------------ + Bra 0 + Brazero + Bra 0 + Bra 1 + \x{100} + Bra 2 + b + Once + Recurse + Ket + c + Ket + Ket + Brazero + Bra 1 + \x{100} + Bra 2 + b + Once + Recurse + Ket + c + Ket + Ket + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 2 Options: utf8 No first char No need char -/(\x{100}(b(?1)c))?/D8 ------------------------------------------------------------------- - 0 36 Bra 0 - 3 Brazero - 4 29 Bra 1 - 9 \x{100} - 12 18 Bra 2 - 17 b - 19 6 Once - 22 4 Recurse - 25 6 Ket - 28 c - 30 18 Ket - 33 29 Ket - 36 36 Ket - 39 End +/(\x{100}(b(?1)c))?/DZ8 +------------------------------------------------------------------ + Bra 0 + Brazero + Bra 1 + \x{100} + Bra 2 + b + Once + Recurse + Ket + c + Ket + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 2 Options: utf8 No first char No need char -/(\x{100}(b(?1)c)){0,2}/D8 ------------------------------------------------------------------- - 0 75 Bra 0 - 3 Brazero - 4 68 Bra 0 - 7 29 Bra 1 - 12 \x{100} - 15 18 Bra 2 - 20 b - 22 6 Once - 25 7 Recurse - 28 6 Ket - 31 c - 33 18 Ket - 36 29 Ket - 39 Brazero - 40 29 Bra 1 - 45 \x{100} - 48 18 Bra 2 - 53 b - 55 6 Once - 58 7 Recurse - 61 6 Ket - 64 c - 66 18 Ket - 69 29 Ket - 72 68 Ket - 75 75 Ket - 78 End +/(\x{100}(b(?1)c)){0,2}/DZ8 +------------------------------------------------------------------ + Bra 0 + Brazero + Bra 0 + Bra 1 + \x{100} + Bra 2 + b + Once + Recurse + Ket + c + Ket + Ket + Brazero + Bra 1 + \x{100} + Bra 2 + b + Once + Recurse + Ket + c + Ket + Ket + Ket + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 2 Options: utf8 @@ -1094,13 +1079,13 @@ No need char a\x{1234}b 0: a\x{1234}b -/^\ሴ/8D +/^\ሴ/8DZ ------------------------------------------------------------------ - 0 8 Bra 0 - 3 ^ - 4 \x{1234} - 8 8 Ket - 11 End + Bra 0 + ^ + \x{1234} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: anchored utf8 @@ -1120,13 +1105,13 @@ Need char = 191 \777 0: \x{1ff} -/\x{100}*\d/8D +/\x{100}*\d/8DZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \x{100}*+ - 6 \d - 7 7 Ket - 10 End + Bra 0 + \x{100}*+ + \d + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -1134,13 +1119,13 @@ Options: utf8 No first char No need char -/\x{100}*\s/8D +/\x{100}*\s/8DZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \x{100}*+ - 6 \s - 7 7 Ket - 10 End + Bra 0 + \x{100}*+ + \s + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -1148,13 +1133,13 @@ Options: utf8 No first char No need char -/\x{100}*\w/8D +/\x{100}*\w/8DZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \x{100}*+ - 6 \w - 7 7 Ket - 10 End + Bra 0 + \x{100}*+ + \w + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -1162,13 +1147,13 @@ Options: utf8 No first char No need char -/\x{100}*\D/8D +/\x{100}*\D/8DZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \x{100}* - 6 \D - 7 7 Ket - 10 End + Bra 0 + \x{100}* + \D + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -1176,13 +1161,13 @@ Options: utf8 No first char No need char -/\x{100}*\S/8D +/\x{100}*\S/8DZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \x{100}* - 6 \S - 7 7 Ket - 10 End + Bra 0 + \x{100}* + \S + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -1190,13 +1175,13 @@ Options: utf8 No first char No need char -/\x{100}*\W/8D +/\x{100}*\W/8DZ ------------------------------------------------------------------ - 0 7 Bra 0 - 3 \x{100}* - 6 \W - 7 7 Ket - 10 End + Bra 0 + \x{100}* + \W + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -1204,13 +1189,13 @@ Options: utf8 No first char No need char -/\x{100}+\x{200}/8D +/\x{100}+\x{200}/8DZ ------------------------------------------------------------------ - 0 9 Bra 0 - 3 \x{100}++ - 6 \x{200} - 9 9 Ket - 12 End + Bra 0 + \x{100}++ + \x{200} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -1218,13 +1203,13 @@ Options: utf8 First char = 196 Need char = 128 -/\x{100}+X/8D +/\x{100}+X/8DZ ------------------------------------------------------------------ - 0 8 Bra 0 - 3 \x{100}++ - 6 X - 8 8 Ket - 11 End + Bra 0 + \x{100}++ + X + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -1232,13 +1217,13 @@ Options: utf8 First char = 196 Need char = 'X' -/X+\x{200}/8D +/X+\x{200}/8DZ ------------------------------------------------------------------ - 0 8 Bra 0 - 3 X++ - 5 \x{200} - 8 8 Ket - 11 End + Bra 0 + X++ + \x{200} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -1269,25 +1254,25 @@ Matched, but too many substrings 13: 14: -/^[\x{100}\E-\Q\E\x{150}]/B8 +/^[\x{100}\E-\Q\E\x{150}]/BZ8 ------------------------------------------------------------------ - 0 14 Bra 0 - 3 ^ - 4 [\x{100}-\x{150}] - 14 14 Ket - 17 End + Bra 0 + ^ + [\x{100}-\x{150}] + Ket + End ------------------------------------------------------------------ -/^[\QĀ\E-\QŐ\E]/B8 +/^[\QĀ\E-\QŐ\E]/BZ8 ------------------------------------------------------------------ - 0 14 Bra 0 - 3 ^ - 4 [\x{100}-\x{150}] - 14 14 Ket - 17 End + Bra 0 + ^ + [\x{100}-\x{150}] + Ket + End ------------------------------------------------------------------ -/^[\QĀ\E-\QŐ\E/B8 +/^[\QĀ\E-\QŐ\E/BZ8 Failed: missing terminating ] for character class at offset 15 /^abc./mgx8<any> diff --git a/ext/pcre/pcrelib/testdata/testoutput6 b/ext/pcre/pcrelib/testdata/testoutput6 index a8bb0adaaa..f6a1d0e229 100644 --- a/ext/pcre/pcrelib/testdata/testoutput6 +++ b/ext/pcre/pcrelib/testdata/testoutput6 @@ -548,73 +548,72 @@ No match WXYZ No match -/[\p{L}]/D +/[\p{L}]/DZ ------------------------------------------------------------------ - 0 11 Bra 0 - 3 [\p{L}] - 11 11 Ket - 14 End + Bra 0 + [\p{L}] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options No first char No need char -/[\p{^L}]/D +/[\p{^L}]/DZ ------------------------------------------------------------------ - 0 11 Bra 0 - 3 [\P{L}] - 11 11 Ket - 14 End + Bra 0 + [\P{L}] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options No first char No need char -/[\P{L}]/D +/[\P{L}]/DZ ------------------------------------------------------------------ - 0 11 Bra 0 - 3 [\P{L}] - 11 11 Ket - 14 End + Bra 0 + [\P{L}] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options No first char No need char -/[\P{^L}]/D +/[\P{^L}]/DZ ------------------------------------------------------------------ - 0 11 Bra 0 - 3 [\p{L}] - 11 11 Ket - 14 End + Bra 0 + [\p{L}] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 No options No first char No need char -/[abc\p{L}\x{0660}]/8D +/[abc\p{L}\x{0660}]/8DZ ------------------------------------------------------------------ - 0 46 Bra 0 - 3 [a-c\p{L}\x{660}] - 46 46 Ket - 49 End + Bra 0 + [a-c\p{L}\x{660}] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 No first char No need char -/[\p{Nd}]/8DM -Memory allocation (code space): 15 +/[\p{Nd}]/8DZ ------------------------------------------------------------------ - 0 11 Bra 0 - 3 [\p{Nd}] - 11 11 Ket - 14 End + Bra 0 + [\p{Nd}] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 @@ -623,13 +622,12 @@ No need char 1234 0: 1 -/[\p{Nd}+-]+/8DM -Memory allocation (code space): 48 +/[\p{Nd}+-]+/8DZ ------------------------------------------------------------------ - 0 44 Bra 0 - 3 [+\-\p{Nd}]+ - 44 44 Ket - 47 End + Bra 0 + [+\-\p{Nd}]+ + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Partial matching not supported @@ -779,48 +777,48 @@ No match A\x{391}\x{10427}\x{ff3a}\x{1fb8} 0: A\x{391}\x{10427}\x{ff3a}\x{1fb8} -/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8iD +/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8iDZ ------------------------------------------------------------------ - 0 21 Bra 0 - 3 NC A\x{391}\x{10427}\x{ff3a}\x{1fb0} - 21 21 Ket - 24 End + Bra 0 + NC A\x{391}\x{10427}\x{ff3a}\x{1fb0} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: caseless utf8 First char = 'A' (caseless) No need char -/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8D +/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8DZ ------------------------------------------------------------------ - 0 21 Bra 0 - 3 A\x{391}\x{10427}\x{ff3a}\x{1fb0} - 21 21 Ket - 24 End + Bra 0 + A\x{391}\x{10427}\x{ff3a}\x{1fb0} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 'A' Need char = 176 -/AB\x{1fb0}/8D +/AB\x{1fb0}/8DZ ------------------------------------------------------------------ - 0 11 Bra 0 - 3 AB\x{1fb0} - 11 11 Ket - 14 End + Bra 0 + AB\x{1fb0} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: utf8 First char = 'A' Need char = 176 -/AB\x{1fb0}/8Di +/AB\x{1fb0}/8DZi ------------------------------------------------------------------ - 0 11 Bra 0 - 3 NC AB\x{1fb0} - 11 11 Ket - 14 End + Bra 0 + NC AB\x{1fb0} + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: caseless utf8 @@ -857,12 +855,12 @@ Need char = 'B' (caseless) \x{e0} 0: \x{e0} -/[\x{105}-\x{109}]/8iD +/[\x{105}-\x{109}]/8iDZ ------------------------------------------------------------------ - 0 13 Bra 0 - 3 [\x{104}-\x{109}] - 13 13 Ket - 16 End + Bra 0 + [\x{104}-\x{109}] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: caseless utf8 @@ -881,12 +879,12 @@ No match \x{10a} No match -/[z-\x{100}]/8iD +/[z-\x{100}]/8iDZ ------------------------------------------------------------------ - 0 20 Bra 0 - 3 [Z\x{39c}\x{178}z-\x{101}] - 20 20 Ket - 23 End + Bra 0 + [Z\x{39c}\x{178}z-\x{101}] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: caseless utf8 @@ -919,12 +917,12 @@ No match y No match -/[z-\x{100}]/8Di +/[z-\x{100}]/8DZi ------------------------------------------------------------------ - 0 20 Bra 0 - 3 [Z\x{39c}\x{178}z-\x{101}] - 20 20 Ket - 23 End + Bra 0 + [Z\x{39c}\x{178}z-\x{101}] + Ket + End ------------------------------------------------------------------ Capturing subpattern count = 0 Options: caseless utf8 @@ -1432,4 +1430,18 @@ of case for anything other than the ASCII letters. / \x{1b00}\x{12000}\x{7c0}\x{a840}\x{10900} 0: \x{1b00}\x{12000}\x{7c0}\x{a840}\x{10900} +/The next two are special cases where the lengths of the different cases of the +same character differ. The first went wrong with heap fram storage; the 2nd +was broken in all cases./ + +/^\x{023a}+?(\x{0130}+)/8i + \x{023a}\x{2c65}\x{0130} + 0: \x{23a}\x{2c65}\x{130} + 1: \x{130} + +/^\x{023a}+([^X])/8i + \x{023a}\x{2c65}X + 0: \x{23a}\x{2c65} + 1: \x{2c65} + / End of testinput6 / diff --git a/ext/pcre/pcrelib/testdata/testoutput7 b/ext/pcre/pcrelib/testdata/testoutput7 index 5bddc1e153..6860b66146 100644 --- a/ext/pcre/pcrelib/testdata/testoutput7 +++ b/ext/pcre/pcrelib/testdata/testoutput7 @@ -6952,4 +6952,42 @@ No match \nfoo 0: \x0afoo +/^$/mg<any> + abc\r\rxyz + 0: + abc\n\rxyz + 0: + ** Failers +No match + abc\r\nxyz +No match + +/^X/m + XABC + 0: X + ** Failers +No match + XABC\B +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: \x0d\x0a + 0+ + 1: + +/(?m)$/<any>g+ + abc\r\n\r\n + 0: + 0+ \x0d\x0a\x0d\x0a + 0: + 0+ \x0d\x0a + 0: + 0+ + / End of testinput7 / diff --git a/ext/pcre/pcrelib/testdata/testoutput9 b/ext/pcre/pcrelib/testdata/testoutput9 index 000e2b9882..2cc61ac593 100644 --- a/ext/pcre/pcrelib/testdata/testoutput9 +++ b/ext/pcre/pcrelib/testdata/testoutput9 @@ -1624,4 +1624,12 @@ No match AXY No match +/^\x{023a}+?(\x{0130}+)/8i + \x{023a}\x{2c65}\x{0130} + 0: \x{23a}\x{2c65}\x{130} + +/^\x{023a}+([^X])/8i + \x{023a}\x{2c65}X + 0: \x{23a}\x{2c65} + / End / |
