/[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 511 by ph10, Mon Mar 29 09:25:38 2010 UTC revision 1363 by ph10, Tue Oct 1 16:54:40 2013 UTC
# Line 2  Line 2 
2      of PCRE's API, error diagnostics, and the compiled code of some patterns.      of PCRE's API, error diagnostics, and the compiled code of some patterns.
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 potential Perl      either because PCRE can't be compatible, or there is a possible Perl
6      bug. --/      bug.
7    
8        NOTE: This is a non-UTF set of tests. When UTF support is needed, use
9        test 5, and if Unicode Property Support is needed, use test 7. --/
10    
 /-- Originally, the Perl 5.10 things were in here too, but now I have separated  
     many (most?) of them out into test 11. However, there may still be some  
     that were overlooked. --/  
   
11  /(a)b|/I  /(a)b|/I
12  Capturing subpattern count = 1  Capturing subpattern count = 1
13    May match empty string
14  No options  No options
15  No first char  No first char
16  No need char  No need char
# Line 103  Failed: missing terminating ] for charac Line 103  Failed: missing terminating ] for charac
103  /(?X)[\B]/  /(?X)[\B]/
104  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
105    
106    /(?X)[\R]/
107    Failed: invalid escape sequence in character class at offset 6
108    
109    /(?X)[\X]/
110    Failed: invalid escape sequence in character class at offset 6
111    
112    /[\B]/BZ
113    ------------------------------------------------------------------
114            Bra
115            B
116            Ket
117            End
118    ------------------------------------------------------------------
119    
120    /[\R]/BZ
121    ------------------------------------------------------------------
122            Bra
123            R
124            Ket
125            End
126    ------------------------------------------------------------------
127    
128    /[\X]/BZ
129    ------------------------------------------------------------------
130            Bra
131            X
132            Ket
133            End
134    ------------------------------------------------------------------
135    
136  /[z-a]/  /[z-a]/
137  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
138    
# Line 347  No need char Line 377  No need char
377   2: <unset>   2: <unset>
378   3: def   3: def
379    
 /abc/P  
     abc  
  0: abc  
     *** Failers  
 No match: POSIX code 17: match failed  
   
 /^abc|def/P  
     abcdef  
  0: abc  
     abcdef\B  
  0: def  
   
 /.*((abc)$|(def))/P  
     defabc  
  0: defabc  
  1: abc  
  2: abc  
     \Zdefabc  
  0: def  
  1: def  
  3: def  
   
 /the quick brown fox/P  
     the quick brown fox  
  0: the quick brown fox  
     *** Failers  
 No match: POSIX code 17: match failed  
     The Quick Brown Fox  
 No match: POSIX code 17: match failed  
   
 /the quick brown fox/Pi  
     the quick brown fox  
  0: the quick brown fox  
     The Quick Brown Fox  
  0: The Quick Brown Fox  
   
 /abc.def/P  
     *** Failers  
 No match: POSIX code 17: match failed  
     abc\ndef  
 No match: POSIX code 17: match failed  
   
 /abc$/P  
     abc  
  0: abc  
     abc\n  
  0: abc  
   
 /(abc)\2/P  
 Failed: POSIX code 15: bad back reference at offset 7  
   
 /(abc\1)/P  
     abc  
 No match: POSIX code 17: match failed  
   
380  /)/  /)/
381  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
382    
# Line 474  Need char = '=' Line 449  Need char = '='
449    
450  /(?<!bar|cattle)foo/I  /(?<!bar|cattle)foo/I
451  Capturing subpattern count = 0  Capturing subpattern count = 0
452    Max lookbehind = 6
453  No options  No options
454  First char = 'f'  First char = 'f'
455  Need char = 'o'  Need char = 'o'
# Line 523  No need char Line 499  No need char
499    
500  /(?s).*/I  /(?s).*/I
501  Capturing subpattern count = 0  Capturing subpattern count = 0
502    May match empty string
503  Options: anchored dotall  Options: anchored dotall
504  No first char  No first char
505  No need char  No need char
# Line 602  Need char = 'h' (caseless) Line 579  Need char = 'h' (caseless)
579  ------------------------------------------------------------------  ------------------------------------------------------------------
580          Bra          Bra
581          CBra 1          CBra 1
582       01 Opt       /i b
      NC b  
583          Ket          Ket
      00 Opt  
584          Ket          Ket
585          End          End
586  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 658  No match Line 633  No match
633    
634  /\Aabc/Im  /\Aabc/Im
635  Capturing subpattern count = 0  Capturing subpattern count = 0
636    Max lookbehind = 1
637  Options: anchored multiline  Options: anchored multiline
638  No first char  No first char
639  No need char  No need char
# Line 683  No need char Line 659  No need char
659    
660  /(?<=foo)[ab]/IS  /(?<=foo)[ab]/IS
661  Capturing subpattern count = 0  Capturing subpattern count = 0
662    Max lookbehind = 3
663  No options  No options
664  No first char  No first char
665  No need char  No need char
# Line 691  Starting byte set: a b Line 668  Starting byte set: a b
668    
669  /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
670  Capturing subpattern count = 1  Capturing subpattern count = 1
671    Max lookbehind = 3
672  No options  No options
673  No first char  No first char
674  Need char = 'a'  Need char = 'a'
# Line 707  Starting byte set: a b Line 685  Starting byte set: a b
685    
686  /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
687  Capturing subpattern count = 0  Capturing subpattern count = 0
688    Max lookbehind = 4
689  Contains explicit CR or LF match  Contains explicit CR or LF match
690  Options: multiline  Options: multiline
691  No first char  No first char
# Line 724  No match Line 703  No match
703    
704  /^(?<=foo\n)bar/Im  /^(?<=foo\n)bar/Im
705  Capturing subpattern count = 0  Capturing subpattern count = 0
706    Max lookbehind = 4
707  Contains explicit CR or LF match  Contains explicit CR or LF match
708  Options: multiline  Options: multiline
709  First char at start or follows newline  First char at start or follows newline
# Line 766  Failed: lookbehind assertion is not fixe Line 746  Failed: lookbehind assertion is not fixe
746    
747  /(?<=bullock|donkey)-cart/I  /(?<=bullock|donkey)-cart/I
748  Capturing subpattern count = 0  Capturing subpattern count = 0
749    Max lookbehind = 7
750  No options  No options
751  First char = '-'  First char = '-'
752  Need char = 't'  Need char = 't'
# Line 782  No match Line 763  No match
763    
764  /(?<=ab(?i)x|y|z)/I  /(?<=ab(?i)x|y|z)/I
765  Capturing subpattern count = 0  Capturing subpattern count = 0
766    Max lookbehind = 3
767    May match empty string
768  No options  No options
769  No first char  No first char
770  No need char  No need char
771    
772  /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
773  Capturing subpattern count = 2  Capturing subpattern count = 2
774    Max lookbehind = 4
775    May match empty string
776  No options  No options
777  First char at start or follows newline  No first char
778  No need char  No need char
779      alphabetabcd      alphabetabcd
780   0: alphabetabcd   0: alphabetabcd
# Line 801  No need char Line 786  No need char
786    
787  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
788  Capturing subpattern count = 0  Capturing subpattern count = 0
789    Max lookbehind = 4
790  No options  No options
791  First char = 'Z'  First char = 'Z'
792  Need char = 'Z'  Need char = 'Z'
# Line 829  No match Line 815  No match
815    
816  /(?<!(foo)a)bar/I  /(?<!(foo)a)bar/I
817  Capturing subpattern count = 1  Capturing subpattern count = 1
818    Max lookbehind = 4
819  No options  No options
820  First char = 'b'  First char = 'b'
821  Need char = 'r'  Need char = 'r'
# Line 841  No match Line 828  No match
828      fooabar      fooabar
829  No match  No match
830    
 /This one is here because Perl 5.005_02 doesn't fail it/I  
 Capturing subpattern count = 0  
 No options  
 First char = 'T'  
 Need char = 't'  
   
 /^(a)?(?(1)a|b)+$/I  
 Capturing subpattern count = 1  
 Options: anchored  
 No first char  
 No need char  
     *** Failers  
 No match  
     a  
 No match  
   
831  /This one is here because Perl behaves differently; see also the following/I  /This one is here because Perl behaves differently; see also the following/I
832  Capturing subpattern count = 0  Capturing subpattern count = 0
833  No options  No options
# Line 1003  Failed: numbers out of order in {} quant Line 974  Failed: numbers out of order in {} quant
974  /abc/\  /abc/\
975  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
976    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
977  /abc/\i  /abc/\i
978  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
979    
# Line 1121  No first char Line 1089  No first char
1089  No need char  No need char
1090      abc\00def\L\C0      abc\00def\L\C0
1091   0: abc\x00def   0: abc\x00def
1092   0C abc (7)   0C abc\x00def (7)
1093   0L abc   0L abc
1094    
1095  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
# Line 1217  No need char Line 1185  No need char
1185  ------------------------------------------------------------------  ------------------------------------------------------------------
1186          Bra          Bra
1187          Bra          Bra
      04 Opt  
1188          AllAny*          AllAny*
1189          X          X
1190          Alt          Alt
      04 Opt  
1191          ^          ^
1192          B          B
1193          Ket          Ket
      00 Opt  
1194          Ket          Ket
1195          End          End
1196  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1236  No need char Line 1201  No need char
1201    
1202  /\Biss\B/I+  /\Biss\B/I+
1203  Capturing subpattern count = 0  Capturing subpattern count = 0
1204    Max lookbehind = 1
1205  No options  No options
1206  First char = 'i'  First char = 'i'
1207  Need char = 's'  Need char = 's'
# Line 1243  Need char = 's' Line 1209  Need char = 's'
1209   0: iss   0: iss
1210   0+ issippi   0+ issippi
1211    
 /\Biss\B/I+P  
     Mississippi  
  0: iss  
  0+ issippi  
   
1212  /iss/IG+  /iss/IG+
1213  Capturing subpattern count = 0  Capturing subpattern count = 0
1214  No options  No options
# Line 1261  Need char = 's' Line 1222  Need char = 's'
1222    
1223  /\Biss\B/IG+  /\Biss\B/IG+
1224  Capturing subpattern count = 0  Capturing subpattern count = 0
1225    Max lookbehind = 1
1226  No options  No options
1227  First char = 'i'  First char = 'i'
1228  Need char = 's'  Need char = 's'
# Line 1270  Need char = 's' Line 1232  Need char = 's'
1232    
1233  /\Biss\B/Ig+  /\Biss\B/Ig+
1234  Capturing subpattern count = 0  Capturing subpattern count = 0
1235    Max lookbehind = 1
1236  No options  No options
1237  First char = 'i'  First char = 'i'
1238  Need char = 's'  Need char = 's'
# Line 1285  No match Line 1248  No match
1248    
1249  /(?<=[Ms])iss/Ig+  /(?<=[Ms])iss/Ig+
1250  Capturing subpattern count = 0  Capturing subpattern count = 0
1251    Max lookbehind = 1
1252  No options  No options
1253  First char = 'i'  First char = 'i'
1254  Need char = 's'  Need char = 's'
# Line 1296  Need char = 's' Line 1260  Need char = 's'
1260    
1261  /(?<=[Ms])iss/IG+  /(?<=[Ms])iss/IG+
1262  Capturing subpattern count = 0  Capturing subpattern count = 0
1263    Max lookbehind = 1
1264  No options  No options
1265  First char = 'i'  First char = 'i'
1266  Need char = 's'  Need char = 's'
# Line 1377  Capturing subpattern count = 0 Line 1342  Capturing subpattern count = 0
1342  Contains explicit CR or LF match  Contains explicit CR or LF match
1343  Options: multiline  Options: multiline
1344  First char at start or follows newline  First char at start or follows newline
1345  Need char = 10  Need char = \x0a
1346      ab\nab\ncd      ab\nab\ncd
1347   0: ab\x0a   0: ab\x0a
1348   0+ ab\x0acd   0+ ab\x0acd
# Line 1416  Need char = 'c' Line 1381  Need char = 'c'
1381    
1382  /a*/I  /a*/I
1383  Capturing subpattern count = 0  Capturing subpattern count = 0
1384    May match empty string
1385  No options  No options
1386  No first char  No first char
1387  No need char  No need char
# Line 1434  Need char = 'a' Line 1400  Need char = 'a'
1400    
1401  /a{0,3}/I  /a{0,3}/I
1402  Capturing subpattern count = 0  Capturing subpattern count = 0
1403    May match empty string
1404  No options  No options
1405  No first char  No first char
1406  No need char  No need char
# Line 1476  Need char = 'r' Line 1443  Need char = 'r'
1443    
1444  /...(?<=abc)/I  /...(?<=abc)/I
1445  Capturing subpattern count = 0  Capturing subpattern count = 0
1446    Max lookbehind = 3
1447  No options  No options
1448  No first char  No first char
1449  No need char  No need char
# Line 1632  Need char = 'e' Line 1600  Need char = 'e'
1600    
1601  /a?b?/I  /a?b?/I
1602  Capturing subpattern count = 0  Capturing subpattern count = 0
1603    May match empty string
1604  No options  No options
1605  No first char  No first char
1606  No need char  No need char
# Line 1650  No match Line 1619  No match
1619    
1620  /|-/I  /|-/I
1621  Capturing subpattern count = 0  Capturing subpattern count = 0
1622    May match empty string
1623  No options  No options
1624  No first char  No first char
1625  No need char  No need char
# Line 1664  No need char Line 1634  No need char
1634      \Nabc      \Nabc
1635  No match  No match
1636    
 /a*(b+)(z)(z)/P  
     aaaabbbbzzzz  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O0  
     aaaabbbbzzzz\O1  
  0: aaaabbbbzz  
     aaaabbbbzzzz\O2  
  0: aaaabbbbzz  
  1: bbbb  
     aaaabbbbzzzz\O3  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
     aaaabbbbzzzz\O4  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O5  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
   
1637  /^.?abcd/IS  /^.?abcd/IS
1638  Capturing subpattern count = 0  Capturing subpattern count = 0
1639  Options: anchored  Options: anchored
# Line 2690  Need char = '-' Line 2633  Need char = '-'
2633          End          End
2634  ------------------------------------------------------------------  ------------------------------------------------------------------
2635  Capturing subpattern count = 0  Capturing subpattern count = 0
2636    May match empty string
2637  Options: extended  Options: extended
2638  No first char  No first char
2639  No need char  No need char
# Line 2734  No need char Line 2678  No need char
2678  ------------------------------------------------------------------  ------------------------------------------------------------------
2679          Bra          Bra
2680          a          a
2681       01 Opt       /i b
      NC b  
2682          Ket          Ket
2683          End          End
2684  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2757  No match Line 2700  No match
2700          Bra          Bra
2701          CBra 1          CBra 1
2702          a          a
2703       01 Opt       /i b
      NC b  
2704          Ket          Ket
      00 Opt  
2705          Ket          Ket
2706          End          End
2707  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2782  No match Line 2723  No match
2723  /   (?i)abc/IxDZ  /   (?i)abc/IxDZ
2724  ------------------------------------------------------------------  ------------------------------------------------------------------
2725          Bra          Bra
2726       NC abc       /i abc
2727          Ket          Ket
2728          End          End
2729  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2795  Need char = 'c' (caseless) Line 2736  Need char = 'c' (caseless)
2736    (?i)abc/IxDZ    (?i)abc/IxDZ
2737  ------------------------------------------------------------------  ------------------------------------------------------------------
2738          Bra          Bra
2739       NC abc       /i abc
2740          Ket          Ket
2741          End          End
2742  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2835  Need char = '0' Line 2776  Need char = '0'
2776          End          End
2777  ------------------------------------------------------------------  ------------------------------------------------------------------
2778  Capturing subpattern count = 0  Capturing subpattern count = 0
2779    May match empty string
2780  No options  No options
2781  No first char  No first char
2782  No need char  No need char
# Line 2934  No match Line 2876  No match
2876          End          End
2877  ------------------------------------------------------------------  ------------------------------------------------------------------
2878  Capturing subpattern count = 0  Capturing subpattern count = 0
2879    May match empty string
2880  No options  No options
2881  No first char  No first char
2882  No need char  No need char
# Line 2955  No need char Line 2898  No need char
2898          Bra          Bra
2899          Once          Once
2900          x          x
2901          x{0,2}          x{0,2}+
2902          Ket          Ket
2903          Ket          Ket
2904          End          End
# Line 2968  No need char Line 2911  No need char
2911  /(x)*+/DZ  /(x)*+/DZ
2912  ------------------------------------------------------------------  ------------------------------------------------------------------
2913          Bra          Bra
2914          Once          Braposzero
2915          Brazero          CBraPos 1
         CBra 1  
2916          x          x
2917          KetRmax          KetRpos
         Ket  
2918          Ket          Ket
2919          End          End
2920  ------------------------------------------------------------------  ------------------------------------------------------------------
2921  Capturing subpattern count = 1  Capturing subpattern count = 1
2922    May match empty string
2923  No options  No options
2924  No first char  No first char
2925  No need char  No need char
2926    
2927  /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
2928  Capturing subpattern count = 1  Capturing subpattern count = 1
2929    May match empty string
2930  Options: anchored  Options: anchored
2931  No first char  No first char
2932  No need char  No need char
# Line 3145  Need char = 'b' Line 3088  Need char = 'b'
3088          [bc]+          [bc]+
3089          Ket          Ket
3090          CBra 5          CBra 5
3091          \w*          \w*+
3092          Ket          Ket
3093          Ket          Ket
3094          Ket          Ket
# Line 3198  Failed: POSIX collating elements are not Line 3141  Failed: POSIX collating elements are not
3141  Failed: POSIX named classes are supported only within a class at offset 0  Failed: POSIX named classes are supported only within a class at offset 0
3142    
3143  /\l/I  /\l/I
3144  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3145    
3146  /\L/I  /\L/I
3147  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3148    
3149  /\N{name}/I  /\N{name}/I
3150  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3151    
3152  /\u/I  /\u/I
3153  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3154    
3155  /\U/I  /\U/I
3156  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3157    
3158  /[/I  /[/I
3159  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 3288  No match Line 3231  No match
3231          End          End
3232  ------------------------------------------------------------------  ------------------------------------------------------------------
3233  Capturing subpattern count = 0  Capturing subpattern count = 0
3234    Max lookbehind = 1
3235  No options  No options
3236  First char = '8'  First char = '8'
3237  Need char = 'X'  Need char = 'X'
# Line 3301  Need char = 'X' Line 3245  Need char = 'X'
3245          End          End
3246  ------------------------------------------------------------------  ------------------------------------------------------------------
3247  Capturing subpattern count = 0  Capturing subpattern count = 0
3248    Max lookbehind = 1
3249  No options  No options
3250  First char = '$'  First char = '$'
3251  Need char = 'X'  Need char = 'X'
# Line 3357  Need char = 'b' Line 3302  Need char = 'b'
3302    
3303  /(?=a).*/I  /(?=a).*/I
3304  Capturing subpattern count = 0  Capturing subpattern count = 0
3305    May match empty string
3306  No options  No options
3307  First char = 'a'  First char = 'a'
3308  No need char  No need char
# Line 3375  Need char = 'z' (caseless) Line 3321  Need char = 'z' (caseless)
3321    
3322  /(?=a)(?=b)/I  /(?=a)(?=b)/I
3323  Capturing subpattern count = 0  Capturing subpattern count = 0
3324    May match empty string
3325  No options  No options
3326  First char = 'a'  First char = 'a'
3327  No need char  No need char
# Line 3441  Need char = 'a' Line 3388  Need char = 'a'
3388    
3389  /(a)*/I  /(a)*/I
3390  Capturing subpattern count = 1  Capturing subpattern count = 1
3391    May match empty string
3392  No options  No options
3393  No first char  No first char
3394  No need char  No need char
# Line 3560  Need char = 'f' Line 3508  Need char = 'f'
3508    1    ^    ^     f    1    ^    ^     f
3509   0: abcdef   0: abcdef
3510    
3511  /(?C1)\dabc(?C2)def/I  /(?C1)\dabc(?C2)def/IS
3512    Capturing subpattern count = 0
3513    No options
3514    No first char
3515    Need char = 'f'
3516    Subject length lower bound = 7
3517    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3518        1234abcdef
3519    --->1234abcdef
3520      1 ^              \d
3521      1  ^             \d
3522      1   ^            \d
3523      1    ^           \d
3524      2    ^   ^       d
3525     0: 4abcdef
3526        *** Failers
3527    No match
3528        abcdef
3529    No match
3530    
3531    /(?C1)\dabc(?C2)def/ISS
3532  Capturing subpattern count = 0  Capturing subpattern count = 0
3533  No options  No options
3534  No first char  No first char
# Line 3649  No match Line 3617  No match
3617    
3618  /(?C0)(abc(?C1))*/I  /(?C0)(abc(?C1))*/I
3619  Capturing subpattern count = 1  Capturing subpattern count = 1
3620    May match empty string
3621  No options  No options
3622  No first char  No first char
3623  No need char  No need char
# Line 3682  No need char Line 3651  No need char
3651    
3652  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3653  Capturing subpattern count = 1  Capturing subpattern count = 1
3654    May match empty string
3655  No options  No options
3656  No first char  No first char
3657  No need char  No need char
# Line 3796  Callout 2: last capture = -1 Line 3766  Callout 2: last capture = -1
3766    
3767  /(?<=(abc)(?C))xyz/I  /(?<=(abc)(?C))xyz/I
3768  Capturing subpattern count = 1  Capturing subpattern count = 1
3769    Max lookbehind = 3
3770  No options  No options
3771  First char = 'x'  First char = 'x'
3772  Need char = 'z'  Need char = 'z'
# Line 3817  Need char = 'b' Line 3788  Need char = 'b'
3788  --->abbbbbccc  --->abbbbbccc
3789    1 ^        ^    1 ^        ^
3790  Callout data = 1  Callout data = 1
   1 ^       ^  
 Callout data = 1  
   1 ^      ^  
 Callout data = 1  
   1 ^     ^  
 Callout data = 1  
3791    1 ^    ^    1 ^    ^
3792  Callout data = 1  Callout data = 1
3793    1 ^   ^    1 ^   ^
# Line 3927  Failed: recursive call could loop indefi Line 3892  Failed: recursive call could loop indefi
3892    
3893  /^([^()]|\((?1)*\))*$/I  /^([^()]|\((?1)*\))*$/I
3894  Capturing subpattern count = 1  Capturing subpattern count = 1
3895    May match empty string
3896  Options: anchored  Options: anchored
3897  No first char  No first char
3898  No need char  No need char
# Line 3964  Need char = '<' Line 3930  Need char = '<'
3930          Bra          Bra
3931          CBra 1          CBra 1
3932          a          a
         Once  
3933          Recurse          Recurse
         Ket  
3934          b          b
3935          Ket          Ket
3936          Ket          Ket
# Line 4187  Need char = 'a' Line 4151  Need char = 'a'
4151          Any          Any
4152          \1          \1
4153          bbb          bbb
         Once  
4154          Recurse          Recurse
         Ket  
4155          d          d
4156          Ket          Ket
4157          End          End
# Line 4210  Named capturing subpatterns: Line 4172  Named capturing subpatterns:
4172    one     1    one     1
4173    three   3    three   3
4174    two     2    two     2
4175    May match empty string
4176  Options: anchored caseless  Options: anchored caseless
4177  No first char  No first char
4178  No need char  No need char
# Line 4309  Need char = 'z' Line 4272  Need char = 'z'
4272    
4273  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4274  Capturing subpattern count = 31  Capturing subpattern count = 31
4275    May match empty string
4276  Options: anchored dotall  Options: anchored dotall
4277  No first char  No first char
4278  No need char  No need char
# Line 4316  No need char Line 4280  No need char
4280  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4281  Capturing subpattern count = 31  Capturing subpattern count = 31
4282  Max back reference = 31  Max back reference = 31
4283    May match empty string
4284  Options: dotall  Options: dotall
4285  No first char  No first char
4286  No need char  No need char
# Line 4323  No need char Line 4288  No need char
4288  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4289  Capturing subpattern count = 32  Capturing subpattern count = 32
4290  Max back reference = 32  Max back reference = 32
4291    May match empty string
4292  Options: dotall  Options: dotall
4293  No first char  No first char
4294  No need char  No need char
# Line 4399  Minimum match() recursion limit = 6 Line 4365  Minimum match() recursion limit = 6
4365   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4366    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4367  Minimum match() limit = 32768  Minimum match() limit = 32768
4368  Minimum match() recursion limit = 42  Minimum match() recursion limit = 29
4369  No match  No match
4370    
4371  /(aaa(?C1)bbb|ab)/I  /(aaa(?C1)bbb|ab)/I
# Line 4474  Capturing subpattern count = 2 Line 4440  Capturing subpattern count = 2
4440  Named capturing subpatterns:  Named capturing subpatterns:
4441    Tes    1    Tes    1
4442    Test   2    Test   2
4443    May match empty string
4444  No options  No options
4445  No first char  No first char
4446  No need char  No need char
# Line 4492  Capturing subpattern count = 2 Line 4459  Capturing subpattern count = 2
4459  Named capturing subpatterns:  Named capturing subpatterns:
4460    Tes    2    Tes    2
4461    Test   1    Test   1
4462    May match empty string
4463  No options  No options
4464  No first char  No first char
4465  No need char  No need char
# Line 4561  Need char = ']' Line 4529  Need char = ']'
4529          a          a
4530          CBra 2          CBra 2
4531          b          b
         Once  
4532          Recurse          Recurse
         Ket  
4533          c          c
4534          Ket          Ket
4535          Ket          Ket
# Line 4571  Need char = ']' Line 4537  Need char = ']'
4537          End          End
4538  ------------------------------------------------------------------  ------------------------------------------------------------------
4539  Capturing subpattern count = 2  Capturing subpattern count = 2
4540    May match empty string
4541  No options  No options
4542  No first char  No first char
4543  No need char  No need char
# Line 4583  No need char Line 4550  No need char
4550          a          a
4551          CBra 2          CBra 2
4552          b          b
         Once  
4553          Recurse          Recurse
         Ket  
4554          c          c
4555          Ket          Ket
4556          KetRmax          KetRmax
# Line 4593  No need char Line 4558  No need char
4558          End          End
4559  ------------------------------------------------------------------  ------------------------------------------------------------------
4560  Capturing subpattern count = 2  Capturing subpattern count = 2
4561    May match empty string
4562  No options  No options
4563  No first char  No first char
4564  No need char  No need char
# Line 4606  No need char Line 4572  No need char
4572          a          a
4573          CBra 2          CBra 2
4574          b          b
         Once  
4575          Recurse          Recurse
         Ket  
4576          c          c
4577          Ket          Ket
4578          Ket          Ket
# Line 4617  No need char Line 4581  No need char
4581          a          a
4582          CBra 2          CBra 2
4583          b          b
         Once  
4584          Recurse          Recurse
         Ket  
4585          c          c
4586          Ket          Ket
4587          Ket          Ket
# Line 4628  No need char Line 4590  No need char
4590          End          End
4591  ------------------------------------------------------------------  ------------------------------------------------------------------
4592  Capturing subpattern count = 2  Capturing subpattern count = 2
4593    May match empty string
4594  No options  No options
4595  No first char  No first char
4596  No need char  No need char
# Line 4758  Need char = 'e' Line 4721  Need char = 'e'
4721   +4 ^   ^      e   +4 ^   ^      e
4722  No match  No match
4723    
4724  /a*b/ICDZ  /a*b/ICDZS
4725    ------------------------------------------------------------------
4726            Bra
4727            Callout 255 0 2
4728            a*+
4729            Callout 255 2 1
4730            b
4731            Callout 255 3 0
4732            Ket
4733            End
4734    ------------------------------------------------------------------
4735    Capturing subpattern count = 0
4736    Options:
4737    No first char
4738    Need char = 'b'
4739    Subject length lower bound = 1
4740    Starting byte set: a b
4741      ab
4742    --->ab
4743     +0 ^      a*
4744     +2 ^^     b
4745     +3 ^ ^
4746     0: ab
4747      aaaab
4748    --->aaaab
4749     +0 ^         a*
4750     +2 ^   ^     b
4751     +3 ^    ^
4752     0: aaaab
4753      aaaacb
4754    --->aaaacb
4755     +0 ^          a*
4756     +2 ^   ^      b
4757     +0  ^         a*
4758     +2  ^  ^      b
4759     +0   ^        a*
4760     +2   ^ ^      b
4761     +0    ^       a*
4762     +2    ^^      b
4763     +0      ^     a*
4764     +2      ^     b
4765     +3      ^^
4766     0: b
4767    
4768    /a*b/ICDZSS
4769  ------------------------------------------------------------------  ------------------------------------------------------------------
4770          Bra          Bra
4771          Callout 255 0 2          Callout 255 0 2
# Line 4841  Need char = 'b' Line 4848  Need char = 'b'
4848   +2    ^^      b   +2    ^^      b
4849  No match  No match
4850    
4851  /(abc|def)x/ICDZ  /(abc|def)x/ICDZS
4852    ------------------------------------------------------------------
4853            Bra
4854            Callout 255 0 9
4855            CBra 1
4856            Callout 255 1 1
4857            a
4858            Callout 255 2 1
4859            b
4860            Callout 255 3 1
4861            c
4862            Callout 255 4 0
4863            Alt
4864            Callout 255 5 1
4865            d
4866            Callout 255 6 1
4867            e
4868            Callout 255 7 1
4869            f
4870            Callout 255 8 0
4871            Ket
4872            Callout 255 9 1
4873            x
4874            Callout 255 10 0
4875            Ket
4876            End
4877    ------------------------------------------------------------------
4878    Capturing subpattern count = 1
4879    Options:
4880    No first char
4881    Need char = 'x'
4882    Subject length lower bound = 4
4883    Starting byte set: a d
4884      abcx
4885    --->abcx
4886     +0 ^        (abc|def)
4887     +1 ^        a
4888     +2 ^^       b
4889     +3 ^ ^      c
4890     +4 ^  ^     |
4891     +9 ^  ^     x
4892    +10 ^   ^
4893     0: abcx
4894     1: abc
4895      defx
4896    --->defx
4897     +0 ^        (abc|def)
4898     +1 ^        a
4899     +5 ^        d
4900     +6 ^^       e
4901     +7 ^ ^      f
4902     +8 ^  ^     )
4903     +9 ^  ^     x
4904    +10 ^   ^
4905     0: defx
4906     1: def
4907      ** Failers
4908    No match
4909      abcdefzx
4910    --->abcdefzx
4911     +0 ^            (abc|def)
4912     +1 ^            a
4913     +2 ^^           b
4914     +3 ^ ^          c
4915     +4 ^  ^         |
4916     +9 ^  ^         x
4917     +5 ^            d
4918     +0    ^         (abc|def)
4919     +1    ^         a
4920     +5    ^         d
4921     +6    ^^        e
4922     +7    ^ ^       f
4923     +8    ^  ^      )
4924     +9    ^  ^      x
4925    No match
4926    
4927    /(abc|def)x/ICDZSS
4928  ------------------------------------------------------------------  ------------------------------------------------------------------
4929          Bra          Bra
4930          Callout 255 0 9          Callout 255 0 9
# Line 4895  Need char = 'x' Line 4978  Need char = 'x'
4978  +10 ^   ^  +10 ^   ^
4979   0: defx   0: defx
4980   1: def   1: def
4981      ** Failers
4982    No match
4983    abcdefzx    abcdefzx
4984  --->abcdefzx  --->abcdefzx
4985   +0 ^            (abc|def)   +0 ^            (abc|def)
# Line 4995  No need char Line 5080  No need char
5080   0: abcdcdcd   0: abcdcdcd
5081   1: cd   1: cd
5082    
5083  /([ab]{,4}c|xy)/ICDZ  /([ab]{,4}c|xy)/ICDZS
5084  ------------------------------------------------------------------  ------------------------------------------------------------------
5085          Bra          Bra
5086          Callout 255 0 14          Callout 255 0 14
# Line 5028  Capturing subpattern count = 1 Line 5113  Capturing subpattern count = 1
5113  Options:  Options:
5114  No first char  No first char
5115  No need char  No need char
5116    Subject length lower bound = 2
5117    Starting byte set: a b x
5118      Note: that { does NOT introduce a quantifier      Note: that { does NOT introduce a quantifier
5119  --->Note: that { does NOT introduce a quantifier  --->Note: that { does NOT introduce a quantifier
5120   +0 ^                                                ([ab]{,4}c|xy)   +0         ^                                        ([ab]{,4}c|xy)
5121   +1 ^                                                [ab]   +1         ^                                        [ab]
5122  +11 ^                                                x   +5         ^^                                       {
5123   +0  ^                                               ([ab]{,4}c|xy)  +11         ^                                        x
5124   +1  ^                                               [ab]   +0                                 ^                ([ab]{,4}c|xy)
5125  +11  ^                                               x   +1                                 ^                [ab]
5126   +0   ^                                              ([ab]{,4}c|xy)   +5                                 ^^               {
5127   +1   ^                                              [ab]  +11                                 ^                x
5128  +11   ^                                              x   +0                                     ^            ([ab]{,4}c|xy)
5129     +1                                     ^            [ab]
5130     +5                                     ^^           {
5131    +11                                     ^            x
5132    No match
5133    
5134    /([ab]{,4}c|xy)/ICDZSS
5135    ------------------------------------------------------------------
5136            Bra
5137            Callout 255 0 14
5138            CBra 1
5139            Callout 255 1 4
5140            [ab]
5141            Callout 255 5 1
5142            {
5143            Callout 255 6 1
5144            ,
5145            Callout 255 7 1
5146            4
5147            Callout 255 8 1
5148            }
5149            Callout 255 9 1
5150            c
5151            Callout 255 10 0
5152            Alt
5153            Callout 255 11 1
5154            x
5155            Callout 255 12 1
5156            y
5157            Callout 255 13 0
5158            Ket
5159            Callout 255 14 0
5160            Ket
5161            End
5162    ------------------------------------------------------------------
5163    Capturing subpattern count = 1
5164    Options:
5165    No first char
5166    No need char
5167        Note: that { does NOT introduce a quantifier
5168    --->Note: that { does NOT introduce a quantifier
5169     +0 ^                                                ([ab]{,4}c|xy)
5170     +1 ^                                                [ab]
5171    +11 ^                                                x
5172     +0  ^                                               ([ab]{,4}c|xy)
5173     +1  ^                                               [ab]
5174    +11  ^                                               x
5175     +0   ^                                              ([ab]{,4}c|xy)
5176     +1   ^                                              [ab]
5177    +11   ^                                              x
5178   +0    ^                                             ([ab]{,4}c|xy)   +0    ^                                             ([ab]{,4}c|xy)
5179   +1    ^                                             [ab]   +1    ^                                             [ab]
5180  +11    ^                                             x  +11    ^                                             x
# Line 5282  Need char = '3' Line 5418  Need char = '3'
5418    
5419  /\b.*/I  /\b.*/I
5420  Capturing subpattern count = 0  Capturing subpattern count = 0
5421    Max lookbehind = 1
5422    May match empty string
5423  No options  No options
5424  No first char  No first char
5425  No need char  No need char
# Line 5290  No need char Line 5428  No need char
5428    
5429  /\b.*/Is  /\b.*/Is
5430  Capturing subpattern count = 0  Capturing subpattern count = 0
5431    Max lookbehind = 1
5432    May match empty string
5433  Options: dotall  Options: dotall
5434  No first char  No first char
5435  No need char  No need char
# Line 5298  No need char Line 5438  No need char
5438    
5439  /(?!.bcd).*/I  /(?!.bcd).*/I
5440  Capturing subpattern count = 0  Capturing subpattern count = 0
5441    May match empty string
5442  No options  No options
5443  No first char  No first char
5444  No need char  No need char
# Line 5447  No match Line 5588  No match
5588      123456\P      123456\P
5589  No match  No match
5590    
5591  /abc/I>testsavedregex  /abc/IS>testsavedregex
5592    Capturing subpattern count = 0
5593    No options
5594    First char = 'a'
5595    Need char = 'c'
5596    Subject length lower bound = 3
5597    No set of starting bytes
5598    Compiled pattern written to testsavedregex
5599    Study data written to testsavedregex
5600    <testsavedregex
5601    Compiled pattern loaded from testsavedregex
5602    Study data loaded from testsavedregex
5603        abc
5604     0: abc
5605        ** Failers
5606    No match
5607        bca
5608    No match
5609    
5610    /abc/ISS>testsavedregex
5611  Capturing subpattern count = 0  Capturing subpattern count = 0
5612  No options  No options
5613  First char = 'a'  First char = 'a'
5614  Need char = 'c'  Need char = 'c'
5615  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5616  <testsavedregex  <testsavedregex
5617  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5618  No study data  No study data
5619      abc      abc
5620   0: abc   0: abc
# Line 5463  No match Line 5623  No match
5623      bca      bca
5624  No match  No match
5625    
5626  /abc/IF>testsavedregex  /abc/IFS>testsavedregex
5627    Capturing subpattern count = 0
5628    No options
5629    First char = 'a'
5630    Need char = 'c'
5631    Subject length lower bound = 3
5632    No set of starting bytes
5633    Compiled pattern written to testsavedregex
5634    Study data written to testsavedregex
5635    <testsavedregex
5636    Compiled pattern (byte-inverted) loaded from testsavedregex
5637    Study data loaded from testsavedregex
5638        abc
5639     0: abc
5640        ** Failers
5641    No match
5642        bca
5643    No match
5644    
5645    /abc/IFSS>testsavedregex
5646  Capturing subpattern count = 0  Capturing subpattern count = 0
5647  No options  No options
5648  First char = 'a'  First char = 'a'
5649  Need char = 'c'  Need char = 'c'
5650  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5651  <testsavedregex  <testsavedregex
5652  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5653  No study data  No study data
5654      abc      abc
5655   0: abc   0: abc
# Line 5486  No first char Line 5665  No first char
5665  No need char  No need char
5666  Subject length lower bound = 1  Subject length lower bound = 1
5667  Starting byte set: a b  Starting byte set: a b
5668  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5669  Study data written to testsavedregex  Study data written to testsavedregex
5670  <testsavedregex  <testsavedregex
5671  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5672  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5673      abc      abc
5674   0: a   0: a
# Line 5500  Study data loaded from testsavedregex Line 5679  Study data loaded from testsavedregex
5679      def      def
5680  No match  No match
5681    
5682    /(a|b)/ISS>testsavedregex
5683    Capturing subpattern count = 1
5684    No options
5685    No first char
5686    No need char
5687    Compiled pattern written to testsavedregex
5688    <testsavedregex
5689    Compiled pattern loaded from testsavedregex
5690    No study data
5691        abc
5692     0: a
5693     1: a
5694        ** Failers
5695     0: a
5696     1: a
5697        def
5698    No match
5699    
5700  /(a|b)/ISF>testsavedregex  /(a|b)/ISF>testsavedregex
5701  Capturing subpattern count = 1  Capturing subpattern count = 1
5702  No options  No options
# Line 5507  No first char Line 5704  No first char
5704  No need char  No need char
5705  Subject length lower bound = 1  Subject length lower bound = 1
5706  Starting byte set: a b  Starting byte set: a b
5707  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5708  Study data written to testsavedregex  Study data written to testsavedregex
5709  <testsavedregex  <testsavedregex
5710  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5711  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5712      abc      abc
5713   0: a   0: a
# Line 5521  Study data loaded from testsavedregex Line 5718  Study data loaded from testsavedregex
5718      def      def
5719  No match  No match
5720    
5721    /(a|b)/ISSF>testsavedregex
5722    Capturing subpattern count = 1
5723    No options
5724    No first char
5725    No need char
5726    Compiled pattern written to testsavedregex
5727    <testsavedregex
5728    Compiled pattern (byte-inverted) loaded from testsavedregex
5729    No study data
5730        abc
5731     0: a
5732     1: a
5733        ** Failers
5734     0: a
5735     1: a
5736        def
5737    No match
5738    
5739  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5740  Capturing subpattern count = 3  Capturing subpattern count = 3
5741  Max back reference = 1  Max back reference = 1
5742  Options: multiline dotall  Options: multiline dotall
5743  First char = '<'  First char = '<'
5744  Need char = '>'  Need char = '>'
5745      <!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>
5746   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>
5747   1: seite   1: seite
5748   2: \x0a   2: \x0a
# Line 5576  No match Line 5791  No match
5791      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5792  No match  No match
5793    
 /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  
   
5794  /(?i)(?-i)AbCd/I  /(?i)(?-i)AbCd/I
5795  Capturing subpattern count = 0  Capturing subpattern count = 0
5796  No options  No options
# Line 5830  Matched, but too many substrings Line 6027  Matched, but too many substrings
6027    
6028  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
6029  Capturing subpattern count = 0  Capturing subpattern count = 0
6030    May match empty string
6031  No options  No options
6032  No first char  No first char
6033  No need char  No need char
# Line 5842  No need char Line 6040  No need char
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 5852  No need char Line 6051  No need char
6051    
6052  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
6053  Capturing subpattern count = 0  Capturing subpattern count = 0
6054    May match empty string
6055  No options  No options
6056  No first char  No first char
6057  No need char  No need char
# Line 5862  No need char Line 6062  No need char
6062    
6063  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
6064  Capturing subpattern count = 0  Capturing subpattern count = 0
6065    May match empty string
6066  No options  No options
6067  No first char  No first char
6068  No need char  No need char
# Line 5874  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 5886  No need char Line 6088  No need char
6088      ((this))      ((this))
6089   0: ((this))   0: ((this))
6090    
 /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  
   
6091  /\x{0000ff}/I  /\x{0000ff}/I
6092  Capturing subpattern count = 0  Capturing subpattern count = 0
6093  No options  No options
6094  First char = 255  First char = \xff
6095  No need char  No need char
6096    
6097  /^((?P<A>a1)|(?P<A>a2)b)/I  /^((?P<A>a1)|(?P<A>a2)b)/I
# Line 5934  no parentheses with name "Z" Line 6125  no parentheses with name "Z"
6125   2: a1   2: a1
6126  copy substring Z failed -7  copy substring Z failed -7
6127    C a1 (2) A    C a1 (2) A
6128    
6129    /(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ
6130    Capturing subpattern count = 3
6131    Named capturing subpatterns:
6132      a   1
6133      a   3
6134      b   2
6135    May match empty string
6136    Options: dupnames
6137    No first char
6138    No need char
6139    
6140  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
6141  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 6010  no parentheses with name "Z" Line 6212  no parentheses with name "Z"
6212   0: a1   0: a1
6213   1: a1   1: a1
6214   2: a1   2: a1
6215  copy substring Z failed -7  get substring Z failed -7
6216    G a1 (2) A    G a1 (2) A
6217    
6218  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
# Line 6042  No need char Line 6244  No need char
6244    G a (1) A    G a (1) A
6245      cd\GA      cd\GA
6246   0: cd   0: cd
6247  copy substring A failed -7  get substring A failed -7
6248    
6249  /^(?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
6250  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 6210  No need char Line 6412  No need char
6412   9:   9:
6413  10: Y  10: Y
6414    
 /\777/I  
 Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3  
   
6415  /\s*,\s*/IS  /\s*,\s*/IS
6416  Capturing subpattern count = 0  Capturing subpattern count = 0
6417  No options  No options
# Line 6345  Unknown newline type at: <bad> Line 6544  Unknown newline type at: <bad>
6544    
6545  /.*/I<lf>  /.*/I<lf>
6546  Capturing subpattern count = 0  Capturing subpattern count = 0
6547    May match empty string
6548  Options:  Options:
6549  Forced newline sequence: LF  Forced newline sequence: LF
6550  First char at start or follows newline  First char at start or follows newline
# Line 6386  Need char = 'f' Line 6586  Need char = 'f'
6586    
6587  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6588  Capturing subpattern count = 1  Capturing subpattern count = 1
6589    May match empty string
6590  No options  No options
6591  No first char  No first char
6592  No need char  No need char
# Line 6644  No match Line 6845  No match
6845  ------------------------------------------------------------------  ------------------------------------------------------------------
6846          Bra          Bra
6847          ^          ^
6848          a*       /i a*
6849       NC A       /i A
6850          \d          \d
6851          Ket          Ket
6852          End          End
# Line 7273  Matched, but too many substrings Line 7474  Matched, but too many substrings
7474  /[^a]+a/BZi  /[^a]+a/BZi
7475  ------------------------------------------------------------------  ------------------------------------------------------------------
7476          Bra          Bra
7477          [^A]++       /i [^a]++
7478       NC a       /i a
7479          Ket          Ket
7480          End          End
7481  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7282  Matched, but too many substrings Line 7483  Matched, but too many substrings
7483  /[^a]+A/BZi  /[^a]+A/BZi
7484  ------------------------------------------------------------------  ------------------------------------------------------------------
7485          Bra          Bra
7486          [^A]++       /i [^a]++
7487       NC A       /i A
7488          Ket          Ket
7489          End          End
7490  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7309  Matched, but too many substrings Line 7510  Matched, but too many substrings
7510  /a*[^a]/BZ  /a*[^a]/BZ
7511  ------------------------------------------------------------------  ------------------------------------------------------------------
7512          Bra          Bra
7513          a*          a*+
7514          [^a]          [^a]
7515          Ket          Ket
7516          End          End
# Line 7478  No match Line 7679  No match
7679  ------------------------------------------------------------------  ------------------------------------------------------------------
7680          Bra          Bra
7681          ^          ^
         Once  
7682          Recurse          Recurse
         Ket  
7683          [()]          [()]
7684          CBra 1          CBra 1
7685          Ket          Ket
# Line 7514  No match Line 7713  No match
7713  ------------------------------------------------------------------  ------------------------------------------------------------------
7714          Bra          Bra
7715          ^          ^
         Once  
7716          Recurse          Recurse
         Ket  
7717          ()          ()
7718          CBra 1          CBra 1
7719          Ket          Ket
# Line 7528  No match Line 7725  No match
7725  ------------------------------------------------------------------  ------------------------------------------------------------------
7726          Bra          Bra
7727          ^          ^
         Once  
7728          Recurse          Recurse
         Ket  
7729          [(\]a]          [(\]a]
7730          CBra 1          CBra 1
7731          Ket          Ket
# Line 7543  No match Line 7738  No match
7738  ------------------------------------------------------------------  ------------------------------------------------------------------
7739          Bra          Bra
7740          ^          ^
         Once  
7741          Recurse          Recurse
         Ket  
7742          CBra 1          CBra 1
7743          Ket          Ket
7744          Ket          Ket
# Line 7560  Named capturing subpatterns: Line 7753  Named capturing subpatterns:
7753    one     1    one     1
7754    three   3    three   3
7755    two     2    two     2
7756    May match empty string
7757  Options: anchored caseless  Options: anchored caseless
7758  No first char  No first char
7759  No need char  No need char
# Line 7677  Options: extended Line 7871  Options: extended
7871  First char = 'x'  First char = 'x'
7872  Need char = 'z'  Need char = 'z'
7873    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7874  /(a|)*\d/  /(a|)*\d/
7875    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7876  No match  No match
# Line 7997  No match Line 8188  No match
8188          Alt          Alt
8189          c          c
8190          Ket          Ket
         Once  
8191          Recurse          Recurse
8192          Ket          Ket
         Ket  
8193          End          End
8194  ------------------------------------------------------------------  ------------------------------------------------------------------
8195      abc      abc
# Line 8011  No match Line 8200  No match
8200  ------------------------------------------------------------------  ------------------------------------------------------------------
8201          Bra          Bra
8202          xy          xy
         Once  
8203          Recurse          Recurse
         Ket  
8204          CBra 1          CBra 1
8205          abc          abc
8206          Ket          Ket
# Line 8243  Failed: syntax error in subpattern name Line 8430  Failed: syntax error in subpattern name
8430   3: <unset>   3: <unset>
8431   4: x   4: x
8432    
 /[\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  
 ------------------------------------------------------------------  
   
8433  /\H++X/BZ  /\H++X/BZ
8434  ------------------------------------------------------------------  ------------------------------------------------------------------
8435          Bra          Bra
# Line 8463  No match Line 8590  No match
8590          \d          \d
8591          \v++          \v++
8592          \w          \w
8593          \v+          \v++
8594          \S          \S
8595          \v++          \v++
8596          \V          \V
# Line 8494  No match Line 8621  No match
8621  ------------------------------------------------------------------  ------------------------------------------------------------------
8622    
8623  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8624  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8625   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8626    
8627  /[\E]AAA/  /[\E]AAA/
# Line 8561  No match Line 8688  No match
8688   +6 ^      ^    (*FAIL)   +6 ^      ^    (*FAIL)
8689   +6 ^     ^     (*FAIL)   +6 ^     ^     (*FAIL)
8690   +6 ^    ^      (*FAIL)   +6 ^    ^      (*FAIL)
  +4 ^  ^        c+  
  +2 ^ ^         b?  
  +4 ^ ^         c+  
  +2 ^^          b?  
  +4 ^^          c+  
8691   +0  ^          a+   +0  ^          a+
8692   +2  ^ ^        b?   +2  ^ ^        b?
8693   +4  ^  ^       c+   +4  ^  ^       c+
8694   +6  ^     ^    (*FAIL)   +6  ^     ^    (*FAIL)
8695   +6  ^    ^     (*FAIL)   +6  ^    ^     (*FAIL)
8696   +6  ^   ^      (*FAIL)   +6  ^   ^      (*FAIL)
  +4  ^ ^        c+  
  +2  ^^         b?  
  +4  ^^         c+  
8697   +0   ^         a+   +0   ^         a+
8698   +2   ^^        b?   +2   ^^        b?
8699   +4   ^ ^       c+   +4   ^ ^       c+
8700   +6   ^    ^    (*FAIL)   +6   ^    ^    (*FAIL)
8701   +6   ^   ^     (*FAIL)   +6   ^   ^     (*FAIL)
8702   +6   ^  ^      (*FAIL)   +6   ^  ^      (*FAIL)
  +4   ^^        c+  
8703  No match  No match
8704    
8705  /a+b?(*PRUNE)c+(*FAIL)/C  /a+b?(*PRUNE)c+(*FAIL)/C
# Line 8676  Failed: number is too big at offset 19 Line 8794  Failed: number is too big at offset 19
8794  /\g6666666666/  /\g6666666666/
8795  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8796    
8797  /[\g6666666666]/  /[\g6666666666]/BZ
8798  Failed: number is too big at offset 12  ------------------------------------------------------------------
8799            Bra
8800            [6g]
8801            Ket
8802            End
8803    ------------------------------------------------------------------
8804    
8805  /(?1)\c[/  /(?1)\c[/
8806  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 8700  No match Line 8823  No match
8823   1: \x0a   1: \x0a
8824    
8825  /a(*CR)b/  /a(*CR)b/
8826  Failed: (*VERB) not recognized at offset 5  Failed: (*VERB) not recognized or malformed at offset 5
8827    
8828  /(*CR)a.b/  /(*CR)a.b/
8829      a\nb      a\nb
# Line 8757  No match Line 8880  No match
8880  No match  No match
8881      a\x85b      a\x85b
8882  No match  No match
8883    
8884    /(*ANY).*/g
8885        abc\r\ndef
8886     0: abc
8887     0:
8888     0: def
8889     0:
8890    
8891    /(*ANYCRLF).*/g
8892        abc\r\ndef
8893     0: abc
8894     0:
8895     0: def
8896     0:
8897    
8898    /(*CRLF).*/g
8899        abc\r\ndef
8900     0: abc
8901     0:
8902     0: def
8903     0:
8904    
8905  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
8906  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 8962  Failed: subpattern name expected at offs Line 9106  Failed: subpattern name expected at offs
9106  /\k{}/  /\k{}/
9107  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9108    
9109    /\k/
9110    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9111    
9112    /\kabc/
9113    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9114    
9115  /(?P=)/  /(?P=)/
9116  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9117    
# Line 9134  Starting byte set: x y z Line 9284  Starting byte set: x y z
9284    
9285  /(?(?=.*b)b|^)/CI  /(?(?=.*b)b|^)/CI
9286  Capturing subpattern count = 0  Capturing subpattern count = 0
9287    May match empty string
9288  Options:  Options:
9289  No first char  No first char
9290  No need char  No need char
# Line 9146  No need char Line 9297  No need char
9297   +7 ^ ^     b   +7 ^ ^     b
9298   +7 ^^      b   +7 ^^      b
9299   +7 ^       b   +7 ^       b
9300    +11 ^       ^
9301  +12 ^       )  +12 ^       )
9302  +13 ^  +13 ^
9303   0:   0:
# Line 9183  No options Line 9335  No options
9335  First char at start or follows newline  First char at start or follows newline
9336  No need char  No need char
9337    
 /a?|b?/P  
     abc  
  0: a  
     ** Failers  
  0:  
     ddd\N  
 No match: POSIX code 17: match failed  
   
9338  /xyz/C  /xyz/C
9339    xyz    xyz
9340  --->xyz  --->xyz
# Line 9243  No match Line 9387  No match
9387   +0        ^     x   +0        ^     x
9388   +0         ^    x   +0         ^    x
9389  No match  No match
9390    
9391    /(*NO_START_OPT)xyz/C
9392      abcxyz
9393    --->abcxyz
9394    +15 ^          x
9395    +15  ^         x
9396    +15   ^        x
9397    +15    ^       x
9398    +16    ^^      y
9399    +17    ^ ^     z
9400    +18    ^  ^
9401     0: xyz
9402    
9403    /xyz/CY
9404      abcxyz
9405    --->abcxyz
9406     +0 ^          x
9407     +0  ^         x
9408     +0   ^        x
9409     +0    ^       x
9410     +1    ^^      y
9411     +2    ^ ^     z
9412     +3    ^  ^
9413     0: xyz
9414    
9415  /^"((?(?=[a])[^"])|b)*"$/C  /^"((?(?=[a])[^"])|b)*"$/C
9416      "ab"      "ab"
# Line 9260  No match Line 9428  No match
9428   +3 ^ ^      (?(?=[a])[^"])   +3 ^ ^      (?(?=[a])[^"])
9429   +5 ^ ^      (?=[a])   +5 ^ ^      (?=[a])
9430   +8 ^ ^      [a]   +8 ^ ^      [a]
9431    +17 ^ ^      |
9432  +21 ^ ^      "  +21 ^ ^      "
9433  +18 ^ ^      b  +18 ^ ^      b
9434  +19 ^  ^     )  +19 ^  ^     )
9435   +3 ^  ^     (?(?=[a])[^"])   +3 ^  ^     (?(?=[a])[^"])
9436   +5 ^  ^     (?=[a])   +5 ^  ^     (?=[a])
9437   +8 ^  ^     [a]   +8 ^  ^     [a]
9438    +17 ^  ^     |
9439  +21 ^  ^     "  +21 ^  ^     "
9440  +22 ^   ^    $  +22 ^   ^    $
9441  +23 ^   ^  +23 ^   ^
# Line 9561  Partial match: the cat Line 9731  Partial match: the cat
9731     abc\P\P     abc\P\P
9732   0: abc   0: abc
9733    
 /\w+A/P  
    CDAAAAB  
  0: CDAAAA  
   
 /\w+A/PU  
    CDAAAAB  
  0: CDA  
   
9734  /abc\K123/  /abc\K123/
9735      xyzabc123pqr      xyzabc123pqr
9736   0: 123   0: 123
# Line 9581  Partial match: abc12 Line 9743  Partial match: abc12
9743      xyzabc123pqr      xyzabc123pqr
9744   0: 123   0: 123
9745      xyzabc12\P      xyzabc12\P
9746  Partial match: abc12  Partial match at offset 6: abc12
9747      xyzabc12\P\P      xyzabc12\P\P
9748  Partial match: abc12  Partial match at offset 6: abc12
9749    
9750  /\babc\b/  /\babc\b/
9751      +++abc+++      +++abc+++
9752   0: abc   0: abc
9753      +++ab\P      +++ab\P
9754  Partial match: +ab  Partial match at offset 3: +ab
9755      +++ab\P\P      +++ab\P\P
9756  Partial match: +ab  Partial match at offset 3: +ab
9757    
9758  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9759  ------------------------------------------------------------------  ------------------------------------------------------------------
9760          Bra          Bra
         Once  
9761          Recurse          Recurse
         Ket  
         Once  
9762          Recurse          Recurse
         Ket  
9763          Cond          Cond
9764          Cond def          Cond def
9765          CBra 1          CBra 1
# Line 9622  Partial match: +ab Line 9780  Partial match: +ab
9780  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9781  ------------------------------------------------------------------  ------------------------------------------------------------------
9782          Bra          Bra
         Once  
9783          Recurse          Recurse
         Ket  
         Once  
9784          Recurse          Recurse
         Ket  
9785          Cond          Cond
9786          Cond def          Cond def
9787          CBra 1          CBra 1
# Line 9969  Need char = ':' Line 10123  Need char = ':'
10123  Subject length lower bound = 22  Subject length lower bound = 22
10124  No set of starting bytes  No set of starting bytes
10125    
 /  (?: [\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  
   
10126  /<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
10127  Capturing subpattern count = 11  Capturing subpattern count = 11
10128  Options: caseless dotall  Options: caseless dotall
# Line 10184  No set of starting bytes Line 10134  No set of starting bytes
10134  "(?>.*/)foo"SI  "(?>.*/)foo"SI
10135  Capturing subpattern count = 0  Capturing subpattern count = 0
10136  No options  No options
10137  First char at start or follows newline  No first char
10138  Need char = 'o'  Need char = 'o'
10139  Subject length lower bound = 4  Subject length lower bound = 4
10140  No set of starting bytes  No set of starting bytes
# Line 10246  No set of starting bytes Line 10196  No set of starting bytes
10196  Capturing subpattern count = 1  Capturing subpattern count = 1
10197  Named capturing subpatterns:  Named capturing subpatterns:
10198    a   1    a   1
   a   1  
10199  No options  No options
10200  No first char  No first char
10201  No need char  No need char
# Line 10368  No match Line 10317  No match
10317          Cond nrecurse 1          Cond nrecurse 1
10318          $          $
10319          Alt          Alt
         Once  
10320          Recurse          Recurse
10321          Ket          Ket
10322          Ket          Ket
10323          Ket          Ket
         Ket  
10324          End          End
10325  ------------------------------------------------------------------  ------------------------------------------------------------------
10326  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 10429  Partial match: abca Line 10376  Partial match: abca
10376      xxxxabcde\P\P      xxxxabcde\P\P
10377  Partial match: abcde  Partial match: abcde
10378    
10379  /-- This is not in the Perl 5.10 test because Perl seems currently to be broken  /-- This is not in the Perl-compatible test because Perl seems currently to be
10380      and not behaving as specified in that it *does* bumpalong after hitting      broken and not behaving as specified in that it *does* bumpalong after
10381      (*COMMIT). --/      hitting (*COMMIT). --/
10382    
10383  /(?1)(A(*COMMIT)|B)D/  /(?1)(A(*COMMIT)|B)D/
10384      ABD      ABD
# Line 10511  Starting byte set: i Line 10458  Starting byte set: i
10458  /(?i)a(?-i)b|c/BZ  /(?i)a(?-i)b|c/BZ
10459  ------------------------------------------------------------------  ------------------------------------------------------------------
10460          Bra          Bra
10461       NC a       /i a
      00 Opt  
10462          b          b
10463          Alt          Alt
      00 Opt  
10464          c          c
10465          Ket          Ket
10466          End          End
# Line 10534  No match Line 10479  No match
10479  /(?i)a(?s)b|c/BZ  /(?i)a(?s)b|c/BZ
10480  ------------------------------------------------------------------  ------------------------------------------------------------------
10481          Bra          Bra
10482       NC a       /i ab
      05 Opt  
      NC b  
10483          Alt          Alt
10484       05 Opt       /i c
      NC c  
10485          Ket          Ket
10486          End          End
10487  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10547  No match Line 10489  No match
10489  /(?i)a(?s-i)b|c/BZ  /(?i)a(?s-i)b|c/BZ
10490  ------------------------------------------------------------------  ------------------------------------------------------------------
10491          Bra          Bra
10492       NC a       /i a
      04 Opt  
10493          b          b
10494          Alt          Alt
      04 Opt  
10495          c          c
10496          Ket          Ket
10497          End          End
# Line 10598  No match Line 10538  No match
10538  ------------------------------------------------------------------  ------------------------------------------------------------------
10539          Bra          Bra
10540          ^          ^
10541          Once          Braposzero
10542          Brazero          SBraPos
         Once  
10543          Recurse          Recurse
10544          KetRmax          KetRpos
         Ket  
10545          Cond          Cond
10546          Cond def          Cond def
10547          CBra 1          CBra 1
# Line 10634  No match Line 10572  No match
10572          End          End
10573  ------------------------------------------------------------------  ------------------------------------------------------------------
10574    
10575  / -- 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  
10576       believe this to be a Perl bug. --/       believe this to be a Perl bug. --/
10577    
 /(?=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  
   
10578  /(?>a\Kb)z|(ab)/  /(?>a\Kb)z|(ab)/
10579      ab      ab
10580   0: ab   0: ab
10581   1: ab   1: ab
10582    
 /----------------------/  
   
10583  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10584  Failed: recursive call could loop indefinitely at offset 31  Failed: recursive call could loop indefinitely at offset 31
10585    
# Line 10681  Failed: an argument is not allowed for ( Line 10599  Failed: an argument is not allowed for (
10599      ACABX      ACABX
10600  No match  No match
10601    
10602  /--- 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
10603       is a bug in Perl. ---/       is a bug in Perl. ---/
10604    
10605  /A(*THEN)B|A(*THEN)C/K  /A(*THEN)B|A(*THEN)C/K
# Line 10692  No match Line 10610  No match
10610      AC      AC
10611  No match  No match
10612    
10613  /--- 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,
10614       11 because Perl doesn't seem to follow its specification entirely  though PCRE does. ---/
      correctly. ---/  
   
 /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is  
      not clear how Perl defines "involved in the failure of the match". ---/  
   
 /^(A(*THEN:A)B|C(*THEN:B)D)/K  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match  
     CB  
 No match, mark = B  
   
 /--- Check the use of names for success and failure. PCRE doesn't show these  
 names for success, though Perl does, contrary to its spec. ---/  
   
 /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match, mark = A  
     CB  
 No match, mark = B  
   
 /--- An empty name does not pass back an empty string. It is the same as if no  
 name were given. ---/  
   
 /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
   
 /--- PRUNE goes to next bumpalong; COMMIT does not. ---/  
   
 /A(*PRUNE:A)B/K  
     ACAB  
  0: AB  
   
 /(*MARK:A)(*PRUNE:B)(C|X)/K  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match, mark = B  
   
 /(*MARK:A)(*THEN:B)(C|X)/K  
     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  
10615    
 /--- Mark names can be duplicated ---/  
   
 /A(*:A)B|X(*:A)Y/K  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XY  
 MK: A  
   
10616  /^A(*:A)B|^X(*:A)Y/K  /^A(*:A)B|^X(*:A)Y/K
10617      ** Failers      ** Failers
10618  No match  No match
10619      XAQQ      XAQQ
10620  No match, mark = A  No match, mark = A
10621    
 /--- 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  
   
10622  /--- COMMIT at the start of a pattern should be the same as an anchor. Perl  /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10623  optimizations defeat this. So does the PCRE optimization unless we disable it  optimizations defeat this. So does the PCRE optimization unless we disable it
10624  with \Y. ---/  with \Y. ---/
# Line 10850  No match Line 10631  No match
10631      DEFGABC\Y      DEFGABC\Y
10632  No match  No match
10633    
 /--- 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  
   
10634  /^(ab (c+(*THEN)cd) | xyz)/x  /^(ab (c+(*THEN)cd) | xyz)/x
10635      abcccd      abcccd
10636  No match  No match
# Line 10982  No match Line 10643  No match
10643      abcccd      abcccd
10644  No match  No match
10645    
10646  /--- Perl 5.11 gets some of these wrong ---/  /--- Perl gets some of these wrong ---/
10647    
10648  /(?>.(*ACCEPT))*?5/  /(?>.(*ACCEPT))*?5/
10649      abcde      abcde
# Line 11003  No match Line 10664  No match
10664   0: a   0: a
10665   1: a   1: a
10666    
10667    /A\NB./BZ
10668    ------------------------------------------------------------------
10669            Bra
10670            A
10671            Any
10672            B
10673            Any
10674            Ket
10675            End
10676    ------------------------------------------------------------------
10677        ACBD
10678     0: ACBD
10679        *** Failers
10680    No match
10681        A\nB
10682    No match
10683        ACB\n
10684    No match
10685    
10686    /A\NB./sBZ
10687    ------------------------------------------------------------------
10688            Bra
10689            A
10690            Any
10691            B
10692            AllAny
10693            Ket
10694            End
10695    ------------------------------------------------------------------
10696        ACBD
10697     0: ACBD
10698        ACB\n
10699     0: ACB\x0a
10700        *** Failers
10701    No match
10702        A\nB
10703    No match
10704    
10705    /A\NB/<crlf>
10706        A\nB
10707     0: A\x0aB
10708        A\rB
10709     0: A\x0dB
10710        ** Failers
10711    No match
10712        A\r\nB
10713    No match
10714    
10715    /\R+b/BZ
10716    ------------------------------------------------------------------
10717            Bra
10718            \R++
10719            b
10720            Ket
10721            End
10722    ------------------------------------------------------------------
10723    
10724    /\R+\n/BZ
10725    ------------------------------------------------------------------
10726            Bra
10727            \R+
10728            \x0a
10729            Ket
10730            End
10731    ------------------------------------------------------------------
10732    
10733    /\R+\d/BZ
10734    ------------------------------------------------------------------
10735            Bra
10736            \R++
10737            \d
10738            Ket
10739            End
10740    ------------------------------------------------------------------
10741    
10742    /\d*\R/BZ
10743    ------------------------------------------------------------------
10744            Bra
10745            \d*+
10746            \R
10747            Ket
10748            End
10749    ------------------------------------------------------------------
10750    
10751    /\s*\R/BZ
10752    ------------------------------------------------------------------
10753            Bra
10754            \s*
10755            \R
10756            Ket
10757            End
10758    ------------------------------------------------------------------
10759        \x20\x0a
10760     0:  \x0a
10761        \x20\x0d
10762     0:  \x0d
10763        \x20\x0d\x0a
10764     0:  \x0d\x0a
10765    
10766    /\S*\R/BZ
10767    ------------------------------------------------------------------
10768            Bra
10769            \S*+
10770            \R
10771            Ket
10772            End
10773    ------------------------------------------------------------------
10774        a\x0a
10775     0: a\x0a
10776    
10777    /X\h*\R/BZ
10778    ------------------------------------------------------------------
10779            Bra
10780            X
10781            \h*+
10782            \R
10783            Ket
10784            End
10785    ------------------------------------------------------------------
10786        X\x20\x0a
10787     0: X \x0a
10788    
10789    /X\H*\R/BZ
10790    ------------------------------------------------------------------
10791            Bra
10792            X
10793            \H*
10794            \R
10795            Ket
10796            End
10797    ------------------------------------------------------------------
10798        X\x0d\x0a
10799     0: X\x0d\x0a
10800    
10801    /X\H+\R/BZ
10802    ------------------------------------------------------------------
10803            Bra
10804            X
10805            \H+
10806            \R
10807            Ket
10808            End
10809    ------------------------------------------------------------------
10810        X\x0d\x0a
10811     0: X\x0d\x0a
10812    
10813    /X\H++\R/BZ
10814    ------------------------------------------------------------------
10815            Bra
10816            X
10817            \H++
10818            \R
10819            Ket
10820            End
10821    ------------------------------------------------------------------
10822        X\x0d\x0a
10823    No match
10824    
10825    /(?<=abc)def/
10826        abc\P\P
10827    Partial match at offset 3: abc
10828    
10829    /abc$/
10830        abc
10831     0: abc
10832        abc\P
10833     0: abc
10834        abc\P\P
10835    Partial match: abc
10836    
10837    /abc$/m
10838        abc
10839     0: abc
10840        abc\n
10841     0: abc
10842        abc\P\P
10843    Partial match: abc
10844        abc\n\P\P
10845     0: abc
10846        abc\P
10847     0: abc
10848        abc\n\P
10849     0: abc
10850    
10851    /abc\z/
10852        abc
10853     0: abc
10854        abc\P
10855     0: abc
10856        abc\P\P
10857    Partial match: abc
10858    
10859    /abc\Z/
10860        abc
10861     0: abc
10862        abc\P
10863     0: abc
10864        abc\P\P
10865    Partial match: abc
10866    
10867    /abc\b/
10868        abc
10869     0: abc
10870        abc\P
10871     0: abc
10872        abc\P\P
10873    Partial match: abc
10874    
10875    /abc\B/
10876        abc
10877    No match
10878        abc\P
10879    Partial match: abc
10880        abc\P\P
10881    Partial match: abc
10882    
10883    /.+/
10884        abc\>0
10885     0: abc
10886        abc\>1
10887     0: bc
10888        abc\>2
10889     0: c
10890        abc\>3
10891    No match
10892        abc\>4
10893    Error -24 (bad offset value)
10894        abc\>-4
10895    Error -24 (bad offset value)
10896    
10897    /^\cģ/
10898    Failed: \c must be followed by an ASCII character at offset 3
10899    
10900    /(?P<abn>(?P=abn)xxx)/BZ
10901    ------------------------------------------------------------------
10902            Bra
10903            Once
10904            CBra 1
10905            \1
10906            xxx
10907            Ket
10908            Ket
10909            Ket
10910            End
10911    ------------------------------------------------------------------
10912    
10913    /(a\1z)/BZ
10914    ------------------------------------------------------------------
10915            Bra
10916            Once
10917            CBra 1
10918            a
10919            \1
10920            z
10921            Ket
10922            Ket
10923            Ket
10924            End
10925    ------------------------------------------------------------------
10926    
10927    /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
10928    Failed: syntax error in subpattern name (missing terminator) at offset 29
10929    
10930    /(?P<abn>(?P=axn)xxx)/BZ
10931    Failed: reference to non-existent subpattern at offset 15
10932    
10933    /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
10934    ------------------------------------------------------------------
10935            Bra
10936            CBra 1
10937            \2
10938            xxx
10939            Ket
10940            CBra 2
10941            yy
10942            Ket
10943            Ket
10944            End
10945    ------------------------------------------------------------------
10946    
10947    /-- These tests are here because Perl gets the first one wrong. --/
10948    
10949    /(\R*)(.)/s
10950        \r\n
10951     0: \x0d
10952     1:
10953     2: \x0d
10954        \r\r\n\n\r
10955     0: \x0d\x0d\x0a\x0a\x0d
10956     1: \x0d\x0d\x0a\x0a
10957     2: \x0d
10958        \r\r\n\n\r\n
10959     0: \x0d\x0d\x0a\x0a\x0d
10960     1: \x0d\x0d\x0a\x0a
10961     2: \x0d
10962    
10963    /(\R)*(.)/s
10964        \r\n
10965     0: \x0d
10966     1: <unset>
10967     2: \x0d
10968        \r\r\n\n\r
10969     0: \x0d\x0d\x0a\x0a\x0d
10970     1: \x0a
10971     2: \x0d
10972        \r\r\n\n\r\n
10973     0: \x0d\x0d\x0a\x0a\x0d
10974     1: \x0a
10975     2: \x0d
10976    
10977    /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
10978        \r\n
10979     0: \x0d
10980     1:
10981     2: \x0d
10982        \r\r\n\n\r
10983     0: \x0d\x0d\x0a\x0a\x0d
10984     1: \x0d\x0d\x0a\x0a
10985     2: \x0d
10986        \r\r\n\n\r\n
10987     0: \x0d\x0d\x0a\x0a\x0d
10988     1: \x0d\x0d\x0a\x0a
10989     2: \x0d
10990    
10991    /-- --/
10992    
10993    /^abc$/BZ
10994    ------------------------------------------------------------------
10995            Bra
10996            ^
10997            abc
10998            $
10999            Ket
11000            End
11001    ------------------------------------------------------------------
11002    
11003    /^abc$/BZm
11004    ------------------------------------------------------------------
11005            Bra
11006         /m ^
11007            abc
11008         /m $
11009            Ket
11010            End
11011    ------------------------------------------------------------------
11012    
11013    /^(a)*+(\w)/S
11014        aaaaX
11015     0: aaaaX
11016     1: a
11017     2: X
11018        ** Failers
11019    No match
11020        aaaa
11021    No match
11022    
11023    /^(?:a)*+(\w)/S
11024        aaaaX
11025     0: aaaaX
11026     1: X
11027        ** Failers
11028    No match
11029        aaaa
11030    No match
11031    
11032    /(a)++1234/SDZ
11033    ------------------------------------------------------------------
11034            Bra
11035            CBraPos 1
11036            a
11037            KetRpos
11038            1234
11039            Ket
11040            End
11041    ------------------------------------------------------------------
11042    Capturing subpattern count = 1
11043    No options
11044    First char = 'a'
11045    Need char = '4'
11046    Subject length lower bound = 5
11047    No set of starting bytes
11048    
11049    /([abc])++1234/SI
11050    Capturing subpattern count = 1
11051    No options
11052    No first char
11053    Need char = '4'
11054    Subject length lower bound = 5
11055    Starting byte set: a b c
11056    
11057    /(?<=(abc)+)X/
11058    Failed: lookbehind assertion is not fixed length at offset 10
11059    
11060    /(^ab)/I
11061    Capturing subpattern count = 1
11062    Options: anchored
11063    No first char
11064    No need char
11065    
11066    /(^ab)++/I
11067    Capturing subpattern count = 1
11068    Options: anchored
11069    No first char
11070    No need char
11071    
11072    /(^ab|^)+/I
11073    Capturing subpattern count = 1
11074    May match empty string
11075    Options: anchored
11076    No first char
11077    No need char
11078    
11079    /(^ab|^)++/I
11080    Capturing subpattern count = 1
11081    May match empty string
11082    Options: anchored
11083    No first char
11084    No need char
11085    
11086    /(?:^ab)/I
11087    Capturing subpattern count = 0
11088    Options: anchored
11089    No first char
11090    No need char
11091    
11092    /(?:^ab)++/I
11093    Capturing subpattern count = 0
11094    Options: anchored
11095    No first char
11096    No need char
11097    
11098    /(?:^ab|^)+/I
11099    Capturing subpattern count = 0
11100    May match empty string
11101    Options: anchored
11102    No first char
11103    No need char
11104    
11105    /(?:^ab|^)++/I
11106    Capturing subpattern count = 0
11107    May match empty string
11108    Options: anchored
11109    No first char
11110    No need char
11111    
11112    /(.*ab)/I
11113    Capturing subpattern count = 1
11114    No options
11115    First char at start or follows newline
11116    Need char = 'b'
11117    
11118    /(.*ab)++/I
11119    Capturing subpattern count = 1
11120    No options
11121    First char at start or follows newline
11122    Need char = 'b'
11123    
11124    /(.*ab|.*)+/I
11125    Capturing subpattern count = 1
11126    May match empty string
11127    No options
11128    First char at start or follows newline
11129    No need char
11130    
11131    /(.*ab|.*)++/I
11132    Capturing subpattern count = 1
11133    May match empty string
11134    No options
11135    First char at start or follows newline
11136    No need char
11137    
11138    /(?:.*ab)/I
11139    Capturing subpattern count = 0
11140    No options
11141    First char at start or follows newline
11142    Need char = 'b'
11143    
11144    /(?:.*ab)++/I
11145    Capturing subpattern count = 0
11146    No options
11147    First char at start or follows newline
11148    Need char = 'b'
11149    
11150    /(?:.*ab|.*)+/I
11151    Capturing subpattern count = 0
11152    May match empty string
11153    No options
11154    First char at start or follows newline
11155    No need char
11156    
11157    /(?:.*ab|.*)++/I
11158    Capturing subpattern count = 0
11159    May match empty string
11160    No options
11161    First char at start or follows newline
11162    No need char
11163    
11164    /(?=a)[bcd]/I
11165    Capturing subpattern count = 0
11166    No options
11167    First char = 'a'
11168    No need char
11169    
11170    /((?=a))[bcd]/I
11171    Capturing subpattern count = 1
11172    No options
11173    First char = 'a'
11174    No need char
11175    
11176    /((?=a))+[bcd]/I
11177    Capturing subpattern count = 1
11178    No options
11179    First char = 'a'
11180    No need char
11181    
11182    /((?=a))++[bcd]/I
11183    Capturing subpattern count = 1
11184    No options
11185    First char = 'a'
11186    No need char
11187    
11188    /(?=a+)[bcd]/iI
11189    Capturing subpattern count = 0
11190    Options: caseless
11191    First char = 'a' (caseless)
11192    No need char
11193    
11194    /(?=a+?)[bcd]/iI
11195    Capturing subpattern count = 0
11196    Options: caseless
11197    First char = 'a' (caseless)
11198    No need char
11199    
11200    /(?=a++)[bcd]/iI
11201    Capturing subpattern count = 0
11202    Options: caseless
11203    First char = 'a' (caseless)
11204    No need char
11205    
11206    /(?=a{3})[bcd]/iI
11207    Capturing subpattern count = 0
11208    Options: caseless
11209    First char = 'a' (caseless)
11210    Need char = 'a' (caseless)
11211    
11212    /(abc)\1+/S
11213    
11214    /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11215    
11216    /(?1)(?:(b(*ACCEPT))){0}/
11217        b
11218     0: b
11219    
11220    /(?1)(?:(b(*ACCEPT))){0}c/
11221        bc
11222     0: bc
11223        ** Failers
11224    No match
11225        b
11226    No match
11227    
11228    /(?1)(?:((*ACCEPT))){0}c/
11229        c
11230     0: c
11231        c\N
11232     0: c
11233    
11234    /^.*?(?(?=a)a|b(*THEN)c)/
11235        ba
11236    No match
11237    
11238    /^.*?(?(?=a)a|bc)/
11239        ba
11240     0: ba
11241    
11242    /^.*?(?(?=a)a(*THEN)b|c)/
11243        ac
11244    No match
11245    
11246    /^.*?(?(?=a)a(*THEN)b)c/
11247        ac
11248    No match
11249    
11250    /^.*?(a(*THEN)b)c/
11251        aabc
11252    No match
11253    
11254    /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11255        aabc
11256     0: aabc
11257    
11258    /^.*?(a(*THEN)b|z)c/
11259        aabc
11260     0: aabc
11261     1: ab
11262    
11263    /^.*?(z|a(*THEN)b)c/
11264        aabc
11265     0: aabc
11266     1: ab
11267    
11268    /-- --/
11269    
11270    /-- These studied versions are here because they are not Perl-compatible; the
11271        studying means the mark is not seen. --/
11272    
11273    /(*MARK:A)(*SKIP:B)(C|X)/KS
11274        C
11275     0: C
11276     1: C
11277    MK: A
11278        D
11279    No match, mark = A
11280    
11281    /(*:A)A+(*SKIP:A)(B|Z)/KS
11282        AAAC
11283    No match, mark = A
11284    
11285    /-- --/
11286    
11287    "(?=a*(*ACCEPT)b)c"
11288        c
11289     0: c
11290        c\N
11291     0: c
11292    
11293    /(?1)c(?(DEFINE)((*ACCEPT)b))/
11294        c
11295     0: c
11296        c\N
11297     0: c
11298    
11299    /(?>(*ACCEPT)b)c/
11300        c
11301     0:
11302        c\N
11303    No match
11304    
11305    /(?:(?>(a)))+a%/++
11306        %aa%
11307     0: aa%
11308     0+
11309     1: a
11310     1+ a%
11311    
11312    /(a)b|ac/++SS
11313        ac\O3
11314     0: ac
11315     0+
11316    
11317    /(a)(b)x|abc/++
11318         abc\O6
11319     0: abc
11320     0+
11321    
11322    /(a)bc|(a)(b)\2/
11323        \O3abc
11324    Matched, but too many substrings
11325     0: abc
11326        \O4abc
11327    Matched, but too many substrings
11328     0: abc
11329    
11330    /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11331    Capturing subpattern count = 2
11332    No options
11333    No first char
11334    No need char
11335    Subject length lower bound = 1
11336    No set of starting bytes
11337    
11338    /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11339    Capturing subpattern count = 2
11340    No options
11341    No first char
11342    No need char
11343    Subject length lower bound = 3
11344    Starting byte set: a b
11345    
11346    /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11347    Capturing subpattern count = 2
11348    No options
11349    No first char
11350    No need char
11351    Subject length lower bound = 4
11352    Starting byte set: a b
11353    
11354    /(abc)(?1)/SI
11355    Capturing subpattern count = 1
11356    No options
11357    First char = 'a'
11358    Need char = 'c'
11359    Subject length lower bound = 6
11360    No set of starting bytes
11361    
11362    /^(?>a)++/
11363        aa\M
11364    Minimum match() limit = 5
11365    Minimum match() recursion limit = 2
11366     0: aa
11367        aaaaaaaaa\M
11368    Minimum match() limit = 12
11369    Minimum match() recursion limit = 2
11370     0: aaaaaaaaa
11371    
11372    /(a)(?1)++/
11373        aa\M
11374    Minimum match() limit = 7
11375    Minimum match() recursion limit = 4
11376     0: aa
11377     1: a
11378        aaaaaaaaa\M
11379    Minimum match() limit = 21
11380    Minimum match() recursion limit = 4
11381     0: aaaaaaaaa
11382     1: a
11383    
11384    /(?:(foo)|(bar)|(baz))X/SS=
11385        bazfooX
11386     0: fooX
11387     1: foo
11388     2: <unset>
11389     3: <unset>
11390        foobazbarX
11391     0: barX
11392     1: <unset>
11393     2: bar
11394     3: <unset>
11395        barfooX
11396     0: fooX
11397     1: foo
11398     2: <unset>
11399     3: <unset>
11400        bazX
11401     0: bazX
11402     1: <unset>
11403     2: <unset>
11404     3: baz
11405        foobarbazX
11406     0: bazX
11407     1: <unset>
11408     2: <unset>
11409     3: baz
11410        bazfooX\O0
11411    Matched, but too many substrings
11412        bazfooX\O2
11413    Matched, but too many substrings
11414     0: fooX
11415        bazfooX\O4
11416    Matched, but too many substrings
11417     0: fooX
11418     1: <unset>
11419        bazfooX\O6
11420    Matched, but too many substrings
11421     0: fooX
11422     1: foo
11423     2: <unset>
11424        bazfooX\O8
11425    Matched, but too many substrings
11426     0: fooX
11427     1: foo
11428     2: <unset>
11429     3: <unset>
11430        bazfooX\O10
11431     0: fooX
11432     1: foo
11433     2: <unset>
11434     3: <unset>
11435    
11436    /(?=abc){3}abc/BZ
11437    ------------------------------------------------------------------
11438            Bra
11439            Assert
11440            abc
11441            Ket
11442            abc
11443            Ket
11444            End
11445    ------------------------------------------------------------------
11446    
11447    /(?=abc)+abc/BZ
11448    ------------------------------------------------------------------
11449            Bra
11450            Assert
11451            abc
11452            Ket
11453            abc
11454            Ket
11455            End
11456    ------------------------------------------------------------------
11457    
11458    /(?=abc)++abc/BZ
11459    ------------------------------------------------------------------
11460            Bra
11461            Assert
11462            abc
11463            Ket
11464            abc
11465            Ket
11466            End
11467    ------------------------------------------------------------------
11468    
11469    /(?=abc){0}xyz/BZ
11470    ------------------------------------------------------------------
11471            Bra
11472            Skip zero
11473            Assert
11474            abc
11475            Ket
11476            xyz
11477            Ket
11478            End
11479    ------------------------------------------------------------------
11480    
11481    /(?=(a))?./BZ
11482    ------------------------------------------------------------------
11483            Bra
11484            Brazero
11485            Assert
11486            CBra 1
11487            a
11488            Ket
11489            Ket
11490            Any
11491            Ket
11492            End
11493    ------------------------------------------------------------------
11494    
11495    /(?=(a))??./BZ
11496    ------------------------------------------------------------------
11497            Bra
11498            Braminzero
11499            Assert
11500            CBra 1
11501            a
11502            Ket
11503            Ket
11504            Any
11505            Ket
11506            End
11507    ------------------------------------------------------------------
11508    
11509    /^(?=(a)){0}b(?1)/BZ
11510    ------------------------------------------------------------------
11511            Bra
11512            ^
11513            Skip zero
11514            Assert
11515            CBra 1
11516            a
11517            Ket
11518            Ket
11519            b
11520            Recurse
11521            Ket
11522            End
11523    ------------------------------------------------------------------
11524    
11525    /(?(DEFINE)(a))?b(?1)/BZ
11526    ------------------------------------------------------------------
11527            Bra
11528            Cond
11529            Cond def
11530            CBra 1
11531            a
11532            Ket
11533            Ket
11534            b
11535            Recurse
11536            Ket
11537            End
11538    ------------------------------------------------------------------
11539    
11540    /^(?=(?1))?[az]([abc])d/BZ
11541    ------------------------------------------------------------------
11542            Bra
11543            ^
11544            Brazero
11545            Assert
11546            Recurse
11547            Ket
11548            [az]
11549            CBra 1
11550            [a-c]
11551            Ket
11552            d
11553            Ket
11554            End
11555    ------------------------------------------------------------------
11556    
11557    /^(?!a){0}\w+/BZ
11558    ------------------------------------------------------------------
11559            Bra
11560            ^
11561            Skip zero
11562            Assert not
11563            a
11564            Ket
11565            \w++
11566            Ket
11567            End
11568    ------------------------------------------------------------------
11569    
11570    /(?<=(abc))?xyz/BZ
11571    ------------------------------------------------------------------
11572            Bra
11573            Brazero
11574            AssertB
11575            Reverse
11576            CBra 1
11577            abc
11578            Ket
11579            Ket
11580            xyz
11581            Ket
11582            End
11583    ------------------------------------------------------------------
11584    
11585    /[:a[:abc]b:]/BZ
11586    ------------------------------------------------------------------
11587            Bra
11588            [:[a-c]
11589            b:]
11590            Ket
11591            End
11592    ------------------------------------------------------------------
11593    
11594    /((?2))((?1))/SS
11595        abc
11596    Error -26 (nested recursion at the same subject position)
11597    
11598    /((?(R2)a+|(?1)b))/SS
11599        aaaabcde
11600    Error -26 (nested recursion at the same subject position)
11601    
11602    /(?(R)a*(?1)|((?R))b)/SS
11603        aaaabcde
11604    Error -26 (nested recursion at the same subject position)
11605    
11606    /(a+|(?R)b)/
11607    Failed: recursive call could loop indefinitely at offset 7
11608    
11609    /^(a(*:A)(d|e(*:B))z|aeq)/C
11610        adz
11611    --->adz
11612     +0 ^       ^
11613     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11614     +2 ^       a
11615     +3 ^^      (*:A)
11616     +8 ^^      (d|e(*:B))
11617    Latest Mark: A
11618     +9 ^^      d
11619    +10 ^ ^     |
11620    +18 ^ ^     z
11621    +19 ^  ^    |
11622    +24 ^  ^
11623     0: adz
11624     1: adz
11625     2: d
11626        aez
11627    --->aez
11628     +0 ^       ^
11629     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11630     +2 ^       a
11631     +3 ^^      (*:A)
11632     +8 ^^      (d|e(*:B))
11633    Latest Mark: A
11634     +9 ^^      d
11635    +11 ^^      e
11636    +12 ^ ^     (*:B)
11637    +17 ^ ^     )
11638    Latest Mark: B
11639    +18 ^ ^     z
11640    +19 ^  ^    |
11641    +24 ^  ^
11642     0: aez
11643     1: aez
11644     2: e
11645        aeqwerty
11646    --->aeqwerty
11647     +0 ^            ^
11648     +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11649     +2 ^            a
11650     +3 ^^           (*:A)
11651     +8 ^^           (d|e(*:B))
11652    Latest Mark: A
11653     +9 ^^           d
11654    +11 ^^           e
11655    +12 ^ ^          (*:B)
11656    +17 ^ ^          )
11657    Latest Mark: B
11658    +18 ^ ^          z
11659    +20 ^            a
11660    +21 ^^           e
11661    +22 ^ ^          q
11662    +23 ^  ^         )
11663    +24 ^  ^
11664     0: aeq
11665     1: aeq
11666    
11667    /.(*F)/
11668        \P\Pabc
11669    No match
11670    
11671    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11672    Capturing subpattern count = 0
11673    Max lookbehind = 1
11674    No options
11675    First char = 't'
11676    Need char = 't'
11677    Subject length lower bound = 18
11678    No set of starting bytes
11679    
11680    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11681    Capturing subpattern count = 0
11682    Max lookbehind = 1
11683    No options
11684    No first char
11685    No need char
11686    Subject length lower bound = 8
11687    Starting byte set: < o t u
11688    
11689    /a(*SKIP)c|b(*ACCEPT)|/+S!I
11690    Capturing subpattern count = 0
11691    May match empty string
11692    No options
11693    No first char
11694    No need char
11695    Subject length lower bound = -1
11696    No set of starting bytes
11697        a
11698     0:
11699     0+
11700    
11701    /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11702    Capturing subpattern count = 0
11703    No options
11704    No first char
11705    No need char
11706    Subject length lower bound = -1
11707    Starting byte set: a b x
11708        ax
11709     0: x
11710    
11711    'a*(*ACCEPT)b'+
11712        \N\N
11713    No match
11714        abc\N\N
11715     0: a
11716     0+ bc
11717        bbb\N\N
11718     0:
11719     0+ bb
11720    
11721    /(*ACCEPT)a/+I
11722    Capturing subpattern count = 0
11723    No options
11724    No first char
11725    No need char
11726        bax
11727     0:
11728     0+ bax
11729    
11730    /z(*ACCEPT)a/+I
11731    Capturing subpattern count = 0
11732    No options
11733    First char = 'z'
11734    No need char
11735        baxzbx
11736     0: z
11737     0+ bx
11738    
11739    /a(?:.)*?a/ims
11740        \Mabbbbbbbbbbbbbbbbbbbbba
11741    Minimum match() limit = 65
11742    Minimum match() recursion limit = 2
11743     0: abbbbbbbbbbbbbbbbbbbbba
11744    
11745    /a(?:.(*THEN))*?a/ims
11746        \Mabbbbbbbbbbbbbbbbbbbbba
11747    Minimum match() limit = 86
11748    Minimum match() recursion limit = 45
11749     0: abbbbbbbbbbbbbbbbbbbbba
11750    
11751    /a(?:.(*THEN:ABC))*?a/ims
11752        \Mabbbbbbbbbbbbbbbbbbbbba
11753    Minimum match() limit = 86
11754    Minimum match() recursion limit = 45
11755     0: abbbbbbbbbbbbbbbbbbbbba
11756    
11757    /^(?>a+)(?>(z+))\w/BZ
11758    ------------------------------------------------------------------
11759            Bra
11760            ^
11761            Once_NC
11762            a+
11763            Ket
11764            Once
11765            CBra 1
11766            z+
11767            Ket
11768            Ket
11769            \w
11770            Ket
11771            End
11772    ------------------------------------------------------------------
11773        aaaazzzzb
11774     0: aaaazzzzb
11775     1: zzzz
11776        ** Failers
11777    No match
11778        aazz
11779    No match
11780    
11781    /(.)(\1|a(?2))/
11782        bab
11783     0: bab
11784     1: b
11785     2: ab
11786    
11787    /\1|(.)(?R)\1/
11788        cbbbc
11789     0: cbbbc
11790     1: c
11791    
11792    /(.)((?(1)c|a)|a(?2))/
11793        baa
11794    No match
11795    
11796    /(?P<abn>(?P=abn)xxx)/BZ
11797    ------------------------------------------------------------------
11798            Bra
11799            Once
11800            CBra 1
11801            \1
11802            xxx
11803            Ket
11804            Ket
11805            Ket
11806            End
11807    ------------------------------------------------------------------
11808    
11809    /(a\1z)/BZ
11810    ------------------------------------------------------------------
11811            Bra
11812            Once
11813            CBra 1
11814            a
11815            \1
11816            z
11817            Ket
11818            Ket
11819            Ket
11820            End
11821    ------------------------------------------------------------------
11822    
11823    /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11824         \Maabbccddee
11825    Minimum match() limit = 11
11826    Minimum match() recursion limit = 3
11827     0: aabbccddee
11828    
11829    /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11830         \Maabbccddee
11831    Minimum match() limit = 21
11832    Minimum match() recursion limit = 20
11833     0: aabbccddee
11834     1: aa
11835     2: bb
11836     3: cc
11837     4: dd
11838     5: ee
11839    
11840    /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11841         \Maabbccddee
11842    Minimum match() limit = 17
11843    Minimum match() recursion limit = 12
11844     0: aabbccddee
11845     1: aa
11846     2: cc
11847     3: ee
11848    
11849    /^a\x41z/<JS>
11850        aAz
11851     0: aAz
11852        *** Failers
11853    No match
11854        ax41z
11855    No match
11856    
11857    /^a[m\x41]z/<JS>
11858        aAz
11859     0: aAz
11860    
11861    /^a\x1z/<JS>
11862        ax1z
11863     0: ax1z
11864    
11865    /^a\u0041z/<JS>
11866        aAz
11867     0: aAz
11868        *** Failers
11869    No match
11870        au0041z
11871    No match
11872    
11873    /^a[m\u0041]z/<JS>
11874        aAz
11875     0: aAz
11876    
11877    /^a\u041z/<JS>
11878        au041z
11879     0: au041z
11880        *** Failers
11881    No match
11882        aAz
11883    No match
11884    
11885    /^a\U0041z/<JS>
11886        aU0041z
11887     0: aU0041z
11888        *** Failers
11889    No match
11890        aAz
11891    No match
11892    
11893    /(?(?=c)c|d)++Y/BZ
11894    ------------------------------------------------------------------
11895            Bra
11896            BraPos
11897            Cond
11898            Assert
11899            c
11900            Ket
11901            c
11902            Alt
11903            d
11904            Ket
11905            KetRpos
11906            Y
11907            Ket
11908            End
11909    ------------------------------------------------------------------
11910    
11911    /(?(?=c)c|d)*+Y/BZ
11912    ------------------------------------------------------------------
11913            Bra
11914            Braposzero
11915            BraPos
11916            Cond
11917            Assert
11918            c
11919            Ket
11920            c
11921            Alt
11922            d
11923            Ket
11924            KetRpos
11925            Y
11926            Ket
11927            End
11928    ------------------------------------------------------------------
11929    
11930    /a[\NB]c/
11931    Failed: \N is not supported in a class at offset 3
11932    
11933    /a[B-\Nc]/
11934    Failed: \N is not supported in a class at offset 5
11935    
11936    /(a)(?2){0,1999}?(b)/
11937    
11938    /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
11939    
11940    /--- This test, with something more complicated than individual letters, causes
11941    different behaviour in Perl. Perhaps it disables some optimization; no tag is
11942    passed back for the failures, whereas in PCRE there is a tag. ---/
11943    
11944    /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
11945        AABC
11946     0: AB
11947     1: A
11948     2: B
11949    MK: A
11950        XXYZ
11951     0: XXY
11952     1: <unset>
11953     2: <unset>
11954     3: X
11955     4: X
11956     5: Y
11957    MK: B
11958        ** Failers
11959    No match
11960        XAQQ
11961    No match, mark = A
11962        XAQQXZZ
11963    No match, mark = A
11964        AXQQQ
11965    No match, mark = A
11966        AXXQQQ
11967    No match, mark = B
11968    
11969    /-- Perl doesn't give marks for these, though it does if the alternatives are
11970    replaced by single letters. --/
11971    
11972    /(b|q)(*:m)f|a(*:n)w/K
11973        aw
11974     0: aw
11975    MK: n
11976        ** Failers
11977    No match, mark = n
11978        abc
11979    No match, mark = m
11980    
11981    /(q|b)(*:m)f|a(*:n)w/K
11982        aw
11983     0: aw
11984    MK: n
11985        ** Failers
11986    No match, mark = n
11987        abc
11988    No match, mark = m
11989    
11990    /-- After a partial match, the behaviour is as for a failure. --/
11991    
11992    /^a(*:X)bcde/K
11993       abc\P
11994    Partial match, mark=X: abc
11995    
11996    /-- These are here because Perl doesn't return a mark, except for the first --/
11997    
11998    /(?=(*:x))(q|)/K+
11999        abc
12000     0:
12001     0+ abc
12002     1:
12003    MK: x
12004    
12005    /(?=(*:x))((*:y)q|)/K+
12006        abc
12007     0:
12008     0+ abc
12009     1:
12010    MK: x
12011    
12012    /(?=(*:x))(?:(*:y)q|)/K+
12013        abc
12014     0:
12015     0+ abc
12016    MK: x
12017    
12018    /(?=(*:x))(?>(*:y)q|)/K+
12019        abc
12020     0:
12021     0+ abc
12022    MK: x
12023    
12024    /(?=a(*:x))(?!a(*:y)c)/K+
12025        ab
12026     0:
12027     0+ ab
12028    MK: x
12029    
12030    /(?=a(*:x))(?=a(*:y)c|)/K+
12031        ab
12032     0:
12033     0+ ab
12034    MK: x
12035    
12036    /(..)\1/
12037        ab\P
12038    Partial match: ab
12039        aba\P
12040    Partial match: aba
12041        abab\P
12042     0: abab
12043     1: ab
12044    
12045    /(..)\1/i
12046        ab\P
12047    Partial match: ab
12048        abA\P
12049    Partial match: abA
12050        aBAb\P
12051     0: aBAb
12052     1: aB
12053    
12054    /(..)\1{2,}/
12055        ab\P
12056    Partial match: ab
12057        aba\P
12058    Partial match: aba
12059        abab\P
12060    Partial match: abab
12061        ababa\P
12062    Partial match: ababa
12063        ababab\P
12064     0: ababab
12065     1: ab
12066        ababab\P\P
12067    Partial match: ababab
12068        abababa\P
12069     0: ababab
12070     1: ab
12071        abababa\P\P
12072    Partial match: abababa
12073    
12074    /(..)\1{2,}/i
12075        ab\P
12076    Partial match: ab
12077        aBa\P
12078    Partial match: aBa
12079        aBAb\P
12080    Partial match: aBAb
12081        AbaBA\P
12082    Partial match: AbaBA
12083        abABAb\P
12084     0: abABAb
12085     1: ab
12086        aBAbaB\P\P
12087    Partial match: aBAbaB
12088        abABabA\P
12089     0: abABab
12090     1: ab
12091        abaBABa\P\P
12092    Partial match: abaBABa
12093    
12094    /(..)\1{2,}?x/i
12095        ab\P
12096    Partial match: ab
12097        abA\P
12098    Partial match: abA
12099        aBAb\P
12100    Partial match: aBAb
12101        abaBA\P
12102    Partial match: abaBA
12103        abAbaB\P
12104    Partial match: abAbaB
12105        abaBabA\P
12106    Partial match: abaBabA
12107        abAbABaBx\P
12108     0: abAbABaBx
12109     1: ab
12110    
12111    /^(..)\1/
12112        aba\P
12113    Partial match: aba
12114    
12115    /^(..)\1{2,3}x/
12116        aba\P
12117    Partial match: aba
12118        ababa\P
12119   &n