/[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 1393 by ph10, Fri Nov 8 16:37:21 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 9402  No match Line 9281  No match
9281      ab      ab
9282  No match  No match
9283    
9284  /a(?!)+b/  /a(?!)b/BZ
9285  Failed: nothing to repeat at offset 5  ------------------------------------------------------------------
9286            Bra
9287            a
9288            *FAIL
9289            b
9290            Ket
9291            End
9292    ------------------------------------------------------------------
9293    
9294    /(?!)?a/BZ
9295    ------------------------------------------------------------------
9296            Bra
9297            Brazero
9298            Assert not
9299            Ket
9300            a
9301            Ket
9302            End
9303    ------------------------------------------------------------------
9304        ab
9305     0: a
9306    
9307  /a(*FAIL)+b/  /a(*FAIL)+b/
9308  Failed: nothing to repeat at offset 8  Failed: nothing to repeat at offset 8
# Line 9418  Starting byte set: x y z Line 9317  Starting byte set: x y z
9317    
9318  /(?(?=.*b)b|^)/CI  /(?(?=.*b)b|^)/CI
9319  Capturing subpattern count = 0  Capturing subpattern count = 0
9320    May match empty string
9321  Options:  Options:
9322  No first char  No first char
9323  No need char  No need char
# Line 9430  No need char Line 9330  No need char
9330   +7 ^ ^     b   +7 ^ ^     b
9331   +7 ^^      b   +7 ^^      b
9332   +7 ^       b   +7 ^       b
9333    +11 ^       ^
9334  +12 ^       )  +12 ^       )
9335  +13 ^  +13 ^
9336   0:   0:
# Line 9467  No options Line 9368  No options
9368  First char at start or follows newline  First char at start or follows newline
9369  No need char  No need char
9370    
 /a?|b?/P  
     abc  
  0: a  
     ** Failers  
  0:  
     ddd\N  
 No match: POSIX code 17: match failed  
   
9371  /xyz/C  /xyz/C
9372    xyz    xyz
9373  --->xyz  --->xyz
# Line 9568  No match Line 9461  No match
9461   +3 ^ ^      (?(?=[a])[^"])   +3 ^ ^      (?(?=[a])[^"])
9462   +5 ^ ^      (?=[a])   +5 ^ ^      (?=[a])
9463   +8 ^ ^      [a]   +8 ^ ^      [a]
9464    +17 ^ ^      |
9465  +21 ^ ^      "  +21 ^ ^      "
9466  +18 ^ ^      b  +18 ^ ^      b
9467  +19 ^  ^     )  +19 ^  ^     )
9468   +3 ^  ^     (?(?=[a])[^"])   +3 ^  ^     (?(?=[a])[^"])
9469   +5 ^  ^     (?=[a])   +5 ^  ^     (?=[a])
9470   +8 ^  ^     [a]   +8 ^  ^     [a]
9471    +17 ^  ^     |
9472  +21 ^  ^     "  +21 ^  ^     "
9473  +22 ^   ^    $  +22 ^   ^    $
9474  +23 ^   ^  +23 ^   ^
# Line 9869  Partial match: the cat Line 9764  Partial match: the cat
9764     abc\P\P     abc\P\P
9765   0: abc   0: abc
9766    
 /\w+A/P  
    CDAAAAB  
  0: CDAAAA  
   
 /\w+A/PU  
    CDAAAAB  
  0: CDA  
   
9767  /abc\K123/  /abc\K123/
9768      xyzabc123pqr      xyzabc123pqr
9769   0: 123   0: 123
# Line 9889  Partial match: abc12 Line 9776  Partial match: abc12
9776      xyzabc123pqr      xyzabc123pqr
9777   0: 123   0: 123
9778      xyzabc12\P      xyzabc12\P
9779  Partial match: abc12  Partial match at offset 6: abc12
9780      xyzabc12\P\P      xyzabc12\P\P
9781  Partial match: abc12  Partial match at offset 6: abc12
9782    
9783  /\babc\b/  /\babc\b/
9784      +++abc+++      +++abc+++
9785   0: abc   0: abc
9786      +++ab\P      +++ab\P
9787  Partial match: +ab  Partial match at offset 3: +ab
9788      +++ab\P\P      +++ab\P\P
9789  Partial match: +ab  Partial match at offset 3: +ab
9790    
9791  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9792  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10269  Need char = ':' Line 10156  Need char = ':'
10156  Subject length lower bound = 22  Subject length lower bound = 22
10157  No set of starting bytes  No set of starting bytes
10158    
 /  (?: [\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  
   
10159  /<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
10160  Capturing subpattern count = 11  Capturing subpattern count = 11
10161  Options: caseless dotall  Options: caseless dotall
# Line 10484  No set of starting bytes Line 10167  No set of starting bytes
10167  "(?>.*/)foo"SI  "(?>.*/)foo"SI
10168  Capturing subpattern count = 0  Capturing subpattern count = 0
10169  No options  No options
10170  First char at start or follows newline  No first char
10171  Need char = 'o'  Need char = 'o'
10172  Subject length lower bound = 4  Subject length lower bound = 4
10173  No set of starting bytes  No set of starting bytes
# Line 10546  No set of starting bytes Line 10229  No set of starting bytes
10229  Capturing subpattern count = 1  Capturing subpattern count = 1
10230  Named capturing subpatterns:  Named capturing subpatterns:
10231    a   1    a   1
   a   1  
10232  No options  No options
10233  No first char  No first char
10234  No need char  No need char
# Line 10619  No match Line 10301  No match
10301          Ket          Ket
10302          Ket          Ket
10303          Cond          Cond
10304        4 Cond nref          Cond ref <D>2
10305          X          X
10306          Alt          Alt
10307          Y          Y
# Line 10665  No match Line 10347  No match
10347          CBra 4          CBra 4
10348          d          d
10349          Cond          Cond
10350          Cond nrecurse 1          Cond recurse <A>2
10351          $          $
10352          Alt          Alt
10353          Recurse          Recurse
# Line 10727  Partial match: abca Line 10409  Partial match: abca
10409      xxxxabcde\P\P      xxxxabcde\P\P
10410  Partial match: abcde  Partial match: abcde
10411    
10412  /-- 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
10413      broken and not behaving as specified in that it *does* bumpalong after      broken and not behaving as specified in that it *does* bumpalong after
10414      hitting (*COMMIT). --/      hitting (*COMMIT). --/
10415    
# Line 10923  No match Line 10605  No match
10605          End          End
10606  ------------------------------------------------------------------  ------------------------------------------------------------------
10607    
10608  / -- 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  
10609       believe this to be a Perl bug. --/       believe this to be a Perl bug. --/
10610    
 /(?=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  
   
10611  /(?>a\Kb)z|(ab)/  /(?>a\Kb)z|(ab)/
10612      ab      ab
10613   0: ab   0: ab
10614   1: ab   1: ab
10615    
 /----------------------/  
   
10616  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10617  Failed: recursive call could loop indefinitely at offset 31  Failed: recursive call could loop indefinitely at offset 31
10618    
# Line 10970  Failed: an argument is not allowed for ( Line 10632  Failed: an argument is not allowed for (
10632      ACABX      ACABX
10633  No match  No match
10634    
10635  /--- 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
10636       is a bug in Perl. ---/       is a bug in Perl. ---/
10637    
10638  /A(*THEN)B|A(*THEN)C/K  /A(*THEN)B|A(*THEN)C/K
# Line 10981  No match Line 10643  No match
10643      AC      AC
10644  No match  No match
10645    
10646  /--- 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,
10647       11 because Perl doesn't seem to follow its specification entirely  though PCRE does. ---/
      correctly. ---/  
   
 /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is  
      not clear how Perl defines "involved in the failure of the match". ---/  
10648    
10649  /^(A(*THEN:A)B|C(*THEN:B)D)/K  /^A(*:A)B|^X(*:A)Y/K
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
10650      ** Failers      ** Failers
10651  No match  No match
10652      AC      XAQQ
10653  No match  No match, mark = A
     CB  
 No match, mark = B  
10654    
10655  /--- 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
10656  names for success, though Perl does, contrary to its spec. ---/  optimizations defeat this. So does the PCRE optimization unless we disable it
10657    with \Y. ---/
10658    
10659  /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K  /(*COMMIT)ABC/
10660      AB      ABCDEFG
10661   0: AB   0: ABC
  1: AB  
     CD  
  0: CD  
  1: CD  
10662      ** Failers      ** Failers
10663  No match  No match
10664      AC      DEFGABC\Y
10665  No match, mark = A  No match
     CB  
 No match, mark = B  
10666    
10667  /--- An empty name does not pass back an empty string. It is the same as if no  /^(ab (c+(*THEN)cd) | xyz)/x
10668  name were given. ---/      abcccd
10669    No match
10670    
10671  /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K  /^(ab (c+(*PRUNE)cd) | xyz)/x
10672      AB      abcccd
10673   0: AB  No match
  1: AB  
     CD  
  0: CD  
  1: CD  
   
 /--- PRUNE goes to next bumpalong; COMMIT does not. ---/  
   
 /A(*PRUNE:A)B/K  
     ACAB  
  0: AB  
   
 /(*MARK:A)(*PRUNE:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /(*MARK:A)(*PRUNE:B)(C|X)/KSS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match, mark = B  
   
 /(*MARK:A)(*THEN:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /(*MARK:A)(*THEN:B)(C|X)/KSS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match, mark = B  
   
 /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/  
   
 /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- Same --/  
   
 /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- This should fail; the SKIP advances by one, but when we get to AC, the  
      PRUNE kills it. ---/  
   
 /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /A(*:A)A+(*SKIP)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- This should fail, as a null name is the same as no name ---/  
   
 /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- This fails in PCRE, and I think that is in accordance with Perl's  
      documentation, though in Perl it succeeds. ---/  
   
 /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK  
     AAAC  
 No match  
   
 /--- Mark names can be duplicated ---/  
   
 /A(*:A)B|X(*:A)Y/K  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XY  
 MK: A  
   
 /^A(*:A)B|^X(*:A)Y/K  
     ** Failers  
 No match  
     XAQQ  
 No match, mark = A  
   
 /--- A check on what happens after hitting a mark and them bumping along to  
 something that does not even start. Perl reports tags after the failures here,  
 though it does not when the individual letters are made into something  
 more complicated. ---/  
   
 /A(*:A)B|XX(*:B)Y/K  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XXY  
 MK: B  
     ** Failers  
 No match  
     XAQQ  
 No match  
     XAQQXZZ  
 No match  
     AXQQQ  
 No match  
     AXXQQQ  
 No match  
   
 /--- COMMIT at the start of a pattern should be the same as an anchor. Perl  
 optimizations defeat this. So does the PCRE optimization unless we disable it  
 with \Y. ---/  
   
 /(*COMMIT)ABC/  
     ABCDEFG  
  0: ABC  
     ** Failers  
 No match  
     DEFGABC\Y  
 No match  
   
 /--- Repeat some tests with added studying. ---/  
   
 /A(*COMMIT)B/+KS  
     ACABX  
 No match  
   
 /A(*THEN)B|A(*THEN)C/KS  
     AC  
  0: AC  
   
 /A(*PRUNE)B|A(*PRUNE)C/KS  
     AC  
 No match  
   
 /^(A(*THEN:A)B|C(*THEN:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match  
     CB  
 No match, mark = B  
   
 /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match, mark = A  
     CB  
 No match, mark = B  
   
 /^(A(*PRUNE:)B|C(*PRUNE:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
   
 /A(*PRUNE:A)B/KS  
     ACAB  
  0: AB  
   
 /(*MARK:A)(*PRUNE:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /(*MARK:A)(*THEN:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*:A)A+(*SKIP)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xKS  
     AAAC  
 No match  
   
 /A(*:A)B|XX(*:B)Y/KS  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XXY  
 MK: B  
     ** Failers  
 No match  
     XAQQ  
 No match  
     XAQQXZZ  
 No match  
     AXQQQ  
 No match  
     AXXQQQ  
 No match  
   
 /(*COMMIT)ABC/  
     ABCDEFG  
  0: ABC  
     ** Failers  
 No match  
     DEFGABC\Y  
 No match  
   
 /^(ab (c+(*THEN)cd) | xyz)/x  
     abcccd  
 No match  
   
 /^(ab (c+(*PRUNE)cd) | xyz)/x  
     abcccd  
 No match  
10674    
10675  /^(ab (c+(*FAIL)cd) | xyz)/x  /^(ab (c+(*FAIL)cd) | xyz)/x
10676      abcccd      abcccd
10677  No match  No match
10678    
10679  /--- Perl 5.11 gets some of these wrong ---/  /--- Perl gets some of these wrong ---/
10680    
10681  /(?>.(*ACCEPT))*?5/  /(?>.(*ACCEPT))*?5/
10682      abcde      abcde
# Line 11395  No match Line 10784  No match
10784  /\s*\R/BZ  /\s*\R/BZ
10785  ------------------------------------------------------------------  ------------------------------------------------------------------
10786          Bra          Bra
10787          \s*+          \s*
10788            \R
10789            Ket
10790            End
10791    ------------------------------------------------------------------
10792        \x20\x0a
10793     0:  \x0a
10794        \x20\x0d
10795     0:  \x0d
10796        \x20\x0d\x0a
10797     0:  \x0d\x0a
10798    
10799    /\S*\R/BZ
10800    ------------------------------------------------------------------
10801            Bra
10802            \S*+
10803          \R          \R
10804          Ket          Ket
10805          End          End
10806  ------------------------------------------------------------------  ------------------------------------------------------------------
10807        a\x0a
10808     0: a\x0a
10809    
10810  /-- Perl treats this one differently, not failing the second string. I believe  /X\h*\R/BZ
10811      that is a bug in Perl. --/  ------------------------------------------------------------------
10812            Bra
10813            X
10814            \h*+
10815            \R
10816            Ket
10817            End
10818    ------------------------------------------------------------------
10819        X\x20\x0a
10820     0: X \x0a
10821    
10822  /^((abc|abcx)(*THEN)y|abcd)/  /X\H*\R/BZ
10823      abcd  ------------------------------------------------------------------
10824   0: abcd          Bra
10825   1: abcd          X
10826      *** Failers          \H*
10827  No match          \R
10828      abcxy          Ket
10829            End
10830    ------------------------------------------------------------------
10831        X\x0d\x0a
10832     0: X\x0d\x0a
10833    
10834    /X\H+\R/BZ
10835    ------------------------------------------------------------------
10836            Bra
10837            X
10838            \H+
10839            \R
10840            Ket
10841            End
10842    ------------------------------------------------------------------
10843        X\x0d\x0a
10844     0: X\x0d\x0a
10845    
10846    /X\H++\R/BZ
10847    ------------------------------------------------------------------
10848            Bra
10849            X
10850            \H++
10851            \R
10852            Ket
10853            End
10854    ------------------------------------------------------------------
10855        X\x0d\x0a
10856  No match  No match
10857    
10858  /(?<=abc)def/  /(?<=abc)def/
10859      abc\P\P      abc\P\P
10860  Partial match: abc  Partial match at offset 3: abc
10861    
10862  /abc$/  /abc$/
10863      abc      abc
# Line 11662  No need char Line 11104  No need char
11104    
11105  /(^ab|^)+/I  /(^ab|^)+/I
11106  Capturing subpattern count = 1  Capturing subpattern count = 1
11107    May match empty string
11108  Options: anchored  Options: anchored
11109  No first char  No first char
11110  No need char  No need char
11111    
11112  /(^ab|^)++/I  /(^ab|^)++/I
11113  Capturing subpattern count = 1  Capturing subpattern count = 1
11114    May match empty string
11115  Options: anchored  Options: anchored
11116  No first char  No first char
11117  No need char  No need char
# Line 11686  No need char Line 11130  No need char
11130    
11131  /(?:^ab|^)+/I  /(?:^ab|^)+/I
11132  Capturing subpattern count = 0  Capturing subpattern count = 0
11133    May match empty string
11134  Options: anchored  Options: anchored
11135  No first char  No first char
11136  No need char  No need char
11137    
11138  /(?:^ab|^)++/I  /(?:^ab|^)++/I
11139  Capturing subpattern count = 0  Capturing subpattern count = 0
11140    May match empty string
11141  Options: anchored  Options: anchored
11142  No first char  No first char
11143  No need char  No need char
# Line 11710  Need char = 'b' Line 11156  Need char = 'b'
11156    
11157  /(.*ab|.*)+/I  /(.*ab|.*)+/I
11158  Capturing subpattern count = 1  Capturing subpattern count = 1
11159    May match empty string
11160  No options  No options
11161  First char at start or follows newline  First char at start or follows newline
11162  No need char  No need char
11163    
11164  /(.*ab|.*)++/I  /(.*ab|.*)++/I
11165  Capturing subpattern count = 1  Capturing subpattern count = 1
11166    May match empty string
11167  No options  No options
11168  First char at start or follows newline  First char at start or follows newline
11169  No need char  No need char
# Line 11734  Need char = 'b' Line 11182  Need char = 'b'
11182    
11183  /(?:.*ab|.*)+/I  /(?:.*ab|.*)+/I
11184  Capturing subpattern count = 0  Capturing subpattern count = 0
11185    May match empty string
11186  No options  No options
11187  First char at start or follows newline  First char at start or follows newline
11188  No need char  No need char
11189    
11190  /(?:.*ab|.*)++/I  /(?:.*ab|.*)++/I
11191  Capturing subpattern count = 0  Capturing subpattern count = 0
11192    May match empty string
11193  No options  No options
11194  First char at start or follows newline  First char at start or follows newline
11195  No need char  No need char
# Line 11816  No match Line 11266  No match
11266    
11267  /^.*?(?(?=a)a|b(*THEN)c)/  /^.*?(?(?=a)a|b(*THEN)c)/
11268      ba      ba
11269   0: ba  No match
11270    
11271  /^.*?(?(?=a)a|bc)/  /^.*?(?(?=a)a|bc)/
11272      ba      ba
11273   0: ba   0: ba
11274    
11275    /^.*?(?(?=a)a(*THEN)b|c)/
11276        ac
11277    No match
11278    
11279    /^.*?(?(?=a)a(*THEN)b)c/
11280        ac
11281    No match
11282    
11283    /^.*?(a(*THEN)b)c/
11284        aabc
11285    No match
11286    
11287    /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11288        aabc
11289     0: aabc
11290    
11291    /^.*?(a(*THEN)b|z)c/
11292        aabc
11293     0: aabc
11294     1: ab
11295    
11296    /^.*?(z|a(*THEN)b)c/
11297        aabc
11298     0: aabc
11299     1: ab
11300    
11301  /-- --/  /-- --/
11302    
11303  /-- 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 11309  No match
11309   1: C   1: C
11310  MK: A  MK: A
11311      D      D
11312  No match  No match, mark = A
11313    
11314  /(*:A)A+(*SKIP:A)(B|Z)/KS  /(*:A)A+(*SKIP:A)(B|Z)/KS
11315      AAAC      AAAC
11316  No match  No match, mark = A
11317    
11318  /-- --/  /-- --/
11319    
# Line 11866  No match Line 11342  No match
11342   1: a   1: a
11343   1+ a%   1+ a%
11344    
11345  /(a)b|ac/++  /(a)b|ac/++SS
11346      ac\O3      ac\O3
 Matched, but too many substrings  
11347   0: ac   0: ac
11348   0+   0+
11349    
11350    /(a)(b)x|abc/++
11351         abc\O6
11352     0: abc
11353     0+
11354    
11355    /(a)bc|(a)(b)\2/
11356        \O3abc
11357    Matched, but too many substrings
11358     0: abc
11359        \O4abc
11360    Matched, but too many substrings
11361     0: abc
11362    
11363  /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI  /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11364  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 11907  No set of starting bytes Line 11395  No set of starting bytes
11395  /^(?>a)++/  /^(?>a)++/
11396      aa\M      aa\M
11397  Minimum match() limit = 5  Minimum match() limit = 5
11398  Minimum match() recursion limit = 3  Minimum match() recursion limit = 2
11399   0: aa   0: aa
11400      aaaaaaaaa\M      aaaaaaaaa\M
11401  Minimum match() limit = 12  Minimum match() limit = 12
11402  Minimum match() recursion limit = 3  Minimum match() recursion limit = 2
11403   0: aaaaaaaaa   0: aaaaaaaaa
11404    
11405  /(a)(?1)++/  /(a)(?1)++/
11406      aa\M      aa\M
11407  Minimum match() limit = 7  Minimum match() limit = 7
11408  Minimum match() recursion limit = 5  Minimum match() recursion limit = 4
11409   0: aa   0: aa
11410   1: a   1: a
11411      aaaaaaaaa\M      aaaaaaaaa\M
11412  Minimum match() limit = 21  Minimum match() limit = 21
11413  Minimum match() recursion limit = 5  Minimum match() recursion limit = 4
11414   0: aaaaaaaaa   0: aaaaaaaaa
11415   1: a   1: a
11416    
11417    /(?:(foo)|(bar)|(baz))X/SS=
11418        bazfooX
11419     0: fooX
11420     1: foo
11421     2: <unset>
11422     3: <unset>
11423        foobazbarX
11424     0: barX
11425     1: <unset>
11426     2: bar
11427     3: <unset>
11428        barfooX
11429     0: fooX
11430     1: foo
11431     2: <unset>
11432     3: <unset>
11433        bazX
11434     0: bazX
11435     1: <unset>
11436     2: <unset>
11437     3: baz
11438        foobarbazX
11439     0: bazX
11440     1: <unset>
11441     2: <unset>
11442     3: baz
11443        bazfooX\O0
11444    Matched, but too many substrings
11445        bazfooX\O2
11446    Matched, but too many substrings
11447     0: fooX
11448        bazfooX\O4
11449    Matched, but too many substrings
11450     0: fooX
11451     1: <unset>
11452        bazfooX\O6
11453    Matched, but too many substrings
11454     0: fooX
11455     1: foo
11456     2: <unset>
11457        bazfooX\O8
11458    Matched, but too many substrings
11459     0: fooX
11460     1: foo
11461     2: <unset>
11462     3: <unset>
11463        bazfooX\O10
11464     0: fooX
11465     1: foo
11466     2: <unset>
11467     3: <unset>
11468    
11469    /(?=abc){3}abc/BZ
11470    ------------------------------------------------------------------
11471            Bra
11472            Assert
11473            abc
11474            Ket
11475            abc
11476            Ket
11477            End
11478    ------------------------------------------------------------------
11479    
11480    /(?=abc)+abc/BZ
11481    ------------------------------------------------------------------
11482            Bra
11483            Assert
11484            abc
11485            Ket
11486            abc
11487            Ket
11488            End
11489    ------------------------------------------------------------------
11490    
11491    /(?=abc)++abc/BZ
11492    ------------------------------------------------------------------
11493            Bra
11494            Assert
11495            abc
11496            Ket
11497            abc
11498            Ket
11499            End
11500    ------------------------------------------------------------------
11501    
11502    /(?=abc){0}xyz/BZ
11503    ------------------------------------------------------------------
11504            Bra
11505            Skip zero
11506            Assert
11507            abc
11508            Ket
11509            xyz
11510            Ket
11511            End
11512    ------------------------------------------------------------------
11513    
11514    /(?=(a))?./BZ
11515    ------------------------------------------------------------------
11516            Bra
11517            Brazero
11518            Assert
11519            CBra 1
11520            a
11521            Ket
11522            Ket
11523            Any
11524            Ket
11525            End
11526    ------------------------------------------------------------------
11527    
11528    /(?=(a))??./BZ
11529    ------------------------------------------------------------------
11530            Bra
11531            Braminzero
11532            Assert
11533            CBra 1
11534            a
11535            Ket
11536            Ket
11537            Any
11538            Ket
11539            End
11540    ------------------------------------------------------------------
11541    
11542    /^(?=(a)){0}b(?1)/BZ
11543    ------------------------------------------------------------------
11544            Bra
11545            ^
11546            Skip zero
11547            Assert
11548            CBra 1
11549            a
11550            Ket
11551            Ket
11552            b
11553            Recurse
11554            Ket
11555            End
11556    ------------------------------------------------------------------
11557    
11558    /(?(DEFINE)(a))?b(?1)/BZ
11559    ------------------------------------------------------------------
11560            Bra
11561            Cond
11562            Cond def
11563            CBra 1
11564            a
11565            Ket
11566            Ket
11567            b
11568            Recurse
11569            Ket
11570            End
11571    ------------------------------------------------------------------
11572    
11573    /^(?=(?1))?[az]([abc])d/BZ
11574    ------------------------------------------------------------------
11575            Bra
11576            ^
11577            Brazero
11578            Assert
11579            Recurse
11580            Ket
11581            [az]
11582            CBra 1
11583            [a-c]
11584            Ket
11585            d
11586            Ket
11587            End
11588    ------------------------------------------------------------------
11589    
11590    /^(?!a){0}\w+/BZ
11591    ------------------------------------------------------------------
11592            Bra
11593            ^
11594            Skip zero
11595            Assert not
11596            a
11597            Ket
11598            \w++
11599            Ket
11600            End
11601    ------------------------------------------------------------------
11602    
11603    /(?<=(abc))?xyz/BZ
11604    ------------------------------------------------------------------
11605            Bra
11606            Brazero
11607            AssertB
11608            Reverse
11609            CBra 1
11610            abc
11611            Ket
11612            Ket
11613            xyz
11614            Ket
11615            End
11616    ------------------------------------------------------------------
11617    
11618    /[:a[:abc]b:]/BZ
11619    ------------------------------------------------------------------
11620            Bra
11621            [:[a-c]
11622            b:]
11623            Ket
11624            End
11625    ------------------------------------------------------------------
11626    
11627    /((?2))((?1))/SS
11628        abc
11629    Error -26 (nested recursion at the same subject position)
11630    
11631    /((?(R2)a+|(?1)b))/SS
11632        aaaabcde
11633    Error -26 (nested recursion at the same subject position)
11634    
11635    /(?(R)a*(?1)|((?R))b)/SS
11636        aaaabcde
11637    Error -26 (nested recursion at the same subject position)
11638    
11639    /(a+|(?R)b)/
11640    Failed: recursive call could loop indefinitely at offset 7
11641    
11642    /^(a(*:A)(d|e(*:B))z|aeq)/C
11643        adz
11644    --->adz
11645     +0 ^       ^
11646     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11647     +2 ^       a
11648     +3 ^^      (*:A)
11649     +8 ^^      (d|e(*:B))
11650    Latest Mark: A
11651     +9 ^^      d
11652    +10 ^ ^     |
11653    +18 ^ ^     z
11654    +19 ^  ^    |
11655    +24 ^  ^
11656     0: adz
11657     1: adz
11658     2: d
11659        aez
11660    --->aez
11661     +0 ^       ^
11662     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11663     +2 ^       a
11664     +3 ^^      (*:A)
11665     +8 ^^      (d|e(*:B))
11666    Latest Mark: A
11667     +9 ^^      d
11668    +11 ^^      e
11669    +12 ^ ^     (*:B)
11670    +17 ^ ^     )
11671    Latest Mark: B
11672    +18 ^ ^     z
11673    +19 ^  ^    |
11674    +24 ^  ^
11675     0: aez
11676     1: aez
11677     2: e
11678        aeqwerty
11679    --->aeqwerty
11680     +0 ^            ^
11681     +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11682     +2 ^            a
11683     +3 ^^           (*:A)
11684     +8 ^^           (d|e(*:B))
11685    Latest Mark: A
11686     +9 ^^           d
11687    +11 ^^           e
11688    +12 ^ ^          (*:B)
11689    +17 ^ ^          )
11690    Latest Mark: B
11691    +18 ^ ^          z
11692    +20 ^            a
11693    +21 ^^           e
11694    +22 ^ ^          q
11695    +23 ^  ^         )
11696    +24 ^  ^
11697     0: aeq
11698     1: aeq
11699    
11700    /.(*F)/
11701        \P\Pabc
11702    No match
11703    
11704    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11705    Capturing subpattern count = 0
11706    Max lookbehind = 1
11707    No options
11708    First char = 't'
11709    Need char = 't'
11710    Subject length lower bound = 18
11711    No set of starting bytes
11712    
11713    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11714    Capturing subpattern count = 0
11715    Max lookbehind = 1
11716    No options
11717    No first char
11718    No need char
11719    Subject length lower bound = 8
11720    Starting byte set: < o t u
11721    
11722    /a(*SKIP)c|b(*ACCEPT)|/+S!I
11723    Capturing subpattern count = 0
11724    May match empty string
11725    No options
11726    No first char
11727    No need char
11728    Subject length lower bound = -1
11729    No set of starting bytes
11730        a
11731     0:
11732     0+
11733    
11734    /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11735    Capturing subpattern count = 0
11736    No options
11737    No first char
11738    No need char
11739    Subject length lower bound = -1
11740    Starting byte set: a b x
11741        ax
11742     0: x
11743    
11744    'a*(*ACCEPT)b'+
11745        \N\N
11746    No match
11747        abc\N\N
11748     0: a
11749     0+ bc
11750        bbb\N\N
11751     0:
11752     0+ bb
11753    
11754    /(*ACCEPT)a/+I
11755    Capturing subpattern count = 0
11756    No options
11757    No first char
11758    No need char
11759        bax
11760     0:
11761     0+ bax
11762    
11763    /z(*ACCEPT)a/+I
11764    Capturing subpattern count = 0
11765    No options
11766    First char = 'z'
11767    No need char
11768        baxzbx
11769     0: z
11770     0+ bx
11771    
11772    /a(?:.)*?a/ims
11773        \Mabbbbbbbbbbbbbbbbbbbbba
11774    Minimum match() limit = 65
11775    Minimum match() recursion limit = 2
11776     0: abbbbbbbbbbbbbbbbbbbbba
11777    
11778    /a(?:.(*THEN))*?a/ims
11779        \Mabbbbbbbbbbbbbbbbbbbbba
11780    Minimum match() limit = 86
11781    Minimum match() recursion limit = 45
11782     0: abbbbbbbbbbbbbbbbbbbbba
11783    
11784    /a(?:.(*THEN:ABC))*?a/ims
11785        \Mabbbbbbbbbbbbbbbbbbbbba
11786    Minimum match() limit = 86
11787    Minimum match() recursion limit = 45
11788     0: abbbbbbbbbbbbbbbbbbbbba
11789    
11790    /^(?>a+)(?>(z+))\w/BZ
11791    ------------------------------------------------------------------
11792            Bra
11793            ^
11794            Once_NC
11795            a++
11796            Ket
11797            Once
11798            CBra 1
11799            z++
11800            Ket
11801            Ket
11802            \w
11803            Ket
11804            End
11805    ------------------------------------------------------------------
11806        aaaazzzzb
11807     0: aaaazzzzb
11808     1: zzzz
11809        ** Failers
11810    No match
11811        aazz
11812    No match
11813    
11814    /(.)(\1|a(?2))/
11815        bab
11816     0: bab
11817     1: b
11818     2: ab
11819    
11820    /\1|(.)(?R)\1/
11821        cbbbc
11822     0: cbbbc
11823     1: c
11824    
11825    /(.)((?(1)c|a)|a(?2))/
11826        baa
11827    No match
11828    
11829    /(?P<abn>(?P=abn)xxx)/BZ
11830    ------------------------------------------------------------------
11831            Bra
11832            Once
11833            CBra 1
11834            \1
11835            xxx
11836            Ket
11837            Ket
11838            Ket
11839            End
11840    ------------------------------------------------------------------
11841    
11842    /(a\1z)/BZ
11843    ------------------------------------------------------------------
11844            Bra
11845            Once
11846            CBra 1
11847            a
11848            \1
11849            z
11850            Ket
11851            Ket
11852            Ket
11853            End
11854    ------------------------------------------------------------------
11855    
11856    /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11857         \Maabbccddee
11858    Minimum match() limit = 7
11859    Minimum match() recursion limit = 2
11860     0: aabbccddee
11861    
11862    /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11863         \Maabbccddee
11864    Minimum match() limit = 17
11865    Minimum match() recursion limit = 16
11866     0: aabbccddee
11867     1: aa
11868     2: bb
11869     3: cc
11870     4: dd
11871     5: ee
11872    
11873    /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11874         \Maabbccddee
11875    Minimum match() limit = 13
11876    Minimum match() recursion limit = 10
11877     0: aabbccddee
11878     1: aa
11879     2: cc
11880     3: ee
11881    
11882    /^a\x41z/<JS>
11883        aAz
11884     0: aAz
11885        *** Failers
11886    No match
11887        ax41z
11888    No match
11889    
11890    /^a[m\x41]z/<JS>
11891        aAz
11892     0: aAz
11893    
11894    /^a\x1z/<JS>
11895        ax1z
11896     0: ax1z
11897    
11898    /^a\u0041z/<JS>
11899        aAz
11900     0: aAz
11901        *** Failers
11902    No match
11903        au0041z
11904    No match
11905    
11906    /^a[m\u0041]z/<JS>
11907        aAz
11908     0: aAz
11909    
11910    /^a\u041z/<JS>
11911        au041z
11912     0: au041z
11913        *** Failers
11914    No match
11915        aAz
11916    No match
11917    
11918    /^a\U0041z/<JS>
11919        aU0041z
11920     0: aU0041z
11921        *** Failers
11922    No match
11923        aAz
11924    No match
11925    
11926    /(?(?=c)c|d)++Y/BZ
11927    ------------------------------------------------------------------
11928            Bra
11929            BraPos
11930            Cond
11931            Assert
11932            c
11933            Ket
11934            c
11935            Alt
11936            d
11937            Ket
11938            KetRpos
11939            Y
11940            Ket
11941            End
11942    ------------------------------------------------------------------
11943    
11944    /(?(?=c)c|d)*+Y/BZ
11945    ------------------------------------------------------------------
11946            Bra
11947            Braposzero
11948            BraPos
11949            Cond
11950            Assert
11951            c
11952            Ket
11953            c
11954            Alt
11955            d
11956            Ket
11957            KetRpos
11958            Y
11959            Ket
11960            End
11961    ------------------------------------------------------------------
11962    
11963    /a[\NB]c/
11964    Failed: \N is not supported in a class at offset 3
11965    
11966    /a[B-\Nc]/
11967    Failed: invalid range in character class at offset 5
11968    
11969    /a[B\Nc]/
11970    Failed: \N is not supported in a class at offset 4
11971    
11972    /(a)(?2){0,1999}?(b)/
11973    
11974    /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
11975    
11976    /--- This test, with something more complicated than individual letters, causes
11977    different behaviour in Perl. Perhaps it disables some optimization; no tag is
11978    passed back for the failures, whereas in PCRE there is a tag. ---/
11979    
11980    /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
11981        AABC
11982     0: AB
11983     1: A
11984     2: B
11985    MK: A
11986        XXYZ
11987     0: XXY
11988     1: <unset>
11989     2: <unset>
11990     3: X
11991     4: X
11992     5: Y
11993    MK: B
11994        ** Failers
11995    No match
11996        XAQQ
11997    No match, mark = A
11998        XAQQXZZ
11999    No match, mark = A
12000        AXQQQ
12001    No match, mark = A
12002        AXXQQQ
12003    No match, mark = B
12004    
12005    /-- Perl doesn't give marks for these, though it does if the alternatives are
12006    replaced by single letters. --/
12007    
12008    /(b|q)(*:m)f|a(*:n)w/K
12009        aw
12010     0: aw
12011    MK: n
12012        ** Failers
12013    No match, mark = n
12014        abc
12015    No match, mark = m
12016    
12017    /(q|b)(*:m)f|a(*:n)w/K
12018        aw
12019     0: aw
12020    MK: n
12021        ** Failers
12022    No match, mark = n
12023        abc
12024    No match, mark = m
12025    
12026    /-- After a partial match, the behaviour is as for a failure. --/
12027    
12028    /^a(*:X)bcde/K
12029       abc\P
12030    Partial match, mark=X: abc
12031    
12032    /-- These are here because Perl doesn't return a mark, except for the first --/
12033    
12034    /(?=(*:x))(q|)/K+
12035        abc
12036     0:
12037     0+ abc
12038     1:
12039    MK: x
12040    
12041    /(?=(*:x))((*:y)q|)/K+
12042        abc
12043     0:
12044     0+ abc
12045     1:
12046    MK: x
12047    
12048    /(?=(*:x))(?:(*:y)q|)/K+
12049        abc
12050     0:
12051     0+ abc
12052    MK: x
12053    
12054    /(?=(*:x))(?>(*:y)q|)/K+
12055        abc
12056     0:
12057     0+ abc
12058    MK: x
12059    
12060    /(?=a(*:x))(?!a(*:y)c)/K+
12061        ab
12062     0:
12063     0+ ab
12064    MK: x
12065    
12066    /(?=a(*:x))(?=a(*:y)c|)/K+
12067        ab
12068     0:
12069     0+ ab
12070    MK: x
12071    
12072    /(..)\1/
12073        ab\P
12074    Partial match: ab
12075        aba\P
12076    Partial match: aba
12077        abab\P
12078     0: abab
12079     1: ab
12080    
12081    /(..)\1/i
12082        ab\P
12083    Partial match: ab
12084        abA\P
12085    Partial match: abA
12086        aBAb\P
12087     0: aBAb
12088     1: aB
12089    
12090    /(..)\1{2,}/
12091        ab\P
12092    Partial match: ab
12093        aba\P
12094    Partial match: aba
12095        abab\P
12096    Partial match: abab
12097        ababa\P
12098    Partial match: ababa
12099        ababab\P
12100     0: ababab
12101     1: ab
12102        ababab\P\P
12103    Partial match: ababab
12104        abababa\P
12105     0: ababab
12106     1: ab
12107        abababa\P\P
12108    Partial match: abababa
12109    
12110    /(..)\1{2,}/i
12111        ab\P
12112    Partial match: ab
12113        aBa\P
12114    Partial match: aBa
12115        aBAb\P
12116    Partial match: aBAb
12117        AbaBA\P
12118    Partial match: AbaBA
12119        abABAb\P
12120     0: abABAb
12121     1: ab
12122        aBAbaB\P\P
12123    Partial match: aBAbaB
12124        abABabA\P
12125     0: abABab
12126     1: ab
12127        abaBABa\P\P
12128    Partial match: abaBABa
12129    
12130    /(..)\1{2,}?x/i
12131        ab\P
12132    Partial match: ab
12133        abA\P
12134    Partial match: abA
12135        aBAb\P
12136    Partial match: aBAb
12137        abaBA\P
12138    Partial match: abaBA
12139        abAbaB\P
12140    Partial match: abAbaB
12141        abaBabA\P
12142    Partial match: abaBabA
12143        abAbABaBx\P
12144     0: abAbABaBx
12145     1: ab
12146    
12147    /^(..)\1/
12148        aba\P
12149    Partial match: aba
12150    
12151    /^(..)\1{2,3}x/
12152        aba\P
12153    Partial match: aba
12154        ababa\P
12155    Partial match: ababa
12156        ababa\P\P
12157    Partial match: ababa
12158        abababx
12159     0: abababx
12160     1: ab
12161        ababababx
12162     0: ababababx
12163     1: ab
12164    
12165    /^(..)\1{2,3}?x/
12166        aba\P
12167    Partial match: aba
12168        ababa\P
12169    Partial match: ababa
12170        ababa\P\P
12171    Partial match: ababa
12172        abababx
12173     0: abababx
12174     1: ab
12175        ababababx
12176     0: ababababx
12177     1: ab
12178    
12179    /^(..)(\1{2,3})ab/
12180        abababab
12181     0: abababab
12182     1: ab
12183     2: abab
12184    
12185    /^\R/
12186        \r\P
12187     0: \x0d
12188        \r\P\P
12189    Partial match: \x0d
12190    
12191    /^\R{2,3}x/
12192        \r\P
12193    Partial match: \x0d
12194        \r\P\P
12195    Partial match: \x0d
12196        \r\r\P
12197    Partial match: \x0d\x0d
12198        \r\r\P\P
12199    Partial match: \x0d\x0d
12200        \r\r\r\P
12201    Partial match: \x0d\x0d\x0d
12202        \r\r\r\P\P
12203    Partial match: \x0d\x0d\x0d
12204        \r\rx
12205     0: \x0d\x0dx
12206        \r\r\rx
12207     0: \x0d\x0d\x0dx
12208    
12209    /^\R{2,3}?x/
12210        \r\P
12211    Partial match: \x0d
12212        \r\P\P
12213    Partial match: \x0d
12214        \r\r\P
12215    Partial match: \x0d\x0d
12216        \r\r\P\P
12217    Partial match: \x0d\x0d
12218        \r\r\r\P
12219    Partial match: \x0d\x0d\x0d
12220        \r\r\r\P\P
12221    Partial match: \x0d\x0d\x0d
12222        \r\rx
12223     0: \x0d\x0dx
12224        \r\r\rx
12225     0: \x0d\x0d\x0dx
12226    
12227    /^\R?x/
12228        \r\P
12229    Partial match: \x0d
12230        \r\P\P
12231    Partial match: \x0d
12232        x
12233     0: x
12234        \rx
12235     0: \x0dx
12236    
12237    /^\R+x/
12238        \r\P
12239    Partial match: \x0d
12240        \r\P\P
12241    Partial match: \x0d
12242        \r\n\P
12243    Partial match: \x0d\x0a
12244        \r\n\P\P
12245    Partial match: \x0d\x0a
12246        \rx
12247     0: \x0dx
12248    
12249    /^a$/<CRLF>
12250        a\r\P
12251    Partial match: a\x0d
12252        a\r\P\P
12253    Partial match: a\x0d
12254    
12255    /^a$/m<CRLF>
12256        a\r\P
12257    Partial match: a\x0d
12258        a\r\P\P
12259    Partial match: a\x0d
12260    
12261    /^(a$|a\r)/<CRLF>
12262        a\r\P
12263     0: a\x0d
12264     1: a\x0d
12265        a\r\P\P
12266    Partial match: a\x0d
12267    
12268    /^(a$|a\r)/m<CRLF>
12269        a\r\P
12270     0: a\x0d
12271     1: a\x0d
12272        a\r\P\P
12273    Partial match: a\x0d
12274    
12275    /./<CRLF>
12276        \r\P
12277     0: \x0d
12278        \r\P\P
12279    Partial match: \x0d
12280    
12281    /.{2,3}/<CRLF>
12282        \r\P
12283    Partial match: \x0d
12284        \r\P\P
12285    Partial match: \x0d
12286        \r\r\P
12287     0: \x0d\x0d
12288        \r\r\P\P
12289    Partial match: \x0d\x0d
12290        \r\r\r\P
12291     0: \x0d\x0d\x0d
12292        \r\r\r\P\P
12293    Partial match: \x0d\x0d\x0d
12294    
12295    /.{2,3}?/<CRLF>
12296        \r\P
12297    Partial match: \x0d
12298        \r\P\P
12299    Partial match: \x0d
12300        \r\r\P
12301     0: \x0d\x0d
12302        \r\r\P\P
12303    Partial match: \x0d\x0d
12304        \r\r\r\P
12305     0: \x0d\x0d
12306        \r\r\r\P\P
12307     0: \x0d\x0d
12308    
12309    "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
12310        ABCDGHI\O03
12311    Matched, but too many substrings
12312     0: ABCD
12313    
12314    /-- These are all run as real matches in test 1; here we are just checking the
12315    settings of the anchored and startline bits. --/
12316    
12317    /(?>.*?a)(?<=ba)/I
12318    Capturing subpattern count = 0
12319    Max lookbehind = 2
12320    No options
12321    No first char
12322    Need char = 'a'
12323    
12324    /(?:.*?a)(?<=ba)/I
12325    Capturing subpattern count = 0
12326    Max lookbehind = 2
12327    No options
12328    First char at start or follows newline
12329    Need char = 'a'
12330    
12331    /.*?a(*PRUNE)b/I
12332    Capturing subpattern count = 0
12333    No options
12334    No first char
12335    Need char = 'b'
12336    
12337    /.*?a(*PRUNE)b/sI
12338    Capturing subpattern count = 0
12339    Options: dotall
12340    No first char
12341    Need char = 'b'
12342    
12343    /^a(*PRUNE)b/sI
12344    Capturing subpattern count = 0
12345    Options: anchored dotall
12346    No first char
12347    No need char
12348    
12349    /.*?a(*SKIP)b/I
12350    Capturing subpattern count = 0
12351    No options
12352    No first char
12353    Need char = 'b'
12354    
12355    /(?>.*?a)b/sI
12356    Capturing subpattern count = 0
12357    Options: dotall
12358    No first char
12359    Need char = 'b'
12360    
12361    /(?>.*?a)b/I
12362    Capturing subpattern count = 0
12363    No options
12364    No first char
12365    Need char = 'b'
12366    
12367    /(?>^a)b/sI
12368    Capturing subpattern count = 0
12369    Options: anchored dotall
12370    No first char
12371    No need char
12372    
12373    /(?>.*?)(?<=(abcd)|(wxyz))/I
12374    Capturing subpattern count = 2
12375    Max lookbehind = 4
12376    May match empty string
12377    No options
12378    No first char
12379    No need char
12380    
12381    /(?>.*)(?<=(abcd)|(wxyz))/I
12382    Capturing subpattern count = 2
12383    Max lookbehind = 4
12384    May match empty string
12385    No options
12386    No first char
12387    No need char
12388    
12389    "(?>.*)foo"I
12390    Capturing subpattern count = 0
12391    No options
12392    No first char
12393    Need char = 'o'
12394    
12395    "(?>.*?)foo"I
12396    Capturing subpattern count = 0
12397    No options
12398    No first char
12399    Need char = 'o'
12400    
12401    /(?>^abc)/mI
12402    Capturing subpattern count = 0
12403    Options: multiline
12404    First char at start or follows newline
12405    Need char = 'c'
12406    
12407    /(?>.*abc)/mI
12408    Capturing subpattern count = 0
12409    Options: multiline
12410    No first char
12411    Need char = 'c'
12412    
12413    /(?:.*abc)/mI
12414    Capturing subpattern count = 0
12415    Options: multiline
12416    First char at start or follows newline
12417    Need char = 'c'
12418    
12419    /-- Check PCRE_STUDY_EXTRA_NEEDED --/
12420    
12421    /.?/S-I
12422    Capturing subpattern count = 0
12423    May match empty string
12424    No options
12425    No first char
12426    No need char
12427    Study returned NULL
12428    
12429    /.?/S!I
12430    Capturing subpattern count = 0
12431    May match empty string
12432    No options
12433    No first char
12434    No need char
12435    Subject length lower bound = -1
12436    No set of starting bytes
12437    
12438    /(?:(a)+(?C1)bb|aa(?C2)b)/
12439        aab\C+
12440    Callout 1: last capture = 1
12441     0: <unset>
12442     1: a
12443    --->aab
12444        ^ ^     b
12445    Callout 1: last capture = 1
12446     0: <unset>
12447     1: a
12448    --->aab
12449        ^^      b
12450    Callout 2: last capture = -1
12451     0: <unset>
12452    --->aab
12453        ^ ^     b
12454     0: aab
12455    
12456    /(?:(a)++(?C1)bb|aa(?C2)b)/
12457        aab\C+
12458    Callout 1: last capture = 1
12459     0: <unset>
12460     1: a
12461    --->aab
12462        ^ ^     b
12463    Callout 2: last capture = -1
12464     0: <unset>
12465    --->aab
12466        ^ ^     b
12467     0: aab
12468    
12469    /(?:(?>(a))(?C1)bb|aa(?C2)b)/
12470        aab\C+
12471    Callout 1: last capture = 1
12472     0: <unset>
12473     1: a
12474    --->aab
12475        ^^      b
12476    Callout 2: last capture = -1
12477     0: <unset>
12478    --->aab
12479        ^ ^     b
12480     0: aab
12481    
12482    /(?:(?1)(?C1)x|ab(?C2))((a)){0}/
12483        aab\C+
12484    Callout 1: last capture = -1
12485     0: <unset>
12486    --->aab
12487        ^^      x
12488    Callout 1: last capture = -1
12489     0: <unset>
12490    --->aab
12491         ^^     x
12492    Callout 2: last capture = -1
12493     0: <unset>
12494    --->aab
12495         ^ ^    )
12496     0: ab
12497    
12498    /(?1)(?C1)((a)(?C2)){0}/
12499        aab\C+
12500    Callout 2: last capture = 2
12501     0: <unset>
12502     1: <unset>
12503     2: a
12504    --->aab
12505        ^^      )
12506    Callout 1: last capture = -1
12507     0: <unset>
12508    --->aab
12509        ^^      ((a)(?C2)){0}
12510     0: a
12511    
12512    /(?:(a)+(?C1)bb|aa(?C2)b)++/
12513        aab\C+
12514    Callout 1: last capture = 1
12515     0: <unset>
12516     1: a
12517    --->aab
12518        ^ ^     b
12519    Callout 1: last capture = 1
12520     0: <unset>
12521     1: a
12522    --->aab
12523        ^^      b
12524    Callout 2: last capture = -1
12525     0: <unset>
12526    --->aab
12527        ^ ^     b
12528     0: aab
12529        aab\C+\O2
12530    Callout 1: last capture = 1
12531     0: <unset>
12532    --->aab
12533        ^ ^     b
12534    Callout 1: last capture = 1
12535     0: <unset>
12536    --->aab
12537        ^^      b
12538    Callout 2: last capture = -1
12539     0: <unset>
12540    --->aab
12541        ^ ^     b
12542     0: aab
12543    
12544    /(ab)x|ab/
12545        ab\O3
12546     0: ab
12547        ab\O2
12548     0: ab
12549    
12550    /(ab)/
12551        ab\O3
12552    Matched, but too many substrings
12553     0: ab
12554        ab\O2
12555    Matched, but too many substrings
12556     0: ab
12557    
12558    /(?<=123)(*MARK:xx)abc/K
12559        xxxx123a\P\P
12560    Partial match at offset 7, mark=xx: 123a
12561        xxxx123a\P
12562    Partial match at offset 7, mark=xx: 123a
12563    
12564    /123\Kabc/
12565        xxxx123a\P\P
12566    Partial match: 123a
12567        xxxx123a\P
12568    Partial match: 123a
12569    
12570    /^(?(?=a)aa|bb)/C
12571        bb
12572    --->bb
12573     +0 ^      ^
12574     +1 ^      (?(?=a)aa|bb)
12575     +3 ^      (?=a)
12576     +6 ^      a
12577    +11 ^      b
12578    +12 ^^     b
12579    +13 ^ ^    )
12580    +14 ^ ^
12581     0: bb
12582    
12583    /(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/
12584        bb
12585    --->bb
12586      1 ^      ^
12587      2 ^      (?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))
12588     99 ^      (?=(?C3)a(?C4))
12589      3 ^      a
12590      8 ^      b
12591      9 ^^     b
12592     10 ^ ^    )
12593     11 ^ ^
12594     0: bb
12595    
12596    /-- Perl seems to have a bug with this one --/
12597    
12598    /aaaaa(*COMMIT)(*PRUNE)b|a+c/
12599        aaaaaac
12600     0: aaaac
12601    
12602    /-- Here are some that Perl treats differently because of the way it handles
12603    backtracking verbs. --/
12604    
12605     /(?!a(*COMMIT)b)ac|ad/
12606         ac
12607     0: ac
12608         ad
12609     0: ad
12610    
12611    /^(?!a(*THEN)b|ac)../
12612         ac
12613    No match
12614         ad
12615     0: ad
12616    
12617    /^(?=a(*THEN)b|ac)/
12618        ac
12619     0:
12620    
12621    /\A.*?(?:a|b(*THEN)c)/
12622        ba
12623     0: ba
12624    
12625    /\A.*?(?:a|b(*THEN)c)++/
12626        ba
12627     0: ba
12628    
12629    /\A.*?(?:a|b(*THEN)c|d)/
12630        ba
12631     0: ba
12632    
12633    /(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/
12634        aac
12635     0: aac
12636    
12637    /\A.*?(a|b(*THEN)c)/
12638        ba
12639     0: ba
12640     1: a
12641    
12642    /^(A(*THEN)B|A(*THEN)D)/
12643        AD
12644     0: AD
12645     1: AD
12646    
12647    /(?!b(*THEN)a)bn|bnn/
12648        bnn
12649     0: bn
12650    
12651    /(?(?=b(*SKIP)a)bn|bnn)/
12652        bnn
12653    No match
12654    
12655    /(?=b(*THEN)a|)bn|bnn/
12656        bnn
12657     0: bn
12658    
12659    /-------------------------/
12660    
12661    /(*LIMIT_MATCH=12bc)abc/
12662    Failed: (*VERB) not recognized or malformed at offset 7
12663    
12664    /(*LIMIT_MATCH=4294967290)abc/
12665    Failed: (*VERB) not recognized or malformed at offset 7
12666    
12667    /(*LIMIT_RECURSION=4294967280)abc/I
12668    Capturing subpattern count = 0
12669    Recursion limit = 4294967280
12670    No options
12671    First char = 'a'
12672    Need char = 'c'
12673    
12674    /(a+)*zz/
12675        aaaaaaaaaaaaaz
12676    No match
12677        aaaaaaaaaaaaaz\q3000
12678    Error -8 (match limit exceeded)
12679    
12680    /(a+)*zz/S-
12681        aaaaaaaaaaaaaz\Q10
12682    Error -21 (recursion limit exceeded)
12683    
12684    /(*LIMIT_MATCH=3000)(a+)*zz/I
12685    Capturing subpattern count = 1
12686    Match limit = 3000
12687    No options
12688    No first char
12689    Need char = 'z'
12690        aaaaaaaaaaaaaz
12691    Error -8 (match limit exceeded)
12692        aaaaaaaaaaaaaz\q60000
12693    Error -8 (match limit exceeded)
12694    
12695    /(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
12696    Capturing subpattern count = 1
12697    Match limit = 3000
12698    No options
12699    No first char
12700    Need char = 'z'
12701        aaaaaaaaaaaaaz
12702    Error -8 (match limit exceeded)
12703    
12704    /(*LIMIT_MATCH=60000)(a+)*zz/I
12705    Capturing subpattern count = 1
12706    Match limit = 60000
12707    No options
12708    No first char
12709    Need char = 'z'
12710        aaaaaaaaaaaaaz
12711    No match
12712        aaaaaaaaaaaaaz\q3000
12713    Error -8 (match limit exceeded)
12714    
12715    /(*LIMIT_RECURSION=10)(a+)*zz/IS-
12716    Capturing subpattern count = 1
12717    Recursion limit = 10
12718    No options
12719    No first char
12720    Need char = 'z'
12721    Subject length lower bound = 2
12722    Starting byte set: a z
12723        aaaaaaaaaaaaaz
12724    Error -21 (recursion limit exceeded)
12725        aaaaaaaaaaaaaz\Q1000
12726    Error -21 (recursion limit exceeded)
12727    
12728    /(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12729    Capturing subpattern count = 1
12730    Recursion limit = 10
12731    No options
12732    No first char
12733    Need char = 'z'
12734    Subject length lower bound = 2
12735    Starting byte set: a z
12736        aaaaaaaaaaaaaz
12737    Error -21 (recursion limit exceeded)
12738    
12739    /(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12740    Capturing subpattern count = 1
12741    Recursion limit = 1000
12742    No options
12743    No first char
12744    Need char = 'z'
12745    Subject length lower bound = 2
12746    Starting byte set: a z
12747        aaaaaaaaaaaaaz
12748    No match
12749        aaaaaaaaaaaaaz\Q10
12750    Error -21 (recursion limit exceeded)
12751    
12752    /-- This test causes a segfault with Perl 5.18.0 --/
12753    
12754    /^(?=(a)){0}b(?1)/
12755        backgammon
12756     0: ba
12757    
12758    /(?|(?<n>f)|(?<n>b))/JI
12759    Capturing subpattern count = 1
12760    Named capturing subpatterns:
12761      n   1
12762    Options: dupnames
12763    No first char
12764    No need char
12765    
12766    /(?<a>abc)(?<a>z)\k<a>()/JDZS
12767    ------------------------------------------------------------------
12768            Bra
12769            CBra 1
12770            abc
12771            Ket
12772            CBra 2
12773            z
12774            Ket
12775            \k<a>2
12776            CBra 3
12777            Ket
12778            Ket
12779            End
12780    ------------------------------------------------------------------
12781    Capturing subpattern count = 3
12782    Max back reference = 2
12783    Named capturing subpatterns:
12784      a   1
12785      a   2
12786    Options: dupnames
12787    First char = 'a'
12788    Need char = 'z'
12789    Subject length lower bound = 5
12790    No set of starting bytes
12791    
12792    /a*[bcd]/BZ
12793    ------------------------------------------------------------------
12794            Bra
12795            a*+
12796            [b-d]
12797            Ket
12798            End
12799    ------------------------------------------------------------------
12800    
12801    /[bcd]*a/BZ
12802    ------------------------------------------------------------------
12803            Bra
12804            [b-d]*+
12805            a
12806            Ket
12807            End
12808    ------------------------------------------------------------------
12809    
12810    /-- A complete set of tests for auto-possessification of character types --/
12811    
12812    /\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
12813    ------------------------------------------------------------------
12814            Bra
12815            \D+
12816            \D
12817            \D++
12818            \d
12819            \D+
12820            \S
12821            \D+
12822            \s
12823            \D+
12824            \W
12825            \D+
12826            \w
12827            \D+
12828            Any
12829            \D+
12830            AllAny
12831            \D+
12832            \R
12833            \D+
12834            \H
12835            \D+
12836            \h
12837            \D+
12838            \V
12839            \D+
12840            \v
12841            \D+
12842            \Z
12843            \D++
12844            \z
12845            \D+
12846            $
12847            Ket
12848            End
12849    ------------------------------------------------------------------
12850    
12851    /\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
12852    ------------------------------------------------------------------
12853            Bra
12854            \d++
12855            \D
12856            \d+
12857            \d
12858            \d+
12859            \S
12860            \d++
12861            \s
12862            \d++
12863            \W
12864            \d+
12865            \w
12866            \d+
12867            Any
12868            \d+
12869            AllAny
12870            \d++
12871            \R
12872            \d+
12873            \H
12874            \d++
12875            \h
12876            \d+
12877            \V
12878            \d++
12879            \v
12880            \d++
12881            \Z
12882            \d++
12883            \z
12884            \d++
12885            $
12886            Ket
12887            End
12888    ------------------------------------------------------------------
12889    
12890    /\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
12891    ------------------------------------------------------------------
12892            Bra
12893            \S+
12894            \D
12895            \S+
12896            \d
12897            \S+
12898            \S
12899            \S++
12900            \s
12901            \S+
12902            \W
12903            \S+
12904            \w
12905            \S+
12906            Any
12907            \S+
12908            AllAny
12909            \S++
12910            \R
12911            \S+
12912            \H
12913            \S++
12914            \h
12915            \S+
12916            \V
12917            \S++
12918            \v
12919            \S++
12920            \Z
12921            \S++
12922            \z
12923            \S++
12924            $
12925            Ket
12926            End
12927    ------------------------------------------------------------------
12928    
12929    /\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
12930    ------------------------------------------------------------------
12931            Bra
12932            \s+
12933            \D
12934            \s++
12935            \d
12936            \s++
12937            \S
12938            \s+
12939            \s
12940            \s+
12941            \W
12942            \s++
12943            \w
12944            \s+
12945            Any
12946            \s+
12947            AllAny
12948            \s+
12949            \R
12950            \s+
12951            \H
12952            \s+
12953            \h
12954            \s+
12955            \V
12956            \s+
12957            \v
12958            \s+
12959            \Z
12960            \s++
12961            \z
12962            \s+
12963            $
12964            Ket
12965            End
12966    ------------------------------------------------------------------
12967    
12968    /\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
12969    ------------------------------------------------------------------
12970            Bra
12971            \W+
12972            \D
12973            \W++
12974            \d
12975            \W+
12976            \S
12977            \W+
12978            \s
12979            \W+
12980            \W
12981            \W++
12982            \w
12983            \W+
12984            Any
12985            \W+
12986            AllAny
12987            \W+
12988            \R
12989            \W+
12990            \H
12991            \W+
12992            \h
12993            \W+
12994            \V
12995            \W+
12996            \v
12997            \W+
12998            \Z
12999            \W++
13000            \z
13001            \W+
13002            $
13003            Ket
13004            End
13005    ------------------------------------------------------------------
13006    
13007    /\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
13008    ------------------------------------------------------------------
13009            Bra
13010            \w+
13011            \D
13012            \w+
13013            \d
13014            \w+
13015            \S
13016            \w++
13017            \s
13018            \w++
13019            \W
13020            \w+
13021            \w
13022            \w+
13023            Any
13024            \w+
13025            AllAny
13026            \w++
13027            \R
13028            \w+
13029            \H
13030            \w++
13031            \h
13032            \w+
13033            \V
13034            \w++
13035            \v
13036            \w++
13037            \Z
13038            \w++
13039            \z
13040            \w++
13041            $
13042            Ket
13043            End
13044    ------------------------------------------------------------------
13045    
13046    /\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
13047    ------------------------------------------------------------------
13048            Bra
13049            AllAny+
13050            \D
13051            AllAny+
13052            \d
13053            AllAny+
13054            \S
13055            AllAny+
13056            \s
13057            AllAny+
13058            \W
13059            AllAny+
13060            \w
13061            AllAny+
13062            Any
13063            AllAny+
13064            AllAny
13065            AllAny+
13066            \R
13067            AllAny+
13068            \H
13069            AllAny+
13070            \h
13071            AllAny+
13072            \V
13073            AllAny+
13074            \v
13075            AllAny+
13076            \Z
13077            AllAny++
13078            \z
13079            AllAny+
13080            $
13081            Ket
13082            End
13083    ------------------------------------------------------------------
13084    
13085    /\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
13086    ------------------------------------------------------------------
13087            Bra
13088            \R+
13089            \D
13090            \R++
13091            \d
13092            \R+
13093            \S
13094            \R++
13095            \s
13096            \R+
13097            \W
13098            \R++
13099            \w
13100            \R++
13101            Any
13102            \R+
13103            AllAny
13104            \R+
13105            \R
13106            \R+
13107            \H
13108            \R++
13109            \h
13110            \R+
13111            \V
13112            \R+
13113            \v
13114            \R+
13115            \Z
13116            \R++
13117            \z
13118            \R+
13119            $
13120            Ket
13121            End
13122    ------------------------------------------------------------------
13123    
13124    /\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
13125    ------------------------------------------------------------------
13126            Bra
13127            \H+
13128            \D
13129            \H+
13130            \d
13131            \H+
13132            \S
13133            \H+
13134            \s
13135            \H+
13136            \W
13137            \H+
13138            \w
13139            \H+
13140            Any
13141            \H+
13142            AllAny
13143            \H+
13144            \R
13145            \H+
13146            \H
13147            \H++
13148            \h
13149            \H+
13150            \V
13151            \H+
13152            \v
13153            \H+
13154            \Z
13155            \H++
13156            \z
13157            \H+
13158            $
13159            Ket
13160            End
13161    ------------------------------------------------------------------
13162    
13163    /\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
13164    ------------------------------------------------------------------
13165            Bra
13166            \h+
13167            \D
13168            \h++
13169            \d
13170            \h++
13171            \S
13172            \h+
13173            \s
13174            \h+
13175            \W
13176            \h++
13177            \w
13178            \h+
13179            Any
13180            \h+
13181            AllAny
13182            \h++
13183            \R
13184            \h++
13185            \H
13186            \h+
13187            \h
13188            \h+
13189            \V
13190            \h++
13191            \v
13192            \h+
13193            \Z
13194            \h++
13195            \z
13196            \h+
13197            $
13198            Ket
13199            End
13200    ------------------------------------------------------------------
13201    
13202    /\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
13203    ------------------------------------------------------------------
13204            Bra
13205            \V+
13206            \D
13207            \V+
13208            \d