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