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