/[pcre]/code/trunk/testdata/testoutput2
ViewVC logotype

Diff of /code/trunk/testdata/testoutput2

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 621 by ph10, Mon Jul 18 10:14:09 2011 UTC revision 1382 by zherczeg, Fri Oct 18 07:55:07 2013 UTC
# Line 3  Line 3 
3      It also checks the non-Perl syntax the PCRE supports (Python, .NET,      It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4      Oniguruma). Finally, there are some tests where PCRE and Perl differ,      Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5      either because PCRE can't be compatible, or there is a possible Perl      either because PCRE can't be compatible, or there is a possible Perl
6      bug. --/      bug.
7    
8        NOTE: This is a non-UTF set of tests. When UTF support is needed, use
9        test 5, and if Unicode Property Support is needed, use test 7. --/
10    
 /-- Originally, the Perl >= 5.10 things were in here too, but now I have  
     separated many (most?) of them out into test 11. However, there may still  
     be some that were overlooked. --/  
   
11  /(a)b|/I  /(a)b|/I
12  Capturing subpattern count = 1  Capturing subpattern count = 1
13    May match empty string
14  No options  No options
15  No first char  No first char
16  No need char  No need char
# Line 229  No options Line 229  No options
229  No first char  No first char
230  No need char  No need char
231  Subject length lower bound = 1  Subject length lower bound = 1
232  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 a b
233    
234  /(ab\2)/  /(ab\2)/
235  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
# Line 377  No need char Line 377  No need char
377   2: <unset>   2: <unset>
378   3: def   3: def
379    
 /abc/P  
     abc  
  0: abc  
     *** Failers  
 No match: POSIX code 17: match failed  
   
 /^abc|def/P  
     abcdef  
  0: abc  
     abcdef\B  
  0: def  
   
 /.*((abc)$|(def))/P  
     defabc  
  0: defabc  
  1: abc  
  2: abc  
     \Zdefabc  
  0: def  
  1: def  
  3: def  
   
 /the quick brown fox/P  
     the quick brown fox  
  0: the quick brown fox  
     *** Failers  
 No match: POSIX code 17: match failed  
     The Quick Brown Fox  
 No match: POSIX code 17: match failed  
   
 /the quick brown fox/Pi  
     the quick brown fox  
  0: the quick brown fox  
     The Quick Brown Fox  
  0: The Quick Brown Fox  
   
 /abc.def/P  
     *** Failers  
 No match: POSIX code 17: match failed  
     abc\ndef  
 No match: POSIX code 17: match failed  
   
 /abc$/P  
     abc  
  0: abc  
     abc\n  
  0: abc  
   
 /(abc)\2/P  
 Failed: POSIX code 15: bad back reference at offset 7  
   
 /(abc\1)/P  
     abc  
 No match: POSIX code 17: match failed  
   
380  /)/  /)/
381  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
382    
# Line 504  Need char = '=' Line 449  Need char = '='
449    
450  /(?<!bar|cattle)foo/I  /(?<!bar|cattle)foo/I
451  Capturing subpattern count = 0  Capturing subpattern count = 0
452    Max lookbehind = 6
453  No options  No options
454  First char = 'f'  First char = 'f'
455  Need char = 'o'  Need char = 'o'
# Line 553  No need char Line 499  No need char
499    
500  /(?s).*/I  /(?s).*/I
501  Capturing subpattern count = 0  Capturing subpattern count = 0
502    May match empty string
503  Options: anchored dotall  Options: anchored dotall
504  No first char  No first char
505  No need char  No need char
# Line 686  No match Line 633  No match
633    
634  /\Aabc/Im  /\Aabc/Im
635  Capturing subpattern count = 0  Capturing subpattern count = 0
636    Max lookbehind = 1
637  Options: anchored multiline  Options: anchored multiline
638  No first char  No first char
639  No need char  No need char
# Line 711  No need char Line 659  No need char
659    
660  /(?<=foo)[ab]/IS  /(?<=foo)[ab]/IS
661  Capturing subpattern count = 0  Capturing subpattern count = 0
662    Max lookbehind = 3
663  No options  No options
664  No first char  No first char
665  No need char  No need char
# Line 719  Starting byte set: a b Line 668  Starting byte set: a b
668    
669  /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
670  Capturing subpattern count = 1  Capturing subpattern count = 1
671    Max lookbehind = 3
672  No options  No options
673  No first char  No first char
674  Need char = 'a'  Need char = 'a'
# Line 735  Starting byte set: a b Line 685  Starting byte set: a b
685    
686  /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
687  Capturing subpattern count = 0  Capturing subpattern count = 0
688    Max lookbehind = 4
689  Contains explicit CR or LF match  Contains explicit CR or LF match
690  Options: multiline  Options: multiline
691  No first char  No first char
# Line 752  No match Line 703  No match
703    
704  /^(?<=foo\n)bar/Im  /^(?<=foo\n)bar/Im
705  Capturing subpattern count = 0  Capturing subpattern count = 0
706    Max lookbehind = 4
707  Contains explicit CR or LF match  Contains explicit CR or LF match
708  Options: multiline  Options: multiline
709  First char at start or follows newline  First char at start or follows newline
# Line 794  Failed: lookbehind assertion is not fixe Line 746  Failed: lookbehind assertion is not fixe
746    
747  /(?<=bullock|donkey)-cart/I  /(?<=bullock|donkey)-cart/I
748  Capturing subpattern count = 0  Capturing subpattern count = 0
749    Max lookbehind = 7
750  No options  No options
751  First char = '-'  First char = '-'
752  Need char = 't'  Need char = 't'
# Line 810  No match Line 763  No match
763    
764  /(?<=ab(?i)x|y|z)/I  /(?<=ab(?i)x|y|z)/I
765  Capturing subpattern count = 0  Capturing subpattern count = 0
766    Max lookbehind = 3
767    May match empty string
768  No options  No options
769  No first char  No first char
770  No need char  No need char
771    
772  /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
773  Capturing subpattern count = 2  Capturing subpattern count = 2
774    Max lookbehind = 4
775    May match empty string
776  No options  No options
777  First char at start or follows newline  No first char
778  No need char  No need char
779      alphabetabcd      alphabetabcd
780   0: alphabetabcd   0: alphabetabcd
# Line 829  No need char Line 786  No need char
786    
787  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
788  Capturing subpattern count = 0  Capturing subpattern count = 0
789    Max lookbehind = 4
790  No options  No options
791  First char = 'Z'  First char = 'Z'
792  Need char = 'Z'  Need char = 'Z'
# Line 857  No match Line 815  No match
815    
816  /(?<!(foo)a)bar/I  /(?<!(foo)a)bar/I
817  Capturing subpattern count = 1  Capturing subpattern count = 1
818    Max lookbehind = 4
819  No options  No options
820  First char = 'b'  First char = 'b'
821  Need char = 'r'  Need char = 'r'
# Line 869  No match Line 828  No match
828      fooabar      fooabar
829  No match  No match
830    
 /This one is here because Perl 5.005_02 doesn't fail it/I  
 Capturing subpattern count = 0  
 No options  
 First char = 'T'  
 Need char = 't'  
   
 /^(a)?(?(1)a|b)+$/I  
 Capturing subpattern count = 1  
 Options: anchored  
 No first char  
 No need char  
     *** Failers  
 No match  
     a  
 No match  
   
831  /This one is here because Perl behaves differently; see also the following/I  /This one is here because Perl behaves differently; see also the following/I
832  Capturing subpattern count = 0  Capturing subpattern count = 0
833  No options  No options
# Line 1031  Failed: numbers out of order in {} quant Line 974  Failed: numbers out of order in {} quant
974  /abc/\  /abc/\
975  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
976    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
977  /abc/\i  /abc/\i
978  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
979    
# Line 1149  No first char Line 1089  No first char
1089  No need char  No need char
1090      abc\00def\L\C0      abc\00def\L\C0
1091   0: abc\x00def   0: abc\x00def
1092   0C abc (7)   0C abc\x00def (7)
1093   0L abc   0L abc
1094    
1095  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
# Line 1261  No need char Line 1201  No need char
1201    
1202  /\Biss\B/I+  /\Biss\B/I+
1203  Capturing subpattern count = 0  Capturing subpattern count = 0
1204    Max lookbehind = 1
1205  No options  No options
1206  First char = 'i'  First char = 'i'
1207  Need char = 's'  Need char = 's'
# Line 1268  Need char = 's' Line 1209  Need char = 's'
1209   0: iss   0: iss
1210   0+ issippi   0+ issippi
1211    
 /\Biss\B/I+P  
     Mississippi  
  0: iss  
  0+ issippi  
   
1212  /iss/IG+  /iss/IG+
1213  Capturing subpattern count = 0  Capturing subpattern count = 0
1214  No options  No options
# Line 1286  Need char = 's' Line 1222  Need char = 's'
1222    
1223  /\Biss\B/IG+  /\Biss\B/IG+
1224  Capturing subpattern count = 0  Capturing subpattern count = 0
1225    Max lookbehind = 1
1226  No options  No options
1227  First char = 'i'  First char = 'i'
1228  Need char = 's'  Need char = 's'
# Line 1295  Need char = 's' Line 1232  Need char = 's'
1232    
1233  /\Biss\B/Ig+  /\Biss\B/Ig+
1234  Capturing subpattern count = 0  Capturing subpattern count = 0
1235    Max lookbehind = 1
1236  No options  No options
1237  First char = 'i'  First char = 'i'
1238  Need char = 's'  Need char = 's'
# Line 1310  No match Line 1248  No match
1248    
1249  /(?<=[Ms])iss/Ig+  /(?<=[Ms])iss/Ig+
1250  Capturing subpattern count = 0  Capturing subpattern count = 0
1251    Max lookbehind = 1
1252  No options  No options
1253  First char = 'i'  First char = 'i'
1254  Need char = 's'  Need char = 's'
# Line 1321  Need char = 's' Line 1260  Need char = 's'
1260    
1261  /(?<=[Ms])iss/IG+  /(?<=[Ms])iss/IG+
1262  Capturing subpattern count = 0  Capturing subpattern count = 0
1263    Max lookbehind = 1
1264  No options  No options
1265  First char = 'i'  First char = 'i'
1266  Need char = 's'  Need char = 's'
# Line 1402  Capturing subpattern count = 0 Line 1342  Capturing subpattern count = 0
1342  Contains explicit CR or LF match  Contains explicit CR or LF match
1343  Options: multiline  Options: multiline
1344  First char at start or follows newline  First char at start or follows newline
1345  Need char = 10  Need char = \x0a
1346      ab\nab\ncd      ab\nab\ncd
1347   0: ab\x0a   0: ab\x0a
1348   0+ ab\x0acd   0+ ab\x0acd
# Line 1441  Need char = 'c' Line 1381  Need char = 'c'
1381    
1382  /a*/I  /a*/I
1383  Capturing subpattern count = 0  Capturing subpattern count = 0
1384    May match empty string
1385  No options  No options
1386  No first char  No first char
1387  No need char  No need char
# Line 1459  Need char = 'a' Line 1400  Need char = 'a'
1400    
1401  /a{0,3}/I  /a{0,3}/I
1402  Capturing subpattern count = 0  Capturing subpattern count = 0
1403    May match empty string
1404  No options  No options
1405  No first char  No first char
1406  No need char  No need char
# Line 1501  Need char = 'r' Line 1443  Need char = 'r'
1443    
1444  /...(?<=abc)/I  /...(?<=abc)/I
1445  Capturing subpattern count = 0  Capturing subpattern count = 0
1446    Max lookbehind = 3
1447  No options  No options
1448  No first char  No first char
1449  No need char  No need char
# Line 1657  Need char = 'e' Line 1600  Need char = 'e'
1600    
1601  /a?b?/I  /a?b?/I
1602  Capturing subpattern count = 0  Capturing subpattern count = 0
1603    May match empty string
1604  No options  No options
1605  No first char  No first char
1606  No need char  No need char
# Line 1675  No match Line 1619  No match
1619    
1620  /|-/I  /|-/I
1621  Capturing subpattern count = 0  Capturing subpattern count = 0
1622    May match empty string
1623  No options  No options
1624  No first char  No first char
1625  No need char  No need char
# Line 1689  No need char Line 1634  No need char
1634      \Nabc      \Nabc
1635  No match  No match
1636    
 /a*(b+)(z)(z)/P  
     aaaabbbbzzzz  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O0  
     aaaabbbbzzzz\O1  
  0: aaaabbbbzz  
     aaaabbbbzzzz\O2  
  0: aaaabbbbzz  
  1: bbbb  
     aaaabbbbzzzz\O3  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
     aaaabbbbzzzz\O4  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O5  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
   
1637  /^.?abcd/IS  /^.?abcd/IS
1638  Capturing subpattern count = 0  Capturing subpattern count = 0
1639  Options: anchored  Options: anchored
# Line 2715  Need char = '-' Line 2633  Need char = '-'
2633          End          End
2634  ------------------------------------------------------------------  ------------------------------------------------------------------
2635  Capturing subpattern count = 0  Capturing subpattern count = 0
2636    May match empty string
2637  Options: extended  Options: extended
2638  No first char  No first char
2639  No need char  No need char
# Line 2734  No need char Line 2653  No need char
2653  /[\s]/DZ  /[\s]/DZ
2654  ------------------------------------------------------------------  ------------------------------------------------------------------
2655          Bra          Bra
2656          [\x09\x0a\x0c\x0d ]          [\x09-\x0d ]
2657          Ket          Ket
2658          End          End
2659  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2746  No need char Line 2665  No need char
2665  /[\S]/DZ  /[\S]/DZ
2666  ------------------------------------------------------------------  ------------------------------------------------------------------
2667          Bra          Bra
2668          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)          [\x00-\x08\x0e-\x1f!-\xff] (neg)
2669          Ket          Ket
2670          End          End
2671  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2857  Need char = '0' Line 2776  Need char = '0'
2776          End          End
2777  ------------------------------------------------------------------  ------------------------------------------------------------------
2778  Capturing subpattern count = 0  Capturing subpattern count = 0
2779    May match empty string
2780  No options  No options
2781  No first char  No first char
2782  No need char  No need char
# Line 2956  No match Line 2876  No match
2876          End          End
2877  ------------------------------------------------------------------  ------------------------------------------------------------------
2878  Capturing subpattern count = 0  Capturing subpattern count = 0
2879    May match empty string
2880  No options  No options
2881  No first char  No first char
2882  No need char  No need char
# Line 2972  No options Line 2893  No options
2893  First char = 'x'  First char = 'x'
2894  No need char  No need char
2895    
2896  /x{1,3}+/DZ  /x{1,3}+/BZO
2897  ------------------------------------------------------------------  ------------------------------------------------------------------
2898          Bra          Bra
         Once  
2899          x          x
2900          x{0,2}          x{0,2}+
2901            Ket
2902            End
2903    ------------------------------------------------------------------
2904    
2905    /x{1,3}+/BZOi
2906    ------------------------------------------------------------------
2907            Bra
2908         /i x
2909         /i x{0,2}+
2910          Ket          Ket
2911            End
2912    ------------------------------------------------------------------
2913    
2914    /[^x]{1,3}+/BZO
2915    ------------------------------------------------------------------
2916            Bra
2917            [^x]
2918            [^x]{0,2}+
2919            Ket
2920            End
2921    ------------------------------------------------------------------
2922    
2923    /[^x]{1,3}+/BZOi
2924    ------------------------------------------------------------------
2925            Bra
2926         /i [^x]
2927         /i [^x]{0,2}+
2928          Ket          Ket
2929          End          End
2930  ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 0  
 No options  
 First char = 'x'  
 No need char  
2931    
2932  /(x)*+/DZ  /(x)*+/DZ
2933  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2998  No need char Line 2940  No need char
2940          End          End
2941  ------------------------------------------------------------------  ------------------------------------------------------------------
2942  Capturing subpattern count = 1  Capturing subpattern count = 1
2943    May match empty string
2944  No options  No options
2945  No first char  No first char
2946  No need char  No need char
2947    
2948  /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
2949  Capturing subpattern count = 1  Capturing subpattern count = 1
2950    May match empty string
2951  Options: anchored  Options: anchored
2952  No first char  No first char
2953  No need char  No need char
# Line 3165  Need char = 'b' Line 3109  Need char = 'b'
3109          [bc]+          [bc]+
3110          Ket          Ket
3111          CBra 5          CBra 5
3112          \w*          \w*+
3113          Ket          Ket
3114          Ket          Ket
3115          Ket          Ket
# Line 3244  Failed: missing terminating ] for charac Line 3188  Failed: missing terminating ] for charac
3188  /[\s]/IDZ  /[\s]/IDZ
3189  ------------------------------------------------------------------  ------------------------------------------------------------------
3190          Bra          Bra
3191          [\x09\x0a\x0c\x0d ]          [\x09-\x0d ]
3192          Ket          Ket
3193          End          End
3194  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3308  No match Line 3252  No match
3252          End          End
3253  ------------------------------------------------------------------  ------------------------------------------------------------------
3254  Capturing subpattern count = 0  Capturing subpattern count = 0
3255    Max lookbehind = 1
3256  No options  No options
3257  First char = '8'  First char = '8'
3258  Need char = 'X'  Need char = 'X'
# Line 3321  Need char = 'X' Line 3266  Need char = 'X'
3266          End          End
3267  ------------------------------------------------------------------  ------------------------------------------------------------------
3268  Capturing subpattern count = 0  Capturing subpattern count = 0
3269    Max lookbehind = 1
3270  No options  No options
3271  First char = '$'  First char = '$'
3272  Need char = 'X'  Need char = 'X'
# Line 3377  Need char = 'b' Line 3323  Need char = 'b'
3323    
3324  /(?=a).*/I  /(?=a).*/I
3325  Capturing subpattern count = 0  Capturing subpattern count = 0
3326    May match empty string
3327  No options  No options
3328  First char = 'a'  First char = 'a'
3329  No need char  No need char
# Line 3395  Need char = 'z' (caseless) Line 3342  Need char = 'z' (caseless)
3342    
3343  /(?=a)(?=b)/I  /(?=a)(?=b)/I
3344  Capturing subpattern count = 0  Capturing subpattern count = 0
3345    May match empty string
3346  No options  No options
3347  First char = 'a'  First char = 'a'
3348  No need char  No need char
# Line 3461  Need char = 'a' Line 3409  Need char = 'a'
3409    
3410  /(a)*/I  /(a)*/I
3411  Capturing subpattern count = 1  Capturing subpattern count = 1
3412    May match empty string
3413  No options  No options
3414  No first char  No first char
3415  No need char  No need char
# Line 3689  No match Line 3638  No match
3638    
3639  /(?C0)(abc(?C1))*/I  /(?C0)(abc(?C1))*/I
3640  Capturing subpattern count = 1  Capturing subpattern count = 1
3641    May match empty string
3642  No options  No options
3643  No first char  No first char
3644  No need char  No need char
# Line 3722  No need char Line 3672  No need char
3672    
3673  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3674  Capturing subpattern count = 1  Capturing subpattern count = 1
3675    May match empty string
3676  No options  No options
3677  No first char  No first char
3678  No need char  No need char
# Line 3836  Callout 2: last capture = -1 Line 3787  Callout 2: last capture = -1
3787    
3788  /(?<=(abc)(?C))xyz/I  /(?<=(abc)(?C))xyz/I
3789  Capturing subpattern count = 1  Capturing subpattern count = 1
3790    Max lookbehind = 3
3791  No options  No options
3792  First char = 'x'  First char = 'x'
3793  Need char = 'z'  Need char = 'z'
# Line 3857  Need char = 'b' Line 3809  Need char = 'b'
3809  --->abbbbbccc  --->abbbbbccc
3810    1 ^        ^    1 ^        ^
3811  Callout data = 1  Callout data = 1
   1 ^       ^  
 Callout data = 1  
   1 ^      ^  
 Callout data = 1  
   1 ^     ^  
 Callout data = 1  
   1 ^    ^  
 Callout data = 1  
   1 ^   ^  
 Callout data = 1  
   1 ^  ^  
 Callout data = 1  
   1 ^ ^  
 Callout data = 1  
3812  No match  No match
3813    
3814  /a(b+?)(c*?)(?C1)/I  /a(b+?)(c*?)(?C1)/I
# Line 3967  Failed: recursive call could loop indefi Line 3905  Failed: recursive call could loop indefi
3905    
3906  /^([^()]|\((?1)*\))*$/I  /^([^()]|\((?1)*\))*$/I
3907  Capturing subpattern count = 1  Capturing subpattern count = 1
3908    May match empty string
3909  Options: anchored  Options: anchored
3910  No first char  No first char
3911  No need char  No need char
# Line 4246  Named capturing subpatterns: Line 4185  Named capturing subpatterns:
4185    one     1    one     1
4186    three   3    three   3
4187    two     2    two     2
4188    May match empty string
4189  Options: anchored caseless  Options: anchored caseless
4190  No first char  No first char
4191  No need char  No need char
# Line 4345  Need char = 'z' Line 4285  Need char = 'z'
4285    
4286  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4287  Capturing subpattern count = 31  Capturing subpattern count = 31
4288    May match empty string
4289  Options: anchored dotall  Options: anchored dotall
4290  No first char  No first char
4291  No need char  No need char
# Line 4352  No need char Line 4293  No need char
4293  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4294  Capturing subpattern count = 31  Capturing subpattern count = 31
4295  Max back reference = 31  Max back reference = 31
4296    May match empty string
4297  Options: dotall  Options: dotall
4298  No first char  No first char
4299  No need char  No need char
# Line 4359  No need char Line 4301  No need char
4301  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4302  Capturing subpattern count = 32  Capturing subpattern count = 32
4303  Max back reference = 32  Max back reference = 32
4304    May match empty string
4305  Options: dotall  Options: dotall
4306  No first char  No first char
4307  No need char  No need char
# Line 4430  No first char Line 4373  No first char
4373  Need char = 'z'  Need char = 'z'
4374    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4375  Minimum match() limit = 8  Minimum match() limit = 8
4376  Minimum match() recursion limit = 7  Minimum match() recursion limit = 6
4377   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4378   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4379    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4380  Minimum match() limit = 32768  Minimum match() limit = 32768
4381  Minimum match() recursion limit = 43  Minimum match() recursion limit = 29
4382  No match  No match
4383    
4384  /(aaa(?C1)bbb|ab)/I  /(aaa(?C1)bbb|ab)/I
# Line 4510  Capturing subpattern count = 2 Line 4453  Capturing subpattern count = 2
4453  Named capturing subpatterns:  Named capturing subpatterns:
4454    Tes    1    Tes    1
4455    Test   2    Test   2
4456    May match empty string
4457  No options  No options
4458  No first char  No first char
4459  No need char  No need char
# Line 4528  Capturing subpattern count = 2 Line 4472  Capturing subpattern count = 2
4472  Named capturing subpatterns:  Named capturing subpatterns:
4473    Tes    2    Tes    2
4474    Test   1    Test   1
4475    May match empty string
4476  No options  No options
4477  No first char  No first char
4478  No need char  No need char
# Line 4605  Need char = ']' Line 4550  Need char = ']'
4550          End          End
4551  ------------------------------------------------------------------  ------------------------------------------------------------------
4552  Capturing subpattern count = 2  Capturing subpattern count = 2
4553    May match empty string
4554  No options  No options
4555  No first char  No first char
4556  No need char  No need char
# Line 4625  No need char Line 4571  No need char
4571          End          End
4572  ------------------------------------------------------------------  ------------------------------------------------------------------
4573  Capturing subpattern count = 2  Capturing subpattern count = 2
4574    May match empty string
4575  No options  No options
4576  No first char  No first char
4577  No need char  No need char
# Line 4656  No need char Line 4603  No need char
4603          End          End
4604  ------------------------------------------------------------------  ------------------------------------------------------------------
4605  Capturing subpattern count = 2  Capturing subpattern count = 2
4606    May match empty string
4607  No options  No options
4608  No first char  No first char
4609  No need char  No need char
# Line 4663  No need char Line 4611  No need char
4611  /[ab]{1}+/DZ  /[ab]{1}+/DZ
4612  ------------------------------------------------------------------  ------------------------------------------------------------------
4613          Bra          Bra
4614          Once          [ab]{1,1}+
         [ab]{1,1}  
         Ket  
4615          Ket          Ket
4616          End          End
4617  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 5377  No match Line 5323  No match
5323          Callout 255 0 21          Callout 255 0 21
5324          CBra 1          CBra 1
5325          Callout 255 1 9          Callout 255 1 9
5326          [ab]{1,4}          [ab]{1,4}+
5327          Callout 255 10 1          Callout 255 10 1
5328          c          c
5329          Callout 255 11 0          Callout 255 11 0
# Line 5390  No match Line 5336  No match
5336          Ket          Ket
5337          CBra 1          CBra 1
5338          Callout 255 1 9          Callout 255 1 9
5339          [ab]{1,4}          [ab]{1,4}+
5340          Callout 255 10 1          Callout 255 10 1
5341          c          c
5342          Callout 255 11 0          Callout 255 11 0
# Line 5403  No match Line 5349  No match
5349          Ket          Ket
5350          CBra 1          CBra 1
5351          Callout 255 1 9          Callout 255 1 9
5352          [ab]{1,4}          [ab]{1,4}+
5353          Callout 255 10 1          Callout 255 10 1
5354          c          c
5355          Callout 255 11 0          Callout 255 11 0
# Line 5416  No match Line 5362  No match
5362          Ket          Ket
5363          CBra 1          CBra 1
5364          Callout 255 1 9          Callout 255 1 9
5365          [ab]{1,4}          [ab]{1,4}+
5366          Callout 255 10 1          Callout 255 10 1
5367          c          c
5368          Callout 255 11 0          Callout 255 11 0
# Line 5430  No match Line 5376  No match
5376          Braminzero          Braminzero
5377          CBra 1          CBra 1
5378          Callout 255 1 9          Callout 255 1 9
5379          [ab]{1,4}          [ab]{1,4}+
5380          Callout 255 10 1          Callout 255 10 1
5381          c          c
5382          Callout 255 11 0          Callout 255 11 0
# Line 5483  Need char = '3' Line 5429  Need char = '3'
5429    
5430  /\b.*/I  /\b.*/I
5431  Capturing subpattern count = 0  Capturing subpattern count = 0
5432    Max lookbehind = 1
5433    May match empty string
5434  No options  No options
5435  No first char  No first char
5436  No need char  No need char
# Line 5491  No need char Line 5439  No need char
5439    
5440  /\b.*/Is  /\b.*/Is
5441  Capturing subpattern count = 0  Capturing subpattern count = 0
5442    Max lookbehind = 1
5443    May match empty string
5444  Options: dotall  Options: dotall
5445  No first char  No first char
5446  No need char  No need char
# Line 5499  No need char Line 5449  No need char
5449    
5450  /(?!.bcd).*/I  /(?!.bcd).*/I
5451  Capturing subpattern count = 0  Capturing subpattern count = 0
5452    May match empty string
5453  No options  No options
5454  No first char  No first char
5455  No need char  No need char
# Line 5802  Max back reference = 1 Line 5753  Max back reference = 1
5753  Options: multiline dotall  Options: multiline dotall
5754  First char = '<'  First char = '<'
5755  Need char = '>'  Need char = '>'
5756      <!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>      \J1024<!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>
5757   0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>   0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>
5758   1: seite   1: seite
5759   2: \x0a   2: \x0a
# Line 5851  No match Line 5802  No match
5802      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5803  No match  No match
5804    
 /ab.cd/P  
     ab-cd  
  0: ab-cd  
     ab=cd  
  0: ab=cd  
     ** Failers  
 No match: POSIX code 17: match failed  
     ab\ncd  
 No match: POSIX code 17: match failed  
   
 /ab.cd/Ps  
     ab-cd  
  0: ab-cd  
     ab=cd  
  0: ab=cd  
     ab\ncd  
  0: ab\x0acd  
   
5805  /(?i)(?-i)AbCd/I  /(?i)(?-i)AbCd/I
5806  Capturing subpattern count = 0  Capturing subpattern count = 0
5807  No options  No options
# Line 6105  Matched, but too many substrings Line 6038  Matched, but too many substrings
6038    
6039  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
6040  Capturing subpattern count = 0  Capturing subpattern count = 0
6041    May match empty string
6042  No options  No options
6043  No first char  No first char
6044  No need char  No need char
# Line 6117  No need char Line 6051  No need char
6051    
6052  /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
6053  Capturing subpattern count = 0  Capturing subpattern count = 0
6054    May match empty string
6055  No options  No options
6056  No first char  No first char
6057  No need char  No need char
# Line 6127  No need char Line 6062  No need char
6062    
6063  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
6064  Capturing subpattern count = 0  Capturing subpattern count = 0
6065    May match empty string
6066  No options  No options
6067  No first char  No first char
6068  No need char  No need char
# Line 6137  No need char Line 6073  No need char
6073    
6074  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
6075  Capturing subpattern count = 0  Capturing subpattern count = 0
6076    May match empty string
6077  No options  No options
6078  No first char  No first char
6079  No need char  No need char
# Line 6149  No need char Line 6086  No need char
6086    
6087  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
6088  Capturing subpattern count = 0  Capturing subpattern count = 0
6089    May match empty string
6090  No options  No options
6091  No first char  No first char
6092  No need char  No need char
# Line 6161  No need char Line 6099  No need char
6099      ((this))      ((this))
6100   0: ((this))   0: ((this))
6101    
 /a(b)c/PN  
     abc  
 Matched with REG_NOSUB  
   
 /a(?P<name>b)c/PN  
     abc  
 Matched with REG_NOSUB  
   
 /\x{100}/I  
 Failed: character value in \x{...} sequence is too large at offset 6  
   
6102  /\x{0000ff}/I  /\x{0000ff}/I
6103  Capturing subpattern count = 0  Capturing subpattern count = 0
6104  No options  No options
6105  First char = 255  First char = \xff
6106  No need char  No need char
6107    
6108  /^((?P<A>a1)|(?P<A>a2)b)/I  /^((?P<A>a1)|(?P<A>a2)b)/I
# Line 6209  no parentheses with name "Z" Line 6136  no parentheses with name "Z"
6136   2: a1   2: a1
6137  copy substring Z failed -7  copy substring Z failed -7
6138    C a1 (2) A    C a1 (2) A
6139    
6140    /(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ
6141    Capturing subpattern count = 3
6142    Named capturing subpatterns:
6143      a   1
6144      a   3
6145      b   2
6146    May match empty string
6147    Options: dupnames
6148    No first char
6149    No need char
6150    
6151  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
6152  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 6285  no parentheses with name "Z" Line 6223  no parentheses with name "Z"
6223   0: a1   0: a1
6224   1: a1   1: a1
6225   2: a1   2: a1
6226  copy substring Z failed -7  get substring Z failed -7
6227    G a1 (2) A    G a1 (2) A
6228    
6229  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
# Line 6317  No need char Line 6255  No need char
6255    G a (1) A    G a (1) A
6256      cd\GA      cd\GA
6257   0: cd   0: cd
6258  copy substring A failed -7  get substring A failed -7
6259    
6260  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6261  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 6485  No need char Line 6423  No need char
6423   9:   9:
6424  10: Y  10: Y
6425    
 /\777/I  
 Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3  
   
6426  /\s*,\s*/IS  /\s*,\s*/IS
6427  Capturing subpattern count = 0  Capturing subpattern count = 0
6428  No options  No options
6429  No first char  No first char
6430  Need char = ','  Need char = ','
6431  Subject length lower bound = 1  Subject length lower bound = 1
6432  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 ,
6433      \x0b,\x0b      \x0b,\x0b
6434   0: ,   0: \x0b,\x0b
6435      \x0c,\x0d      \x0c,\x0d
6436   0: \x0c,\x0d   0: \x0c,\x0d
6437    
# Line 6620  Unknown newline type at: <bad> Line 6555  Unknown newline type at: <bad>
6555    
6556  /.*/I<lf>  /.*/I<lf>
6557  Capturing subpattern count = 0  Capturing subpattern count = 0
6558    May match empty string
6559  Options:  Options:
6560  Forced newline sequence: LF  Forced newline sequence: LF
6561  First char at start or follows newline  First char at start or follows newline
# Line 6661  Need char = 'f' Line 6597  Need char = 'f'
6597    
6598  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6599  Capturing subpattern count = 1  Capturing subpattern count = 1
6600    May match empty string
6601  No options  No options
6602  No first char  No first char
6603  No need char  No need char
6604     /* this is a C style comment */\M     /* this is a C style comment */\M
6605  Minimum match() limit = 120  Minimum match() limit = 120
6606  Minimum match() recursion limit = 35  Minimum match() recursion limit = 6
6607   0: /* this is a C style comment */   0: /* this is a C style comment */
6608   1: /* this is a C style comment */   1: /* this is a C style comment */
6609    
# Line 7548  Matched, but too many substrings Line 7485  Matched, but too many substrings
7485  /[^a]+a/BZi  /[^a]+a/BZi
7486  ------------------------------------------------------------------  ------------------------------------------------------------------
7487          Bra          Bra
7488       /i [^A]++       /i [^a]++
7489       /i a       /i a
7490          Ket          Ket
7491          End          End
# Line 7557  Matched, but too many substrings Line 7494  Matched, but too many substrings
7494  /[^a]+A/BZi  /[^a]+A/BZi
7495  ------------------------------------------------------------------  ------------------------------------------------------------------
7496          Bra          Bra
7497       /i [^A]++       /i [^a]++
7498       /i A       /i A
7499          Ket          Ket
7500          End          End
# Line 7584  Matched, but too many substrings Line 7521  Matched, but too many substrings
7521  /a*[^a]/BZ  /a*[^a]/BZ
7522  ------------------------------------------------------------------  ------------------------------------------------------------------
7523          Bra          Bra
7524          a*          a*+
7525          [^a]          [^a]
7526          Ket          Ket
7527          End          End
# Line 7726  No match Line 7663  No match
7663  ------------------------------------------------------------------  ------------------------------------------------------------------
7664          Bra          Bra
7665          ^          ^
7666          [a-z]+          [a-z]++
7667          Ket          Ket
7668          End          End
7669  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7767  No match Line 7704  No match
7704          ^          ^
7705          CBra 1          CBra 1
7706          Cond          Cond
7707        2 Cond nref        2 Cond ref
7708          y          y
7709          Ket          Ket
7710          [()]          [()]
# Line 7827  Named capturing subpatterns: Line 7764  Named capturing subpatterns:
7764    one     1    one     1
7765    three   3    three   3
7766    two     2    two     2
7767    May match empty string
7768  Options: anchored caseless  Options: anchored caseless
7769  No first char  No first char
7770  No need char  No need char
# Line 7944  Options: extended Line 7882  Options: extended
7882  First char = 'x'  First char = 'x'
7883  Need char = 'z'  Need char = 'z'
7884    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7885  /(a|)*\d/  /(a|)*\d/
7886    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7887  No match  No match
# Line 8506  Failed: syntax error in subpattern name Line 8441  Failed: syntax error in subpattern name
8441   3: <unset>   3: <unset>
8442   4: x   4: x
8443    
 /[\h]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x09 \xa0]  
         Ket  
         End  
 ------------------------------------------------------------------  
     >\x09<  
  0: \x09  
   
 /[\h]+/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x09 \xa0]+  
         Ket  
         End  
 ------------------------------------------------------------------  
     >\x09\x20\xa0<  
  0: \x09 \xa0  
   
 /[\v]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x0a-\x0d\x85]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[\H]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[^\h]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff] (neg)  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[\V]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x09\x0e-\x84\x86-\xff]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[\x0a\V]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x0a\x0e-\x84\x86-\xff]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
8444  /\H++X/BZ  /\H++X/BZ
8445  ------------------------------------------------------------------  ------------------------------------------------------------------
8446          Bra          Bra
# Line 8726  No match Line 8601  No match
8601          \d          \d
8602          \v++          \v++
8603          \w          \w
8604          \v+          \v++
8605          \S          \S
8606          \v++          \v++
8607          \V          \V
# Line 8757  No match Line 8632  No match
8632  ------------------------------------------------------------------  ------------------------------------------------------------------
8633    
8634  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8635  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)  \J1024(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8636   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8637    
8638  /[\E]AAA/  /[\E]AAA/
# Line 8824  No match Line 8699  No match
8699   +6 ^      ^    (*FAIL)   +6 ^      ^    (*FAIL)
8700   +6 ^     ^     (*FAIL)   +6 ^     ^     (*FAIL)
8701   +6 ^    ^      (*FAIL)   +6 ^    ^      (*FAIL)
  +4 ^  ^        c+  
  +2 ^ ^         b?  
  +4 ^ ^         c+  
  +2 ^^          b?  
  +4 ^^          c+  
8702   +0  ^          a+   +0  ^          a+
8703   +2  ^ ^        b?   +2  ^ ^        b?
8704   +4  ^  ^       c+   +4  ^  ^       c+
8705   +6  ^     ^    (*FAIL)   +6  ^     ^    (*FAIL)
8706   +6  ^    ^     (*FAIL)   +6  ^    ^     (*FAIL)
8707   +6  ^   ^      (*FAIL)   +6  ^   ^      (*FAIL)
  +4  ^ ^        c+  
  +2  ^^         b?  
  +4  ^^         c+  
8708   +0   ^         a+   +0   ^         a+
8709   +2   ^^        b?   +2   ^^        b?
8710   +4   ^ ^       c+   +4   ^ ^       c+
8711   +6   ^    ^    (*FAIL)   +6   ^    ^    (*FAIL)
8712   +6   ^   ^     (*FAIL)   +6   ^   ^     (*FAIL)
8713   +6   ^  ^      (*FAIL)   +6   ^  ^      (*FAIL)
  +4   ^^        c+  
8714  No match  No match
8715    
8716  /a+b?(*PRUNE)c+(*FAIL)/C  /a+b?(*PRUNE)c+(*FAIL)/C
# Line 8939  Failed: number is too big at offset 19 Line 8805  Failed: number is too big at offset 19
8805  /\g6666666666/  /\g6666666666/
8806  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8807    
8808  /[\g6666666666]/  /[\g6666666666]/BZ
8809  Failed: number is too big at offset 12  ------------------------------------------------------------------
8810            Bra
8811            [6g]
8812            Ket
8813            End
8814    ------------------------------------------------------------------
8815    
8816  /(?1)\c[/  /(?1)\c[/
8817  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 8963  No match Line 8834  No match
8834   1: \x0a   1: \x0a
8835    
8836  /a(*CR)b/  /a(*CR)b/
8837  Failed: (*VERB) not recognized at offset 5  Failed: (*VERB) not recognized or malformed at offset 5
8838    
8839  /(*CR)a.b/  /(*CR)a.b/
8840      a\nb      a\nb
# Line 9246  Failed: subpattern name expected at offs Line 9117  Failed: subpattern name expected at offs
9117  /\k{}/  /\k{}/
9118  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9119    
9120    /\k/
9121    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9122    
9123    /\kabc/
9124    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9125    
9126  /(?P=)/  /(?P=)/
9127  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9128    
# Line 9418  Starting byte set: x y z Line 9295  Starting byte set: x y z
9295    
9296  /(?(?=.*b)b|^)/CI  /(?(?=.*b)b|^)/CI
9297  Capturing subpattern count = 0  Capturing subpattern count = 0
9298    May match empty string
9299  Options:  Options:
9300  No first char  No first char
9301  No need char  No need char
# Line 9430  No need char Line 9308  No need char
9308   +7 ^ ^     b   +7 ^ ^     b
9309   +7 ^^      b   +7 ^^      b
9310   +7 ^       b   +7 ^       b
9311    +11 ^       ^
9312  +12 ^       )  +12 ^       )
9313  +13 ^  +13 ^
9314   0:   0:
# Line 9467  No options Line 9346  No options
9346  First char at start or follows newline  First char at start or follows newline
9347  No need char  No need char
9348    
 /a?|b?/P  
     abc  
  0: a  
     ** Failers  
  0:  
     ddd\N  
 No match: POSIX code 17: match failed  
   
9349  /xyz/C  /xyz/C
9350    xyz    xyz
9351  --->xyz  --->xyz
# Line 9568  No match Line 9439  No match
9439   +3 ^ ^      (?(?=[a])[^"])   +3 ^ ^      (?(?=[a])[^"])
9440   +5 ^ ^      (?=[a])   +5 ^ ^      (?=[a])
9441   +8 ^ ^      [a]   +8 ^ ^      [a]
9442    +17 ^ ^      |
9443  +21 ^ ^      "  +21 ^ ^      "
9444  +18 ^ ^      b  +18 ^ ^      b
9445  +19 ^  ^     )  +19 ^  ^     )
9446   +3 ^  ^     (?(?=[a])[^"])   +3 ^  ^     (?(?=[a])[^"])
9447   +5 ^  ^     (?=[a])   +5 ^  ^     (?=[a])
9448   +8 ^  ^     [a]   +8 ^  ^     [a]
9449    +17 ^  ^     |
9450  +21 ^  ^     "  +21 ^  ^     "
9451  +22 ^   ^    $  +22 ^   ^    $
9452  +23 ^   ^  +23 ^   ^
# Line 9869  Partial match: the cat Line 9742  Partial match: the cat
9742     abc\P\P     abc\P\P
9743   0: abc   0: abc
9744    
 /\w+A/P  
    CDAAAAB  
  0: CDAAAA  
   
 /\w+A/PU  
    CDAAAAB  
  0: CDA  
   
9745  /abc\K123/  /abc\K123/
9746      xyzabc123pqr      xyzabc123pqr
9747   0: 123   0: 123
# Line 9889  Partial match: abc12 Line 9754  Partial match: abc12
9754      xyzabc123pqr      xyzabc123pqr
9755   0: 123   0: 123
9756      xyzabc12\P      xyzabc12\P
9757  Partial match: abc12  Partial match at offset 6: abc12
9758      xyzabc12\P\P      xyzabc12\P\P
9759  Partial match: abc12  Partial match at offset 6: abc12
9760    
9761  /\babc\b/  /\babc\b/
9762      +++abc+++      +++abc+++
9763   0: abc   0: abc
9764      +++ab\P      +++ab\P
9765  Partial match: +ab  Partial match at offset 3: +ab
9766      +++ab\P\P      +++ab\P\P
9767  Partial match: +ab  Partial match at offset 3: +ab
9768    
9769  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9770  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10269  Need char = ':' Line 10134  Need char = ':'
10134  Subject length lower bound = 22  Subject length lower bound = 22
10135  No set of starting bytes  No set of starting bytes
10136    
 /  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*                          # optional leading comment  
 (?:    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )                    # initial word  
 (?:  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )  )* # further okay, if led by a period  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
 # address  
 |                     #  or  
 (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )             # one word, optionally followed by....  
 (?:  
 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...  
 \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)       |  # comments, or...  
   
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 # quoted strings  
 )*  
 <  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*                     # leading <  
 (?:  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
   
 (?:  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  ,  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
 )* # further okay, if led by comma  
 :                                # closing colon  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  )? #       optional route  
 (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )                    # initial word  
 (?:  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )  )* # further okay, if led by a period  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
 #       address spec  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  > #                  trailing >  
 # name and address  
 )  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*                       # optional trailing comment  
 /xSI  
 Capturing subpattern count = 0  
 Contains explicit CR or LF match  
 Options: extended  
 No first char  
 No need char  
 Subject length lower bound = 3  
 Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8  
   9 = ? 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 { | } ~ \x7f  
   
10137  /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS  /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS
10138  Capturing subpattern count = 11  Capturing subpattern count = 11
10139  Options: caseless dotall  Options: caseless dotall
# Line 10484  No set of starting bytes Line 10145  No set of starting bytes
10145  "(?>.*/)foo"SI  "(?>.*/)foo"SI
10146  Capturing subpattern count = 0  Capturing subpattern count = 0
10147  No options  No options
10148  First char at start or follows newline  No first char
10149  Need char = 'o'  Need char = 'o'
10150  Subject length lower bound = 4  Subject length lower bound = 4
10151  No set of starting bytes  No set of starting bytes
# Line 10546  No set of starting bytes Line 10207  No set of starting bytes
10207  Capturing subpattern count = 1  Capturing subpattern count = 1
10208  Named capturing subpatterns:  Named capturing subpatterns:
10209    a   1    a   1
   a   1  
10210  No options  No options
10211  No first char  No first char
10212  No need char  No need char
# Line 10619  No match Line 10279  No match
10279          Ket          Ket
10280          Ket          Ket
10281          Cond          Cond
10282        4 Cond nref          Cond ref <D>2
10283          X          X
10284          Alt          Alt
10285          Y          Y
# Line 10665  No match Line 10325  No match
10325          CBra 4          CBra 4
10326          d          d
10327          Cond          Cond
10328          Cond nrecurse 1          Cond recurse <A>2
10329          $          $
10330          Alt          Alt
10331          Recurse          Recurse
# Line 10727  Partial match: abca Line 10387  Partial match: abca
10387      xxxxabcde\P\P      xxxxabcde\P\P
10388  Partial match: abcde  Partial match: abcde
10389    
10390  /-- This is not in the Perl >= 5.10 test because Perl seems currently to be  /-- This is not in the Perl-compatible test because Perl seems currently to be
10391      broken and not behaving as specified in that it *does* bumpalong after      broken and not behaving as specified in that it *does* bumpalong after
10392      hitting (*COMMIT). --/      hitting (*COMMIT). --/
10393    
# Line 10923  No match Line 10583  No match
10583          End          End
10584  ------------------------------------------------------------------  ------------------------------------------------------------------
10585    
10586  / -- The first four of these are not in the Perl >= 5.10 test because Perl  / -- This one is here because Perl gives the match as "b" rather than "ab". I
      documents that the use of \K in assertions is "not well defined". The  
      last is here because Perl gives the match as "b" rather than "ab". I  
10587       believe this to be a Perl bug. --/       believe this to be a Perl bug. --/
10588    
 /(?=a\Kb)ab/  
     ab  
  0: b  
   
 /(?!a\Kb)ac/  
     ac  
  0: ac  
   
 /^abc(?<=b\Kc)d/  
     abcd  
  0: cd  
   
 /^abc(?<!b\Kq)d/  
     abcd  
  0: abcd  
   
10589  /(?>a\Kb)z|(ab)/  /(?>a\Kb)z|(ab)/
10590      ab      ab
10591   0: ab   0: ab
10592   1: ab   1: ab
10593    
 /----------------------/  
   
10594  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10595  Failed: recursive call could loop indefinitely at offset 31  Failed: recursive call could loop indefinitely at offset 31
10596    
# Line 10970  Failed: an argument is not allowed for ( Line 10610  Failed: an argument is not allowed for (
10610      ACABX      ACABX
10611  No match  No match
10612    
10613  /--- These should be different, but in Perl 5.11 are not, which I think  /--- These should be different, but in Perl they are not, which I think
10614       is a bug in Perl. ---/       is a bug in Perl. ---/
10615    
10616  /A(*THEN)B|A(*THEN)C/K  /A(*THEN)B|A(*THEN)C/K
# Line 10981  No match Line 10621  No match
10621      AC      AC
10622  No match  No match
10623    
10624  /--- A whole lot of tests of verbs with arguments are here rather than in test  /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10625       11 because Perl doesn't seem to follow its specification entirely  though PCRE does. ---/
      correctly. ---/  
   
 /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is  
      not clear how Perl defines "involved in the failure of the match". ---/  
10626    
10627  /^(A(*THEN:A)B|C(*THEN:B)D)/K  /^A(*:A)B|^X(*:A)Y/K
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
10628      ** Failers      ** Failers
10629  No match  No match
10630      AC      XAQQ
10631  No match  No match, mark = A
     CB  
 No match, mark = B  
10632    
10633  /--- Check the use of names for success and failure. PCRE doesn't show these  /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10634  names for success, though Perl does, contrary to its spec. ---/  optimizations defeat this. So does the PCRE optimization unless we disable it
10635    with \Y. ---/
10636    
10637  /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K  /(*COMMIT)ABC/
10638      AB      ABCDEFG
10639   0: AB   0: ABC
  1: AB  
     CD  
  0: CD  
  1: CD  
10640      ** Failers      ** Failers
10641  No match  No match
10642      AC      DEFGABC\Y
10643  No match, mark = A  No match
     CB  
 No match, mark = B  
10644    
10645  /--- An empty name does not pass back an empty string. It is the same as if no  /^(ab (c+(*THEN)cd) | xyz)/x
10646  name were given. ---/      abcccd
10647    No match
10648    
10649  /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K  /^(ab (c+(*PRUNE)cd) | xyz)/x
10650      AB      abcccd
10651   0: AB  No match
  1: AB  
     CD  
  0: CD  
  1: CD  
10652    
10653  /--- PRUNE goes to next bumpalong; COMMIT does not. ---/  /^(ab (c+(*FAIL)cd) | xyz)/x
10654        abcccd
10655    No match
10656    
10657  /A(*PRUNE:A)B/K  /--- Perl gets some of these wrong ---/
     ACAB  
  0: AB  
10658    
10659  /(*MARK:A)(*PRUNE:B)(C|X)/KS  /(?>.(*ACCEPT))*?5/
10660      C      abcde
10661   0: C   0: a
  1: C  
 MK: A  
     D  
 No match  
10662    
10663  /(*MARK:A)(*PRUNE:B)(C|X)/KSS  /(.(*ACCEPT))*?5/
10664      C      abcde
10665   0: C   0: a
10666   1: C   1: a
 MK: A  
     D  
 No match, mark = B  
   
 /(*MARK:A)(*THEN:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /(*MARK:A)(*THEN:B)(C|X)/KSS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match, mark = B  
   
 /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/  
   
 /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- Same --/  
   
 /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- This should fail; the SKIP advances by one, but when we get to AC, the  
      PRUNE kills it. ---/  
   
 /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /A(*:A)A+(*SKIP)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- This should fail, as a null name is the same as no name ---/  
   
 /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- This fails in PCRE, and I think that is in accordance with Perl's  
      documentation, though in Perl it succeeds. ---/  
   
 /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK  
     AAAC  
 No match  
   
 /--- Mark names can be duplicated ---/  
   
 /A(*:A)B|X(*:A)Y/K  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XY  
 MK: A  
   
 /^A(*:A)B|^X(*:A)Y/K  
     ** Failers  
 No match  
     XAQQ  
 No match, mark = A  
   
 /--- A check on what happens after hitting a mark and them bumping along to  
 something that does not even start. Perl reports tags after the failures here,  
 though it does not when the individual letters are made into something  
 more complicated. ---/  
   
 /A(*:A)B|XX(*:B)Y/K  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XXY  
 MK: B  
     ** Failers  
 No match  
     XAQQ  
 No match  
     XAQQXZZ  
 No match  
     AXQQQ  
 No match  
     AXXQQQ  
 No match  
   
 /--- COMMIT at the start of a pattern should be the same as an anchor. Perl  
 optimizations defeat this. So does the PCRE optimization unless we disable it  
 with \Y. ---/  
   
 /(*COMMIT)ABC/  
     ABCDEFG  
  0: ABC  
     ** Failers  
 No match  
     DEFGABC\Y  
 No match  
   
 /--- Repeat some tests with added studying. ---/  
   
 /A(*COMMIT)B/+KS  
     ACABX  
 No match  
   
 /A(*THEN)B|A(*THEN)C/KS  
     AC  
  0: AC  
   
 /A(*PRUNE)B|A(*PRUNE)C/KS  
     AC  
 No match  
   
 /^(A(*THEN:A)B|C(*THEN:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match  
     CB  
 No match, mark = B  
   
 /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match, mark = A  
     CB  
 No match, mark = B  
   
 /^(A(*PRUNE:)B|C(*PRUNE:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
   
 /A(*PRUNE:A)B/KS  
     ACAB  
  0: AB  
   
 /(*MARK:A)(*PRUNE:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /(*MARK:A)(*THEN:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*:A)A+(*SKIP)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xKS  
     AAAC  
 No match  
   
 /A(*:A)B|XX(*:B)Y/KS  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XXY  
 MK: B  
     ** Failers  
 No match  
     XAQQ  
 No match  
     XAQQXZZ  
 No match  
     AXQQQ  
 No match  
     AXXQQQ  
 No match  
   
 /(*COMMIT)ABC/  
     ABCDEFG  
  0: ABC  
     ** Failers  
 No match  
     DEFGABC\Y  
 No match  
   
 /^(ab (c+(*THEN)cd) | xyz)/x  
     abcccd  
 No match  
   
 /^(ab (c+(*PRUNE)cd) | xyz)/x  
     abcccd  
 No match  
   
 /^(ab (c+(*FAIL)cd) | xyz)/x  
     abcccd  
 No match  
   
 /--- Perl 5.11 gets some of these wrong ---/  
   
 /(?>.(*ACCEPT))*?5/  
     abcde  
  0: a  
   
 /(.(*ACCEPT))*?5/  
     abcde  
  0: a  
  1: a  
10667    
10668  /(.(*ACCEPT))5/  /(.(*ACCEPT))5/
10669      abcde      abcde
# Line 11395  No match Line 10762  No match
10762  /\s*\R/BZ  /\s*\R/BZ
10763  ------------------------------------------------------------------  ------------------------------------------------------------------
10764          Bra          Bra
10765          \s*+          \s*
10766            \R
10767            Ket
10768            End
10769    ------------------------------------------------------------------
10770        \x20\x0a
10771     0:  \x0a
10772        \x20\x0d
10773     0:  \x0d
10774        \x20\x0d\x0a
10775     0:  \x0d\x0a
10776    
10777    /\S*\R/BZ
10778    ------------------------------------------------------------------
10779            Bra
10780            \S*+
10781          \R          \R
10782          Ket          Ket
10783          End          End
10784  ------------------------------------------------------------------  ------------------------------------------------------------------
10785        a\x0a
10786     0: a\x0a
10787    
10788  /-- Perl treats this one differently, not failing the second string. I believe  /X\h*\R/BZ
10789      that is a bug in Perl. --/  ------------------------------------------------------------------
10790            Bra
10791            X
10792            \h*+
10793            \R
10794            Ket
10795            End
10796    ------------------------------------------------------------------
10797        X\x20\x0a
10798     0: X \x0a
10799    
10800  /^((abc|abcx)(*THEN)y|abcd)/  /X\H*\R/BZ
10801      abcd  ------------------------------------------------------------------
10802   0: abcd          Bra
10803   1: abcd          X
10804      *** Failers          \H*
10805  No match          \R
10806      abcxy          Ket
10807            End
10808    ------------------------------------------------------------------
10809        X\x0d\x0a
10810     0: X\x0d\x0a
10811    
10812    /X\H+\R/BZ
10813    ------------------------------------------------------------------
10814            Bra
10815            X
10816            \H+
10817            \R
10818            Ket
10819            End
10820    ------------------------------------------------------------------
10821        X\x0d\x0a
10822     0: X\x0d\x0a
10823    
10824    /X\H++\R/BZ
10825    ------------------------------------------------------------------
10826            Bra
10827            X
10828            \H++
10829            \R
10830            Ket
10831            End
10832    ------------------------------------------------------------------
10833        X\x0d\x0a
10834  No match  No match
10835    
10836  /(?<=abc)def/  /(?<=abc)def/
10837      abc\P\P      abc\P\P
10838  Partial match: abc  Partial match at offset 3: abc
10839    
10840  /abc$/  /abc$/
10841      abc      abc
# Line 11662  No need char Line 11082  No need char
11082    
11083  /(^ab|^)+/I  /(^ab|^)+/I
11084  Capturing subpattern count = 1  Capturing subpattern count = 1
11085    May match empty string
11086  Options: anchored  Options: anchored
11087  No first char  No first char
11088  No need char  No need char
11089    
11090  /(^ab|^)++/I  /(^ab|^)++/I
11091  Capturing subpattern count = 1  Capturing subpattern count = 1
11092    May match empty string
11093  Options: anchored  Options: anchored
11094  No first char  No first char
11095  No need char  No need char
# Line 11686  No need char Line 11108  No need char
11108    
11109  /(?:^ab|^)+/I  /(?:^ab|^)+/I
11110  Capturing subpattern count = 0  Capturing subpattern count = 0
11111    May match empty string
11112  Options: anchored  Options: anchored
11113  No first char  No first char
11114  No need char  No need char
11115    
11116  /(?:^ab|^)++/I  /(?:^ab|^)++/I
11117  Capturing subpattern count = 0  Capturing subpattern count = 0
11118    May match empty string
11119  Options: anchored  Options: anchored
11120  No first char  No first char
11121  No need char  No need char
# Line 11710  Need char = 'b' Line 11134  Need char = 'b'
11134    
11135  /(.*ab|.*)+/I  /(.*ab|.*)+/I
11136  Capturing subpattern count = 1  Capturing subpattern count = 1
11137    May match empty string
11138  No options  No options
11139  First char at start or follows newline  First char at start or follows newline
11140  No need char  No need char
11141    
11142  /(.*ab|.*)++/I  /(.*ab|.*)++/I
11143  Capturing subpattern count = 1  Capturing subpattern count = 1
11144    May match empty string
11145  No options  No options
11146  First char at start or follows newline  First char at start or follows newline
11147  No need char  No need char
# Line 11734  Need char = 'b' Line 11160  Need char = 'b'
11160    
11161  /(?:.*ab|.*)+/I  /(?:.*ab|.*)+/I
11162  Capturing subpattern count = 0  Capturing subpattern count = 0
11163    May match empty string
11164  No options  No options
11165  First char at start or follows newline  First char at start or follows newline
11166  No need char  No need char
11167    
11168  /(?:.*ab|.*)++/I  /(?:.*ab|.*)++/I
11169  Capturing subpattern count = 0  Capturing subpattern count = 0
11170    May match empty string
11171  No options  No options
11172  First char at start or follows newline  First char at start or follows newline
11173  No need char  No need char
# Line 11816  No match Line 11244  No match
11244    
11245  /^.*?(?(?=a)a|b(*THEN)c)/  /^.*?(?(?=a)a|b(*THEN)c)/
11246      ba      ba
11247   0: ba  No match
11248    
11249  /^.*?(?(?=a)a|bc)/  /^.*?(?(?=a)a|bc)/
11250      ba      ba
11251   0: ba   0: ba
11252    
11253    /^.*?(?(?=a)a(*THEN)b|c)/
11254        ac
11255    No match
11256    
11257    /^.*?(?(?=a)a(*THEN)b)c/
11258        ac
11259    No match
11260    
11261    /^.*?(a(*THEN)b)c/
11262        aabc
11263    No match
11264    
11265    /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11266        aabc
11267     0: aabc
11268    
11269    /^.*?(a(*THEN)b|z)c/
11270        aabc
11271     0: aabc
11272     1: ab
11273    
11274    /^.*?(z|a(*THEN)b)c/
11275        aabc
11276     0: aabc
11277     1: ab
11278    
11279  /-- --/  /-- --/
11280    
11281  /-- These studied versions are here because they are not Perl-compatible; the  /-- These studied versions are here because they are not Perl-compatible; the
# Line 11833  No match Line 11287  No match
11287   1: C   1: C
11288  MK: A  MK: A
11289      D      D
11290  No match  No match, mark = A
11291    
11292  /(*:A)A+(*SKIP:A)(B|Z)/KS  /(*:A)A+(*SKIP:A)(B|Z)/KS
11293      AAAC      AAAC
11294  No match  No match, mark = A
11295    
11296  /-- --/  /-- --/
11297    
# Line 11866  No match Line 11320  No match
11320   1: a   1: a
11321   1+ a%   1+ a%
11322    
11323  /(a)b|ac/++  /(a)b|ac/++SS
11324      ac\O3      ac\O3
 Matched, but too many substrings  
11325   0: ac   0: ac
11326   0+   0+
11327    
11328    /(a)(b)x|abc/++
11329         abc\O6
11330     0: abc
11331     0+
11332    
11333    /(a)bc|(a)(b)\2/
11334        \O3abc
11335    Matched, but too many substrings
11336     0: abc
11337        \O4abc
11338    Matched, but too many substrings
11339     0: abc
11340    
11341  /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI  /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11342  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 11907  No set of starting bytes Line 11373  No set of starting bytes
11373  /^(?>a)++/  /^(?>a)++/
11374      aa\M      aa\M
11375  Minimum match() limit = 5  Minimum match() limit = 5
11376  Minimum match() recursion limit = 3  Minimum match() recursion limit = 2
11377   0: aa   0: aa
11378      aaaaaaaaa\M      aaaaaaaaa\M
11379  Minimum match() limit = 12  Minimum match() limit = 12
11380  Minimum match() recursion limit = 3  Minimum match() recursion limit = 2
11381   0: aaaaaaaaa   0: aaaaaaaaa
11382    
11383  /(a)(?1)++/  /(a)(?1)++/
11384      aa\M      aa\M
11385  Minimum match() limit = 7  Minimum match() limit = 7
11386  Minimum match() recursion limit = 5  Minimum match() recursion limit = 4
11387   0: aa   0: aa
11388   1: a   1: a
11389      aaaaaaaaa\M      aaaaaaaaa\M
11390  Minimum match() limit = 21  Minimum match() limit = 21
11391  Minimum match() recursion limit = 5  Minimum match() recursion limit = 4
11392   0: aaaaaaaaa   0: aaaaaaaaa
11393   1: a   1: a
11394    
11395    /(?:(foo)|(bar)|(baz))X/SS=
11396        bazfooX
11397     0: fooX
11398     1: foo
11399     2: <unset>
11400     3: <unset>
11401        foobazbarX
11402     0: barX
11403     1: <unset>
11404     2: bar
11405     3: <unset>
11406        barfooX
11407     0: fooX
11408     1: foo
11409     2: <unset>
11410     3: <unset>
11411        bazX
11412     0: bazX
11413     1: <unset>
11414     2: <unset>
11415     3: baz
11416        foobarbazX
11417     0: bazX
11418     1: <unset>
11419     2: <unset>
11420     3: baz
11421        bazfooX\O0
11422    Matched, but too many substrings
11423        bazfooX\O2
11424    Matched, but too many substrings
11425     0: fooX
11426        bazfooX\O4
11427    Matched, but too many substrings
11428     0: fooX
11429     1: <unset>
11430        bazfooX\O6
11431    Matched, but too many substrings
11432     0: fooX
11433     1: foo
11434     2: <unset>
11435        bazfooX\O8
11436    Matched, but too many substrings
11437     0: fooX
11438     1: foo
11439     2: <unset>
11440     3: <unset>
11441        bazfooX\O10
11442     0: fooX
11443     1: foo
11444     2: <unset>
11445     3: <unset>
11446    
11447    /(?=abc){3}abc/BZ
11448    ------------------------------------------------------------------
11449            Bra
11450            Assert
11451            abc
11452            Ket
11453            abc
11454            Ket
11455            End
11456    ------------------------------------------------------------------
11457    
11458    /(?=abc)+abc/BZ
11459    ------------------------------------------------------------------
11460            Bra
11461            Assert
11462            abc
11463            Ket
11464            abc
11465            Ket
11466            End
11467    ------------------------------------------------------------------
11468    
11469    /(?=abc)++abc/BZ
11470    ------------------------------------------------------------------
11471            Bra
11472            Assert
11473            abc
11474            Ket
11475            abc
11476            Ket
11477            End
11478    ------------------------------------------------------------------
11479    
11480    /(?=abc){0}xyz/BZ
11481    ------------------------------------------------------------------
11482            Bra
11483            Skip zero
11484            Assert
11485            abc
11486            Ket
11487            xyz
11488            Ket
11489            End
11490    ------------------------------------------------------------------
11491    
11492    /(?=(a))?./BZ
11493    ------------------------------------------------------------------
11494            Bra
11495            Brazero
11496            Assert
11497            CBra 1
11498            a
11499            Ket
11500            Ket
11501            Any
11502            Ket
11503            End
11504    ------------------------------------------------------------------
11505    
11506    /(?=(a))??./BZ
11507    ------------------------------------------------------------------
11508            Bra
11509            Braminzero
11510            Assert
11511            CBra 1
11512            a
11513            Ket
11514            Ket
11515            Any
11516            Ket
11517            End
11518    ------------------------------------------------------------------
11519    
11520    /^(?=(a)){0}b(?1)/BZ
11521    ------------------------------------------------------------------
11522            Bra
11523            ^
11524            Skip zero
11525            Assert
11526            CBra 1
11527            a
11528            Ket
11529            Ket
11530            b
11531            Recurse
11532            Ket
11533            End
11534    ------------------------------------------------------------------
11535    
11536    /(?(DEFINE)(a))?b(?1)/BZ
11537    ------------------------------------------------------------------
11538            Bra
11539            Cond
11540            Cond def
11541            CBra 1
11542            a
11543            Ket
11544            Ket
11545            b
11546            Recurse
11547            Ket
11548            End
11549    ------------------------------------------------------------------
11550    
11551    /^(?=(?1))?[az]([abc])d/BZ
11552    ------------------------------------------------------------------
11553            Bra
11554            ^
11555            Brazero
11556            Assert
11557            Recurse
11558            Ket
11559            [az]
11560            CBra 1
11561            [a-c]
11562            Ket
11563            d
11564            Ket
11565            End
11566    ------------------------------------------------------------------
11567    
11568    /^(?!a){0}\w+/BZ
11569    ------------------------------------------------------------------
11570            Bra
11571            ^
11572            Skip zero
11573            Assert not
11574            a
11575            Ket
11576            \w++
11577            Ket
11578            End
11579    ------------------------------------------------------------------
11580    
11581    /(?<=(abc))?xyz/BZ
11582    ------------------------------------------------------------------
11583            Bra
11584            Brazero
11585            AssertB
11586            Reverse
11587            CBra 1
11588            abc
11589            Ket
11590            Ket
11591            xyz
11592            Ket
11593            End
11594    ------------------------------------------------------------------
11595    
11596    /[:a[:abc]b:]/BZ
11597    ------------------------------------------------------------------
11598            Bra
11599            [:[a-c]
11600            b:]
11601            Ket
11602            End
11603    ------------------------------------------------------------------
11604    
11605    /((?2))((?1))/SS
11606        abc
11607    Error -26 (nested recursion at the same subject position)
11608    
11609    /((?(R2)a+|(?1)b))/SS
11610        aaaabcde
11611    Error -26 (nested recursion at the same subject position)
11612    
11613    /(?(R)a*(?1)|((?R))b)/SS
11614        aaaabcde
11615    Error -26 (nested recursion at the same subject position)
11616    
11617    /(a+|(?R)b)/
11618    Failed: recursive call could loop indefinitely at offset 7
11619    
11620    /^(a(*:A)(d|e(*:B))z|aeq)/C
11621        adz
11622    --->adz
11623     +0 ^       ^
11624     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11625     +2 ^       a
11626     +3 ^^      (*:A)
11627     +8 ^^      (d|e(*:B))
11628    Latest Mark: A
11629     +9 ^^      d
11630    +10 ^ ^     |
11631    +18 ^ ^     z
11632    +19 ^  ^    |
11633    +24 ^  ^
11634     0: adz
11635     1: adz
11636     2: d
11637        aez
11638    --->aez
11639     +0 ^       ^
11640     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11641     +2 ^       a
11642     +3 ^^      (*:A)
11643     +8 ^^      (d|e(*:B))
11644    Latest Mark: A
11645     +9 ^^      d
11646    +11 ^^      e
11647    +12 ^ ^     (*:B)
11648    +17 ^ ^     )
11649    Latest Mark: B
11650    +18 ^ ^     z
11651    +19 ^  ^    |
11652    +24 ^  ^
11653     0: aez
11654     1: aez
11655     2: e
11656        aeqwerty
11657    --->aeqwerty
11658     +0 ^            ^
11659     +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11660     +2 ^            a
11661     +3 ^^           (*:A)
11662     +8 ^^           (d|e(*:B))
11663    Latest Mark: A
11664     +9 ^^           d
11665    +11 ^^           e
11666    +12 ^ ^          (*:B)
11667    +17 ^ ^          )
11668    Latest Mark: B
11669    +18 ^ ^          z
11670    +20 ^            a
11671    +21 ^^           e
11672    +22 ^ ^          q
11673    +23 ^  ^         )
11674    +24 ^  ^
11675     0: aeq
11676     1: aeq
11677    
11678    /.(*F)/
11679        \P\Pabc
11680    No match
11681    
11682    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11683    Capturing subpattern count = 0
11684    Max lookbehind = 1
11685    No options
11686    First char = 't'
11687    Need char = 't'
11688    Subject length lower bound = 18
11689    No set of starting bytes
11690    
11691    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11692    Capturing subpattern count = 0
11693    Max lookbehind = 1
11694    No options
11695    No first char
11696    No need char
11697    Subject length lower bound = 8
11698    Starting byte set: < o t u
11699    
11700    /a(*SKIP)c|b(*ACCEPT)|/+S!I
11701    Capturing subpattern count = 0
11702    May match empty string
11703    No options
11704    No first char
11705    No need char
11706    Subject length lower bound = -1
11707    No set of starting bytes
11708        a
11709     0:
11710     0+
11711    
11712    /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11713    Capturing subpattern count = 0
11714    No options
11715    No first char
11716    No need char
11717    Subject length lower bound = -1
11718    Starting byte set: a b x
11719        ax
11720     0: x
11721    
11722    'a*(*ACCEPT)b'+
11723        \N\N
11724    No match
11725        abc\N\N
11726     0: a
11727     0+ bc
11728        bbb\N\N
11729     0:
11730     0+ bb
11731    
11732    /(*ACCEPT)a/+I
11733    Capturing subpattern count = 0
11734    No options
11735    No first char
11736    No need char
11737        bax
11738     0:
11739     0+ bax
11740    
11741    /z(*ACCEPT)a/+I
11742    Capturing subpattern count = 0
11743    No options
11744    First char = 'z'
11745    No need char
11746        baxzbx
11747     0: z
11748     0+ bx
11749    
11750    /a(?:.)*?a/ims
11751        \Mabbbbbbbbbbbbbbbbbbbbba
11752    Minimum match() limit = 65
11753    Minimum match() recursion limit = 2
11754     0: abbbbbbbbbbbbbbbbbbbbba
11755    
11756    /a(?:.(*THEN))*?a/ims
11757        \Mabbbbbbbbbbbbbbbbbbbbba
11758    Minimum match() limit = 86
11759    Minimum match() recursion limit = 45
11760     0: abbbbbbbbbbbbbbbbbbbbba
11761    
11762    /a(?:.(*THEN:ABC))*?a/ims
11763        \Mabbbbbbbbbbbbbbbbbbbbba
11764    Minimum match() limit = 86
11765    Minimum match() recursion limit = 45
11766     0: abbbbbbbbbbbbbbbbbbbbba
11767    
11768    /^(?>a+)(?>(z+))\w/BZ
11769    ------------------------------------------------------------------
11770            Bra
11771            ^
11772            Once_NC
11773            a++
11774            Ket
11775            Once
11776            CBra 1
11777            z++
11778            Ket
11779            Ket
11780            \w
11781            Ket
11782            End
11783    ------------------------------------------------------------------
11784        aaaazzzzb
11785     0: aaaazzzzb
11786     1: zzzz
11787        ** Failers
11788    No match
11789        aazz
11790    No match
11791    
11792    /(.)(\1|a(?2))/
11793        bab
11794     0: bab
11795     1: b
11796     2: ab
11797    
11798    /\1|(.)(?R)\1/
11799        cbbbc
11800     0: cbbbc
11801     1: c
11802    
11803    /(.)((?(1)c|a)|a(?2))/
11804        baa
11805    No match
11806    
11807    /(?P<abn>(?P=abn)xxx)/BZ
11808    ------------------------------------------------------------------
11809            Bra
11810            Once
11811            CBra 1
11812            \1
11813            xxx
11814            Ket
11815            Ket
11816            Ket
11817            End
11818    ------------------------------------------------------------------
11819    
11820    /(a\1z)/BZ
11821    ------------------------------------------------------------------
11822            Bra
11823            Once
11824            CBra 1
11825            a
11826            \1
11827            z
11828            Ket
11829            Ket
11830            Ket
11831            End
11832    ------------------------------------------------------------------
11833    
11834    /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11835         \Maabbccddee
11836    Minimum match() limit = 7
11837    Minimum match() recursion limit = 2
11838     0: aabbccddee
11839    
11840    /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11841         \Maabbccddee
11842    Minimum match() limit = 17
11843    Minimum match() recursion limit = 16
11844     0: aabbccddee
11845     1: aa
11846     2: bb
11847     3: cc
11848     4: dd
11849     5: ee
11850    
11851    /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11852         \Maabbccddee
11853    Minimum match() limit = 13
11854    Minimum match() recursion limit = 10
11855     0: aabbccddee
11856     1: aa
11857     2: cc
11858     3: ee
11859    
11860    /^a\x41z/<JS>
11861        aAz
11862     0: aAz
11863        *** Failers
11864    No match
11865        ax41z
11866    No match
11867    
11868    /^a[m\x41]z/<JS>
11869        aAz
11870     0: aAz
11871    
11872    /^a\x1z/<JS>
11873        ax1z
11874     0: ax1z
11875    
11876    /^a\u0041z/<JS>
11877        aAz
11878     0: aAz
11879        *** Failers
11880    No match
11881        au0041z
11882    No match
11883    
11884    /^a[m\u0041]z/<JS>
11885        aAz
11886     0: aAz
11887    
11888    /^a\u041z/<JS>
11889        au041z
11890     0: au041z
11891        *** Failers
11892    No match
11893        aAz
11894    No match
11895    
11896    /^a\U0041z/<JS>
11897        aU0041z
11898     0: aU0041z
11899        *** Failers
11900    No match
11901        aAz
11902    No match
11903    
11904    /(?(?=c)c|d)++Y/BZ
11905    ------------------------------------------------------------------
11906            Bra
11907            BraPos
11908            Cond
11909            Assert
11910            c
11911            Ket
11912            c
11913            Alt
11914            d
11915            Ket
11916            KetRpos
11917            Y
11918            Ket
11919            End
11920    ------------------------------------------------------------------
11921    
11922    /(?(?=c)c|d)*+Y/BZ
11923    ------------------------------------------------------------------
11924            Bra
11925            Braposzero
11926            BraPos
11927            Cond
11928            Assert
11929            c
11930            Ket
11931            c
11932            Alt
11933            d
11934            Ket
11935            KetRpos
11936            Y
11937            Ket
11938            End
11939    ------------------------------------------------------------------
11940    
11941    /a[\NB]c/
11942    Failed: \N is not supported in a class at offset 3
11943    
11944    /a[B-\Nc]/
11945    Failed: \N is not supported in a class at offset 5
11946    
11947    /(a)(?2){0,1999}?(b)/
11948    
11949    /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
11950    
11951    /--- This test, with something more complicated than individual letters, causes
11952    different behaviour in Perl. Perhaps it disables some optimization; no tag is
11953    passed back for the failures, whereas in PCRE there is a tag. ---/
11954    
11955    /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
11956        AABC
11957     0: AB
11958     1: A
11959     2: B
11960    MK: A
11961        XXYZ
11962     0: XXY
11963     1: <unset>
11964     2: <unset>
11965     3: X
11966     4: X
11967     5: Y
11968    MK: B
11969        ** Failers
11970    No match
11971        XAQQ
11972    No match, mark = A
11973        XAQQXZZ
11974    No match, mark = A
11975        AXQQQ
11976    No match, mark = A
11977        AXXQQQ
11978    No match, mark = B
11979    
11980    /-- Perl doesn't give marks for these, though it does if the alternatives are
11981    replaced by single letters. --/
11982    
11983    /(b|q)(*:m)f|a(*:n)w/K
11984        aw
11985     0: aw
11986    MK: n
11987        ** Failers
11988    No match, mark = n
11989        abc
11990    No match, mark = m
11991    
11992    /(q|b)(*:m)f|a(*:n)w/K
11993        aw
11994     0: aw
11995    MK: n
11996        ** Failers
11997    No match, mark = n
11998        abc
11999    No match, mark = m
12000    
12001    /-- After a partial match, the behaviour is as for a failure. --/
12002    
12003    /^a(*:X)bcde/K
12004       abc\P
12005    Partial match, mark=X: abc
12006    
12007    /-- These are here because Perl doesn't return a mark, except for the first --/
12008    
12009    /(?=(*:x))(q|)/K+
12010        abc
12011     0:
12012     0+ abc
12013     1:
12014    MK: x
12015    
12016    /(?=(*:x))((*:y)q|)/K+
12017        abc
12018     0:
12019     0+ abc
12020     1:
12021    MK: x
12022    
12023    /(?=(*:x))(?:(*:y)q|)/K+
12024        abc
12025     0:
12026     0+ abc
12027    MK: x
12028    
12029    /(?=(*:x))(?>(*:y)q|)/K+
12030        abc
12031     0:
12032     0+ abc
12033    MK: x
12034    
12035    /(?=a(*:x))(?!a(*:y)c)/K+
12036        ab
12037     0:
12038     0+ ab
12039    MK: x
12040    
12041    /(?=a(*:x))(?=a(*:y)c|)/K+
12042        ab
12043     0:
12044     0+ ab
12045    MK: x
12046    
12047    /(..)\1/
12048        ab\P
12049    Partial match: ab
12050        aba\P
12051    Partial match: aba
12052        abab\P
12053     0: abab
12054     1: ab
12055    
12056    /(..)\1/i
12057        ab\P
12058    Partial match: ab
12059        abA\P
12060    Partial match: abA
12061        aBAb\P
12062     0: aBAb
12063     1: aB
12064    
12065    /(..)\1{2,}/
12066        ab\P
12067    Partial match: ab
12068        aba\P
12069    Partial match: aba
12070        abab\P
12071    Partial match: abab
12072        ababa\P
12073    Partial match: ababa
12074        ababab\P
12075     0: ababab
12076     1: ab
12077        ababab\P\P
12078    Partial match: ababab
12079        abababa\P
12080     0: ababab
12081     1: ab
12082        abababa\P\P
12083    Partial match: abababa
12084    
12085    /(..)\1{2,}/i
12086        ab\P
12087    Partial match: ab
12088        aBa\P
12089    Partial match: aBa
12090        aBAb\P
12091    Partial match: aBAb
12092        AbaBA\P
12093    Partial match: AbaBA
12094        abABAb\P
12095     0: abABAb
12096     1: ab
12097        aBAbaB\P\P
12098    Partial match: aBAbaB
12099        abABabA\P
12100     0: abABab
12101     1: ab
12102        abaBABa\P\P
12103    Partial match: abaBABa
12104    
12105    /(..)\1{2,}?x/i
12106        ab\P
12107    Partial match: ab
12108        abA\P
12109    Partial match: abA
12110        aBAb\P
12111    Partial match: aBAb
12112        abaBA\P
12113    Partial match: abaBA
12114        abAbaB\P
12115    Partial match: abAbaB
12116        abaBabA\P
12117    Partial match: abaBabA
12118        abAbABaBx\P
12119     0: abAbABaBx
12120     1: ab
12121    
12122    /^(..)\1/
12123        aba\P
12124    Partial match: aba
12125    
12126    /^(..)\1{2,3}x/
12127        aba\P
12128    Partial match: aba
12129        ababa\P
12130    Partial match: ababa
12131        ababa\P\P
12132    Partial match: ababa
12133        abababx
12134     0: abababx
12135     1: ab
12136        ababababx
12137     0: ababababx
12138     1: ab
12139    
12140    /^(..)\1{2,3}?x/
12141        aba\P
12142    Partial match: aba
12143        ababa\P
12144    Partial match: ababa
12145        ababa\P\P
12146    Partial match: ababa
12147        abababx
12148     0: abababx
12149     1: ab
12150        ababababx
12151     0: ababababx
12152     1: ab
12153    
12154    /^(..)(\1{2,3})ab/
12155        abababab
12156     0: abababab
12157     1: ab
12158     2: abab
12159    
12160    /^\R/
12161        \r\P
12162     0: \x0d
12163        \r\P\P
12164    Partial match: \x0d
12165    
12166    /^\R{2,3}x/
12167        \r\P
12168    Partial match: \x0d
12169        \r\P\P
12170    Partial match: \x0d
12171        \r\r\P
12172    Partial match: \x0d\x0d
12173        \r\r\P\P
12174    Partial match: \x0d\x0d
12175        \r\r\r\P
12176    Partial match: \x0d\x0d\x0d
12177        \r\r\r\P\P
12178    Partial match: \x0d\x0d\x0d
12179        \r\rx
12180     0: \x0d\x0dx
12181        \r\r\rx
12182     0: \x0d\x0d\x0dx
12183    
12184    /^\R{2,3}?x/
12185        \r\P
12186    Partial match: \x0d
12187        \r\P\P
12188    Partial match: \x0d
12189        \r\r\P
12190    Partial match: \x0d\x0d
12191        \r\r\P\P
12192    Partial match: \x0d\x0d
12193        \r\r\r\P
12194    Partial match: \x0d\x0d\x0d
12195        \r\r\r\P\P
12196    Partial match: \x0d\x0d\x0d
12197        \r\rx
12198     0: \x0d\x0dx
12199        \r\r\rx
12200     0: \x0d\x0d\x0dx
12201    
12202    /^\R?x/
12203        \r\P
12204    Partial match: \x0d
12205        \r\P\P
12206    Partial match: \x0d
12207        x
12208     0: x
12209        \rx
12210     0: \x0dx
12211    
12212    /^\R+x/
12213        \r\P
12214    Partial match: \x0d
12215        \r\P\P
12216    Partial match: \x0d
12217        \r\n\P
12218    Partial match: \x0d\x0a
12219        \r\n\P\P
12220    Partial match: \x0d\x0a
12221        \rx
12222     0: \x0dx
12223    
12224    /^a$/<CRLF>
12225        a\r\P
12226    Partial match: a\x0d
12227        a\r\P\P
12228    Partial match: a\x0d
12229    
12230    /^a$/m<CRLF>
12231        a\r\P
12232    Partial match: a\x0d
12233        a\r\P\P
12234    Partial match: a\x0d
12235    
12236    /^(a$|a\r)/<CRLF>
12237        a\r\P
12238     0: a\x0d
12239     1: a\x0d
12240        a\r\P\P
12241    Partial match: a\x0d
12242    
12243    /^(a$|a\r)/m<CRLF>
12244        a\r\P
12245     0: a\x0d
12246     1: a\x0d
12247        a\r\P\P
12248    Partial match: a\x0d
12249    
12250    /./<CRLF>
12251        \r\P
12252     0: \x0d
12253        \r\P\P
12254    Partial match: \x0d
12255    
12256    /.{2,3}/<CRLF>
12257        \r\P
12258    Partial match: \x0d
12259        \r\P\P
12260    Partial match: \x0d
12261        \r\r\P
12262     0: \x0d\x0d
12263        \r\r\P\P
12264    Partial match: \x0d\x0d
12265        \r\r\r\P
12266     0: \x0d\x0d\x0d
12267        \r\r\r\P\P
12268    Partial match: \x0d\x0d\x0d
12269    
12270    /.{2,3}?/<CRLF>
12271        \r\P
12272    Partial match: \x0d
12273        \r\P\P
12274    Partial match: \x0d
12275        \r\r\P
12276     0: \x0d\x0d
12277        \r\r\P\P
12278    Partial match: \x0d\x0d
12279        \r\r\r\P
12280     0: \x0d\x0d
12281        \r\r\r\P\P
12282     0: \x0d\x0d
12283    
12284    "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
12285        ABCDGHI\O03
12286    Matched, but too many substrings
12287     0: ABCD
12288    
12289    /-- These are all run as real matches in test 1; here we are just checking the
12290    settings of the anchored and startline bits. --/
12291    
12292    /(?>.*?a)(?<=ba)/I
12293    Capturing subpattern count = 0
12294    Max lookbehind = 2
12295    No options
12296    No first char
12297    Need char = 'a'
12298    
12299    /(?:.*?a)(?<=ba)/I
12300    Capturing subpattern count = 0
12301    Max lookbehind = 2
12302    No options
12303    First char at start or follows newline
12304    Need char = 'a'
12305    
12306    /.*?a(*PRUNE)b/I
12307    Capturing subpattern count = 0
12308    No options
12309    No first char
12310    Need char = 'b'
12311    
12312    /.*?a(*PRUNE)b/sI
12313    Capturing subpattern count = 0
12314    Options: dotall
12315    No first char
12316    Need char = 'b'
12317    
12318    /^a(*PRUNE)b/sI
12319    Capturing subpattern count = 0
12320    Options: anchored dotall
12321    No first char
12322    No need char
12323    
12324    /.*?a(*SKIP)b/I
12325    Capturing subpattern count = 0
12326    No options
12327    No first char
12328    Need char = 'b'
12329    
12330    /(?>.*?a)b/sI
12331    Capturing subpattern count = 0
12332    Options: dotall
12333    No first char
12334    Need char = 'b'
12335    
12336    /(?>.*?a)b/I
12337    Capturing subpattern count = 0
12338    No options
12339    No first char
12340    Need char = 'b'
12341    
12342    /(?>^a)b/sI
12343    Capturing subpattern count = 0
12344    Options: anchored dotall
12345    No first char
12346    No need char
12347    
12348    /(?>.*?)(?<=(abcd)|(wxyz))/I
12349    Capturing subpattern count = 2
12350    Max lookbehind = 4
12351    May match empty string
12352    No options
12353    No first char
12354    No need char
12355    
12356    /(?>.*)(?<=(abcd)|(wxyz))/I
12357    Capturing subpattern count = 2
12358    Max lookbehind = 4
12359    May match empty string
12360    No options
12361    No first char
12362    No need char
12363    
12364    "(?>.*)foo"I
12365    Capturing subpattern count = 0
12366    No options
12367    No first char
12368    Need char = 'o'
12369    
12370    "(?>.*?)foo"I
12371    Capturing subpattern count = 0
12372    No options
12373    No first char
12374    Need char = 'o'
12375    
12376    /(?>^abc)/mI
12377    Capturing subpattern count = 0
12378    Options: multiline
12379    First char at start or follows newline
12380    Need char = 'c'
12381    
12382    /(?>.*abc)/mI
12383    Capturing subpattern count = 0
12384    Options: multiline
12385    No first char
12386    Need char = 'c'
12387    
12388    /(?:.*abc)/mI
12389    Capturing subpattern count = 0
12390    Options: multiline
12391    First char at start or follows newline
12392    Need char = 'c'
12393    
12394    /-- Check PCRE_STUDY_EXTRA_NEEDED --/
12395    
12396    /.?/S-I
12397    Capturing subpattern count = 0
12398    May match empty string
12399    No options
12400    No first char
12401    No need char
12402    Study returned NULL
12403    
12404    /.?/S!I
12405    Capturing subpattern count = 0
12406    May match empty string
12407    No options
12408    No first char
12409    No need char
12410    Subject length lower bound = -1
12411    No set of starting bytes
12412    
12413    /(?:(a)+(?C1)bb|aa(?C2)b)/
12414        aab\C+
12415    Callout 1: last capture = 1
12416     0: <unset>
12417     1: a
12418    --->aab
12419        ^ ^     b
12420    Callout 1: last capture = 1
12421     0: <unset>
12422     1: a
12423    --->aab
12424        ^^      b
12425    Callout 2: last capture = -1
12426     0: <unset>
12427    --->aab
12428        ^ ^     b
12429     0: aab
12430    
12431    /(?:(a)++(?C1)bb|aa(?C2)b)/
12432        aab\C+
12433    Callout 1: last capture = 1
12434     0: <unset>
12435     1: a
12436    --->aab
12437        ^ ^     b
12438    Callout 2: last capture = -1
12439     0: <unset>
12440    --->aab
12441        ^ ^     b
12442     0: aab
12443    
12444    /(?:(?>(a))(?C1)bb|aa(?C2)b)/
12445        aab\C+
12446    Callout 1: last capture = 1
12447     0: <unset>
12448     1: a
12449    --->aab
12450        ^^      b
12451    Callout 2: last capture = -1
12452     0: <unset>
12453    --->aab
12454        ^ ^     b
12455     0: aab
12456    
12457    /(?:(?1)(?C1)x|ab(?C2))((a)){0}/
12458        aab\C+
12459    Callout 1: last capture = -1
12460     0: <unset>
12461    --->aab
12462        ^^      x
12463    Callout 1: last capture = -1
12464     0: <unset>
12465    --->aab
12466         ^^     x
12467    Callout 2: last capture = -1
12468     0: <unset>
12469    --->aab
12470         ^ ^    )
12471     0: ab
12472    
12473    /(?1)(?C1)((a)(?C2)){0}/
12474        aab\C+
12475    Callout 2: last capture = 2
12476     0: <unset>
12477     1: <unset>
12478     2: a
12479    --->aab
12480        ^^      )
12481    Callout 1: last capture = -1
12482     0: <unset>
12483    --->aab
12484        ^^      ((a)(?C2)){0}
12485     0: a
12486    
12487    /(?:(a)+(?C1)bb|aa(?C2)b)++/
12488        aab\C+
12489    Callout 1: last capture = 1
12490     0: <unset>
12491     1: a
12492    --->aab
12493        ^ ^     b
12494    Callout 1: last capture = 1
12495     0: <unset>
12496     1: a
12497    --->aab
12498        ^^      b
12499    Callout 2: last capture = -1
12500     0: <unset>
12501    --->aab
12502        ^ ^     b
12503     0: aab
12504        aab\C+\O2
12505    Callout 1: last capture = 1
12506     0: <unset>
12507    --->aab
12508        ^ ^     b
12509    Callout 1: last capture = 1
12510     0: <unset>
12511    --->aab
12512        ^^      b
12513    Callout 2: last capture = -1
12514     0: <unset>
12515    --->aab
12516        ^ ^     b
12517     0: aab
12518    
12519    /(ab)x|ab/
12520        ab\O3
12521     0: ab
12522        ab\O2
12523     0: ab
12524    
12525    /(ab)/
12526        ab\O3
12527    Matched, but too many substrings
12528     0: ab
12529        ab\O2
12530    Matched, but too many substrings
12531     0: ab
12532    
12533    /(?<=123)(*MARK:xx)abc/K
12534        xxxx123a\P\P
12535    Partial match at offset 7, mark=xx: 123a
12536        xxxx123a\P
12537    Partial match at offset 7, mark=xx: 123a
12538    
12539    /123\Kabc/
12540        xxxx123a\P\P
12541    Partial match: 123a
12542        xxxx123a\P
12543    Partial match: 123a
12544    
12545    /^(?(?=a)aa|bb)/C
12546        bb
12547    --->bb
12548     +0 ^      ^
12549     +1 ^      (?(?=a)aa|bb)
12550     +3 ^      (?=a)
12551     +6 ^      a
12552    +11 ^      b
12553    +12 ^^     b
12554    +13 ^ ^    )
12555    +14 ^ ^
12556     0: bb
12557    
12558    /(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/
12559        bb
12560    --->bb
12561      1 ^      ^
12562      2 ^      (?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))
12563     99 ^      (?=(?C3)a(?C4))
12564      3 ^      a
12565      8 ^      b
12566      9 ^^     b
12567     10 ^ ^    )
12568     11 ^ ^
12569     0: bb
12570    
12571    /-- Perl seems to have a bug with this one --/
12572    
12573    /aaaaa(*COMMIT)(*PRUNE)b|a+c/
12574        aaaaaac
12575     0: aaaac
12576    
12577    /-- Here are some that Perl treats differently because of the way it handles
12578    backtracking verbs. --/
12579    
12580     /(?!a(*COMMIT)b)ac|ad/
12581         ac
12582     0: ac
12583         ad
12584     0: ad
12585    
12586    /^(?!a(*THEN)b|ac)../
12587         ac
12588    No match
12589         ad
12590     0: ad
12591    
12592    /^(?=a(*THEN)b|ac)/
12593        ac
12594     0:
12595    
12596    /\A.*?(?:a|b(*THEN)c)/
12597        ba
12598     0: ba
12599    
12600    /\A.*?(?:a|b(*THEN)c)++/
12601        ba
12602     0: ba
12603    
12604    /\A.*?(?:a|b(*THEN)c|d)/
12605        ba
12606     0: ba
12607    
12608    /(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/
12609        aac
12610     0: aac
12611    
12612    /\A.*?(a|b(*THEN)c)/
12613        ba
12614     0: ba
12615     1: a
12616    
12617    /^(A(*THEN)B|A(*THEN)D)/
12618        AD
12619     0: AD
12620     1: AD
12621    
12622    /(?!b(*THEN)a)bn|bnn/
12623        bnn
12624     0: bn
12625    
12626    /(?(?=b(*SKIP)a)bn|bnn)/
12627        bnn
12628    No match
12629    
12630    /(?=b(*THEN)a|)bn|bnn/
12631        bnn
12632     0: bn
12633    
12634    /-------------------------/
12635    
12636    /(*LIMIT_MATCH=12bc)abc/
12637    Failed: (*VERB) not recognized or malformed at offset 7
12638    
12639    /(*LIMIT_MATCH=4294967290)abc/
12640    Failed: (*VERB) not recognized or malformed at offset 7
12641    
12642    /(*LIMIT_RECURSION=4294967280)abc/I
12643    Capturing subpattern count = 0
12644    Recursion limit = 4294967280
12645    No options
12646    First char = 'a'
12647    Need char = 'c'
12648    
12649    /(a+)*zz/
12650        aaaaaaaaaaaaaz
12651    No match
12652        aaaaaaaaaaaaaz\q3000
12653    Error -8 (match limit exceeded)
12654    
12655    /(a+)*zz/S-
12656        aaaaaaaaaaaaaz\Q10
12657    Error -21 (recursion limit exceeded)
12658    
12659    /(*LIMIT_MATCH=3000)(a+)*zz/I
12660    Capturing subpattern count = 1
12661    Match limit = 3000
12662    No options
12663    No first char
12664    Need char = 'z'
12665        aaaaaaaaaaaaaz
12666    Error -8 (match limit exceeded)
12667        aaaaaaaaaaaaaz\q60000
12668    Error -8 (match limit exceeded)
12669    
12670    /(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
12671    Capturing subpattern count = 1
12672    Match limit = 3000
12673    No options
12674    No first char
12675    Need char = 'z'
12676        aaaaaaaaaaaaaz
12677    Error -8 (match limit exceeded)
12678    
12679    /(*LIMIT_MATCH=60000)(a+)*zz/I
12680    Capturing subpattern count = 1
12681    Match limit = 60000
12682    No options
12683    No first char
12684    Need char = 'z'
12685        aaaaaaaaaaaaaz
12686    No match
12687        aaaaaaaaaaaaaz\q3000
12688    Error -8 (match limit exceeded)
12689    
12690    /(*LIMIT_RECURSION=10)(a+)*zz/IS-
12691    Capturing subpattern count = 1
12692    Recursion limit = 10
12693    No options
12694    No first char
12695    Need char = 'z'
12696    Subject length lower bound = 2
12697    Starting byte set: a z
12698        aaaaaaaaaaaaaz
12699    Error -21 (recursion limit exceeded)
12700        aaaaaaaaaaaaaz\Q1000
12701    Error -21 (recursion limit exceeded)
12702    
12703    /(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12704    Capturing subpattern count = 1
12705    Recursion limit = 10
12706    No options
12707    No first char
12708    Need char = 'z'
12709    Subject length lower bound = 2
12710    Starting byte set: a z
12711        aaaaaaaaaaaaaz
12712    Error -21 (recursion limit exceeded)
12713    
12714    /(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12715    Capturing subpattern count = 1
12716    Recursion limit = 1000
12717    No options
12718    No first char
12719    Need char = 'z'
12720    Subject length lower bound = 2
12721    Starting byte set: a z
12722        aaaaaaaaaaaaaz
12723    No match
12724        aaaaaaaaaaaaaz\Q10
12725    Error -21 (recursion limit exceeded)
12726    
12727    /-- This test causes a segfault with Perl 5.18.0 --/
12728    
12729    /^(?=(a)){0}b(?1)/
12730        backgammon
12731     0: ba
12732    
12733    /(?|(?<n>f)|(?<n>b))/JI
12734    Capturing subpattern count = 1
12735    Named capturing subpatterns:
12736      n   1
12737    Options: dupnames
12738    No first char
12739    No need char
12740    
12741    /(?<a>abc)(?<a>z)\k<a>()/JDZS
12742    ------------------------------------------------------------------
12743            Bra
12744            CBra 1
12745            abc
12746            Ket
12747            CBra 2
12748            z
12749            Ket
12750            \k<a>2
12751            CBra 3
12752            Ket
12753            Ket
12754            End
12755    ------------------------------------------------------------------
12756    Capturing subpattern count = 3
12757    Max back reference = 2
12758    Named capturing subpatterns:
12759      a   1
12760      a   2
12761    Options: dupnames
12762    First char = 'a'
12763    Need char = 'z'
12764    Subject length lower bound = 5
12765    No set of starting bytes
12766    
12767    /a*[bcd]/BZ
12768    ------------------------------------------------------------------
12769            Bra
12770            a*+
12771            [b-d]
12772            Ket
12773            End
12774    ------------------------------------------------------------------
12775    
12776    /[bcd]*a/BZ
12777    ------------------------------------------------------------------
12778            Bra
12779            [b-d]*+
12780            a
12781            Ket
12782            End
12783    ------------------------------------------------------------------
12784    
12785    /-- A complete set of tests for auto-possessification of character types --/
12786    
12787    /\D+\D \D+\d \D+\S \D+\s \D+\W \D+\w \D+. \D+\C \D+\R \D+\H \D+\h \D+\V \D+\v \D+\X \D+\Z \D+\z \D+$/BZx
12788    ------------------------------------------------------------------
12789            Bra
12790            \D+
12791            \D
12792            \D++
12793            \d
12794            \D+
12795            \S
12796            \D+
12797            \s
12798            \D+
12799            \W
12800            \D+
12801            \w
12802            \D+
12803            Any
12804            \D+
12805            AllAny
12806            \D+
12807            \R
12808            \D+
12809            \H
12810            \D+
12811            \h
12812            \D+
12813            \V
12814            \D+
12815            \v
12816            \D+
12817            extuni
12818            \D+
12819            \Z
12820            \D++
12821            \z
12822            \D+
12823            $
12824            Ket
12825            End
12826    ------------------------------------------------------------------
12827    
12828    /\d+\D \d+\d \d+\S \d+\s \d+\W \d+\w \d+. \d+\C \d+\R \d+\H \d+\h \d+\V \d+\v \d+\X \d+\Z \d+\z \d+$/BZx
12829    ------------------------------------------------------------------
12830            Bra
12831            \d++
12832            \D
12833            \d+
12834            \d
12835            \d+
12836            \S
12837            \d++
12838            \s
12839            \d++
12840            \W
12841            \d+
12842            \w
12843            \d+
12844            Any
12845            \d+
12846            AllAny
12847            \d++
12848            \R
12849            \d+
12850            \H
12851            \d++
12852            \h
12853            \d+
12854            \V
12855            \d++
12856            \v
12857            \d+
12858            extuni
12859            \d++
12860            \Z
12861            \d++
12862            \z
12863            \d++
12864            $
12865            Ket
12866            End
12867    ------------------------------------------------------------------
12868    
12869    /\S+\D \S+\d \S+\S \S+\s \S+\W \S+\w \S+. \S+\C \S+\R \S+\H \S+\h \S+\V \S+\v \S+\X \S+\Z \S+\z \S+$/BZx
12870    ------------------------------------------------------------------
12871            Bra
12872            \S+
12873            \D
12874            \S+
12875            \d
12876            \S+
12877            \S
12878            \S++
12879            \s
12880            \S+
12881            \W
12882            \S+
12883            \w
12884            \S+
12885            Any
12886            \S+
12887            AllAny
12888            \S++
12889            \R
12890            \S+
12891            \H
12892            \S++
12893            \h
12894            \S+
12895            \V
12896            \S++
12897            \v
12898            \S+
12899            extuni
12900            \S++
12901            \Z
12902            \S++
12903            \z
12904            \S++
12905            $
12906            Ket
12907            End
12908    ------------------------------------------------------------------
12909    
12910    /\s+\D \s+\d \s+\S \s+\s \s+\W \s+\w \s+. \s+\C \s+\R \s+\H \s+\h \s+\V \s+\v \s+\X \s+\Z \s+\z \s+$/BZx
12911    ------------------------------------------------------------------
12912            Bra
12913            \s+
12914            \D
12915            \s++
12916            \d
12917            \s++
12918            \S
12919            \s+
12920            \s
12921            \s+
12922            \W
12923            \s++
12924            \w
12925            \s+
12926            Any
12927            \s+
12928            AllAny
12929            \s+
12930            \R
12931            \s+
12932            \H
12933            \s+
12934            \h
12935            \s+
12936            \V
12937            \s+
12938            \v
12939            \s+
12940            extuni
12941            \s+
12942            \Z
12943            \s++
12944            \z
12945            \s+
12946            $
12947            Ket
12948            End
12949    ------------------------------------------------------------------
12950    
12951    /\W+\D \W+\d \W+\S \W+\s \W+\W \W+\w \W+. \W+\C \W+\R \W+\H \W+\h \W+\V \W+\v \W+\X \W+\Z \W+\z \W+$/BZx
12952    ------------------------------------------------------------------
12953            Bra
12954            \W+
12955            \D
12956            \W++
12957            \d
12958            \W+
12959            \S
12960            \W+
12961            \s
12962            \W+
12963            \W
12964            \W++
12965            \w
12966            \W+
12967            Any
12968            \W+
12969            AllAny
12970            \W+
12971            \R
12972            \W+
12973            \H
12974            \W+
12975            \h
12976            \W+
12977            \V
12978            \W+
12979            \v
12980            \W+
12981            extuni
12982            \W+
12983            \Z
12984            \W++
12985            \z
12986            \W+
12987            $
12988            Ket
12989            End
12990    ------------------------------------------------------------------
12991    
12992    /\w+\D \w+\d \w+\S \w+\s \w+\W \w+\w \w+. \w+\C \w+\R \w+\H \w+\h \w+\V \w+\v \w+\X \w+\Z \w+\z \w+$/BZx
12993    ------------------------------------------------------------------
12994            Bra
12995            \w+
12996            \D
12997            \w+
12998            \d
12999            \w+
13000            \S
13001            \w++
13002            \s
13003            \w++
13004            \W
13005            \w+
13006            \w
13007            \w+
13008            Any
13009            \w+
13010            AllAny
13011            \w++
13012            \R
13013            \w+
13014            \H
13015            \w++
13016            \h
13017            \w+
13018            \V
13019            \w++
13020            \v
13021            \w+
13022            extuni
13023            \w++
13024            \Z
13025            \w++
13026            \z
13027            \w++
13028            $
13029            Ket
13030            End
13031    ------------------------------------------------------------------
13032    
13033    /\C+\D \C+\d \C+\S \C+\s \C+\W \C+\w \C+. \C+\C \C+\R \C+\H \C+\h \C+\V \C+\v \C+\X \C+\Z \C+\z \C+$/BZx
13034    ------------------------------------------------------------------
13035            Bra
13036            AllAny+
13037            \D
13038            AllAny+
13039            \d
13040            AllAny+
13041            \S
13042            AllAny+
13043            \s
13044            AllAny+
13045            \W
13046            AllAny+
13047            \w
13048            AllAny+
13049            Any
13050            AllAny+
13051            AllAny
13052            AllAny+
13053            \R
13054            AllAny+
13055            \H
13056            AllAny+
13057            \h
13058            AllAny+
13059            \V
13060            AllAny+
13061            \v
13062            AllAny+
13063            extuni
13064            AllAny+
13065            \Z
13066            AllAny++
13067            \z
13068            AllAny+
13069            $
13070            Ket
13071            End
13072    ------------------------------------------------------------------
13073    
13074    /\R+\D \R+\d \R+\S \R+\s \R+\W \R+\w \R+. \R+\C \R+\R \R+\H \R+\h \R+\V \R+\v \R+\X \R+\Z \R+\z \R+$/BZx
13075    ------------------------------------------------------------------
13076            Bra
13077            \R+
13078            \D
13079            \R++
13080            \d
13081            \R+
13082            \S
13083            \R++
13084            \s
13085            \R+
13086            \W
13087            \R++
13088            \w
13089            \R++
13090            Any
13091            \R+
13092            AllAny
13093            \R+
13094            \R
13095            \R+
13096            \H
13097            \R++
13098            \h
13099            \R+
13100            \V
13101            \R+
13102            \v
13103            \R+
13104            extuni
13105            \R+
13106            \Z
13107            \R++
13108            \z
13109            \R+
13110            $
13111            Ket
13112            End
13113    ------------------------------------------------------------------
13114    
13115    /\H+\D \H+\d \H+\S \H+\s \H+\W \H+\w \H+. \H+\C \H+\R \H+\H \H+\h \H+\V \H+\v \H+\X \H+\Z \H+\z \H+$/BZx
13116    ------------------------------------------------------------------
13117            Bra
13118            \H+
13119            \D
13120            \H+
13121            \d
13122            \H+
13123            \S
13124            \H+
13125            \s
13126            \H+
13127            \W
13128            \H+
13129            \w
13130            \H+
13131            Any
13132            \H+
13133            AllAny
13134            \H+
13135            \R
13136            \H+
13137            \H
13138            \H++
13139            \h
13140            \H+
13141            \V
13142            \H+
13143            \v
13144            \H+
13145            extuni
13146            \H+
13147            \Z
13148            \H++
13149            \z
13150            \H+
13151            $
13152            Ket
13153            End
13154    ------------------------------------------------------------------
13155    
13156    /\h+\D \h+\d \h+\S \h+\s \h+\W \h+\w \h+. \h+\C \h+\R \h+\H \h+\h \h+\V \h+\v \h+\X \h+\Z \h+\z \h+$/BZx
13157    ------------------------------------------------------------------
13158            Bra
13159            \h+
13160            \D
13161            \h++
13162            \d
13163            \h++
13164            \S
13165            \h+
13166            \s
13167            \h+
13168            \W
13169            \h++
13170            \w
13171            \h+
13172            Any
13173            \h+
13174            AllAny
13175            \h++
13176            \R
13177            \h++
13178            \H
13179            \h+
13180            \h
13181            \h+
13182            \V
13183            \h++
13184            \v
13185            \h+
13186            extuni
13187            \h+
13188            \Z
13189            \h++
13190            \z
13191            \h+
13192            $
13193            Ket
13194            End
13195    ------------------------------------------------------------------
13196    
13197    /\V+\D \V+\d \V+\S \V+\s \V+\W \V+\w \V+. \V+\C \V+\R \V+\H \V+\h \V+\V \V+\v \V+\X \V+\Z \V+\z \V+$/BZx
13198    ------------------------------------------------------------------
13199            Bra
13200            \V+
13201            \D
13202            \V+
13203            \d
13204            \V+
13205            \S
13206            \V+
13207            \s
13208            \V+
13209            \W
13210            \V+
13211            \w
13212            \V+
13213            Any
13214            \V+
13215            AllAny
13216            \V++
13217            \R
13218            \V+
13219            \H
13220            \V+
13221            \h
13222            \V+
13223            \V