/[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 247 by ph10, Mon Sep 17 09:38:32 2007 UTC revision 771 by ph10, Tue Nov 29 15:34:12 2011 UTC
# Line 1  Line 1 
1    /-- This set of tests is not Perl-compatible. It checks on special features
2        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,
4        Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5        either because PCRE can't be compatible, or there is a possible Perl
6        bug.
7    
8        NOTE: This is a non-UTF-8 set of tests. When UTF-8 is needed, use test
9        5, and if Unicode Property Support is needed, use test 13. --/
10    
11    /-- Originally, the Perl >= 5.10 things were in here too, but now I have
12        separated many (most?) of them out into test 11. However, there may still
13        be some that were overlooked. --/
14    
15  /(a)b|/I  /(a)b|/I
16  Capturing subpattern count = 1  Capturing subpattern count = 1
17  No options  No options
# Line 40  No match Line 54  No match
54    
55  /a+bc/I  /a+bc/I
56  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
57  No options  No options
58  First char = 'a'  First char = 'a'
59  Need char = 'c'  Need char = 'c'
60    
61  /a*bc/I  /a*bc/I
62  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
63  No options  No options
64  No first char  No first char
65  Need char = 'c'  Need char = 'c'
66    
67  /a{3}bc/I  /a{3}bc/I
68  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
69  No options  No options
70  First char = 'a'  First char = 'a'
71  Need char = 'c'  Need char = 'c'
72    
73  /(abc|a+z)/I  /(abc|a+z)/I
74  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
75  No options  No options
76  First char = 'a'  First char = 'a'
77  No need char  No need char
# Line 96  Failed: missing terminating ] for charac Line 106  Failed: missing terminating ] for charac
106  /(?X)[\B]/  /(?X)[\B]/
107  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
108    
109    /(?X)[\R]/
110    Failed: invalid escape sequence in character class at offset 6
111    
112    /(?X)[\X]/
113    Failed: invalid escape sequence in character class at offset 6
114    
115    /[\B]/BZ
116    ------------------------------------------------------------------
117            Bra
118            B
119            Ket
120            End
121    ------------------------------------------------------------------
122    
123    /[\R]/BZ
124    ------------------------------------------------------------------
125            Bra
126            R
127            Ket
128            End
129    ------------------------------------------------------------------
130    
131    /[\X]/BZ
132    ------------------------------------------------------------------
133            Bra
134            X
135            Ket
136            End
137    ------------------------------------------------------------------
138    
139  /[z-a]/  /[z-a]/
140  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
141    
# Line 109  Failed: missing ) at offset 4 Line 149  Failed: missing ) at offset 4
149  Failed: missing ) after comment at offset 7  Failed: missing ) after comment at offset 7
150    
151  /(?z)abc/  /(?z)abc/
152  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? or (?- at offset 2
153    
154  /.*b/I  /.*b/I
155  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
156  No options  No options
157  First char at start or follows newline  First char at start or follows newline
158  Need char = 'b'  Need char = 'b'
159    
160  /.*?b/I  /.*?b/I
161  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
162  No options  No options
163  First char at start or follows newline  First char at start or follows newline
164  Need char = 'b'  Need char = 'b'
# Line 140  Capturing subpattern count = 0 Line 178  Capturing subpattern count = 0
178  No options  No options
179  No first char  No first char
180  No need char  No need char
181    Subject length lower bound = 3
182  Starting byte set: c d e  Starting byte set: c d e
183      this sentence eventually mentions a cat      this sentence eventually mentions a cat
184   0: cat   0: cat
# Line 151  Capturing subpattern count = 0 Line 190  Capturing subpattern count = 0
190  Options: caseless  Options: caseless
191  No first char  No first char
192  No need char  No need char
193    Subject length lower bound = 3
194  Starting byte set: C D E c d e  Starting byte set: C D E c d e
195      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
196   0: CAT   0: CAT
# Line 162  Capturing subpattern count = 0 Line 202  Capturing subpattern count = 0
202  No options  No options
203  No first char  No first char
204  No need char  No need char
205    Subject length lower bound = 1
206  Starting byte set: a b c d  Starting byte set: a b c d
207    
208  /(a|[^\dZ])/IS  /(a|[^\dZ])/IS
# Line 169  Capturing subpattern count = 1 Line 210  Capturing subpattern count = 1
210  No options  No options
211  No first char  No first char
212  No need char  No need char
213    Subject length lower bound = 1
214  Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a  Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
215    \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19    \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19
216    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
# Line 189  Capturing subpattern count = 1 Line 231  Capturing subpattern count = 1
231  No options  No options
232  No first char  No first char
233  No need char  No need char
234    Subject length lower bound = 1
235  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
236    
237  /(ab\2)/  /(ab\2)/
# Line 310  No match Line 353  No match
353  No match  No match
354    
355  /ab(?z)cd/  /ab(?z)cd/
356  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? or (?- at offset 4
357    
358  /^abc|def/I  /^abc|def/I
359  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 324  No need char Line 367  No need char
367    
368  /.*((abc)$|(def))/I  /.*((abc)$|(def))/I
369  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
370  No options  No options
371  First char at start or follows newline  First char at start or follows newline
372  No need char  No need char
# Line 338  No need char Line 380  No need char
380   2: <unset>   2: <unset>
381   3: def   3: def
382    
383  /abc/IP  /abc/P
384      abc      abc
385   0: abc   0: abc
386      *** Failers      *** Failers
387  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
388    
389  /^abc|def/IP  /^abc|def/P
390      abcdef      abcdef
391   0: abc   0: abc
392      abcdef\B      abcdef\B
393   0: def   0: def
394    
395  /.*((abc)$|(def))/IP  /.*((abc)$|(def))/P
396      defabc      defabc
397   0: defabc   0: defabc
398   1: abc   1: abc
# Line 360  No match: POSIX code 17: match failed Line 402  No match: POSIX code 17: match failed
402   1: def   1: def
403   3: def   3: def
404    
405  /the quick brown fox/IP  /the quick brown fox/P
406      the quick brown fox      the quick brown fox
407   0: the quick brown fox   0: the quick brown fox
408      *** Failers      *** Failers
# Line 368  No match: POSIX code 17: match failed Line 410  No match: POSIX code 17: match failed
410      The Quick Brown Fox      The Quick Brown Fox
411  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
412    
413  /the quick brown fox/IPi  /the quick brown fox/Pi
414      the quick brown fox      the quick brown fox
415   0: the quick brown fox   0: the quick brown fox
416      The Quick Brown Fox      The Quick Brown Fox
417   0: The Quick Brown Fox   0: The Quick Brown Fox
418    
419  /abc.def/IP  /abc.def/P
420      *** Failers      *** Failers
421  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
422      abc\ndef      abc\ndef
423  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
424    
425  /abc$/IP  /abc$/P
426      abc      abc
427   0: abc   0: abc
428      abc\n      abc\n
429   0: abc   0: abc
430    
431  /(abc)\2/IP  /(abc)\2/P
432  Failed: POSIX code 15: bad back reference at offset 7  Failed: POSIX code 15: bad back reference at offset 7
433    
434  /(abc\1)/IP  /(abc\1)/P
435      abc      abc
436  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
437    
# Line 401  Failed: missing terminating ] for charac Line 443  Failed: missing terminating ] for charac
443    
444  /[^aeiou ]{3,}/I  /[^aeiou ]{3,}/I
445  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
446  No options  No options
447  No first char  No first char
448  No need char  No need char
# Line 410  No need char Line 451  No need char
451    
452  /<.*>/I  /<.*>/I
453  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
454  No options  No options
455  First char = '<'  First char = '<'
456  Need char = '>'  Need char = '>'
# Line 419  Need char = '>' Line 459  Need char = '>'
459    
460  /<.*?>/I  /<.*?>/I
461  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
462  No options  No options
463  First char = '<'  First char = '<'
464  Need char = '>'  Need char = '>'
# Line 428  Need char = '>' Line 467  Need char = '>'
467    
468  /<.*>/IU  /<.*>/IU
469  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
470  Options: ungreedy  Options: ungreedy
471  First char = '<'  First char = '<'
472  Need char = '>'  Need char = '>'
# Line 437  Need char = '>' Line 475  Need char = '>'
475    
476  /(?U)<.*>/I  /(?U)<.*>/I
477  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
478  Options: ungreedy  Options: ungreedy
479  First char = '<'  First char = '<'
480  Need char = '>'  Need char = '>'
# Line 446  Need char = '>' Line 483  Need char = '>'
483    
484  /<.*?>/IU  /<.*?>/IU
485  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
486  Options: ungreedy  Options: ungreedy
487  First char = '<'  First char = '<'
488  Need char = '>'  Need char = '>'
# Line 455  Need char = '>' Line 491  Need char = '>'
491    
492  /={3,}/IU  /={3,}/IU
493  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
494  Options: ungreedy  Options: ungreedy
495  First char = '='  First char = '='
496  Need char = '='  Need char = '='
# Line 464  Need char = '=' Line 499  Need char = '='
499    
500  /(?U)={3,}?/I  /(?U)={3,}?/I
501  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
502  Options: ungreedy  Options: ungreedy
503  First char = '='  First char = '='
504  Need char = '='  Need char = '='
# Line 522  No need char Line 556  No need char
556    
557  /(?s).*/I  /(?s).*/I
558  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
559  Options: anchored dotall  Options: anchored dotall
560  No first char  No first char
561  No need char  No need char
# Line 532  Capturing subpattern count = 0 Line 565  Capturing subpattern count = 0
565  No options  No options
566  No first char  No first char
567  No need char  No need char
568    Subject length lower bound = 1
569  Starting byte set: a b c d  Starting byte set: a b c d
570    
571  /(?i)[abcd]/IS  /(?i)[abcd]/IS
# Line 539  Capturing subpattern count = 0 Line 573  Capturing subpattern count = 0
573  Options: caseless  Options: caseless
574  No first char  No first char
575  No need char  No need char
576    Subject length lower bound = 1
577  Starting byte set: A B C D a b c d  Starting byte set: A B C D a b c d
578    
579  /(?m)[xy]|(b|c)/IS  /(?m)[xy]|(b|c)/IS
# Line 546  Capturing subpattern count = 1 Line 581  Capturing subpattern count = 1
581  Options: multiline  Options: multiline
582  No first char  No first char
583  No need char  No need char
584    Subject length lower bound = 1
585  Starting byte set: b c x y  Starting byte set: b c x y
586    
587  /(^a|^b)/Im  /(^a|^b)/Im
# Line 584  Failed: syntax error in subpattern name Line 620  Failed: syntax error in subpattern name
620  /((?s)blah)\s+\1/I  /((?s)blah)\s+\1/I
621  Capturing subpattern count = 1  Capturing subpattern count = 1
622  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
623  No options  No options
624  First char = 'b'  First char = 'b'
625  Need char = 'h'  Need char = 'h'
# Line 592  Need char = 'h' Line 627  Need char = 'h'
627  /((?i)blah)\s+\1/I  /((?i)blah)\s+\1/I
628  Capturing subpattern count = 1  Capturing subpattern count = 1
629  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
630  No options  No options
631  First char = 'b' (caseless)  First char = 'b' (caseless)
632  Need char = 'h' (caseless)  Need char = 'h' (caseless)
# Line 601  Need char = 'h' (caseless) Line 635  Need char = 'h' (caseless)
635  ------------------------------------------------------------------  ------------------------------------------------------------------
636          Bra          Bra
637          CBra 1          CBra 1
638       01 Opt       /i b
      NC b  
639          Ket          Ket
      00 Opt  
640          Ket          Ket
641          End          End
642  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 612  Capturing subpattern count = 1 Line 644  Capturing subpattern count = 1
644  No options  No options
645  First char = 'b' (caseless)  First char = 'b' (caseless)
646  No need char  No need char
647  Study returned NULL  Subject length lower bound = 1
648    No set of starting bytes
649    
650  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
651  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
652  No options  No options
653  No first char  No first char
654  No need char  No need char
655    Subject length lower bound = 1
656  Starting byte set: C a b c d  Starting byte set: C a b c d
657    
658  /a$/I  /a$/I
# Line 668  Need char = 'c' Line 701  Need char = 'c'
701    
702  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
703  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
704  Options: anchored  Options: anchored
705  No first char  No first char
706  No need char  No need char
# Line 685  Capturing subpattern count = 0 Line 717  Capturing subpattern count = 0
717  No options  No options
718  No first char  No first char
719  No need char  No need char
720    Subject length lower bound = 1
721  Starting byte set: a b  Starting byte set: a b
722    
723  /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
# Line 692  Capturing subpattern count = 1 Line 725  Capturing subpattern count = 1
725  No options  No options
726  No first char  No first char
727  Need char = 'a'  Need char = 'a'
728    Subject length lower bound = 5
729  Starting byte set: a o  Starting byte set: a o
730    
731  /(?!alphabet)[ab]/IS  /(?!alphabet)[ab]/IS
# Line 699  Capturing subpattern count = 0 Line 733  Capturing subpattern count = 0
733  No options  No options
734  No first char  No first char
735  No need char  No need char
736    Subject length lower bound = 1
737  Starting byte set: a b  Starting byte set: a b
738    
739  /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
# Line 784  No need char Line 819  No need char
819    
820  /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
821  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
822  No options  No options
823  First char at start or follows newline  First char at start or follows newline
824  No need char  No need char
# Line 854  No match Line 888  No match
888      a      a
889  No match  No match
890    
891  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/I  /This one is here because Perl behaves differently; see also the following/I
892  Capturing subpattern count = 0  Capturing subpattern count = 0
893  No options  No options
894  First char = 'T'  First char = 'T'
# Line 866  Max back reference = 1 Line 900  Max back reference = 1
900  Options: anchored  Options: anchored
901  No first char  No first char
902  No need char  No need char
903        aaaa
904    No match
905      aaaaaa      aaaaaa
906   0: aaaaaa  No match
907   1: aa  
908    /Perl does not fail these two for the final subjects. Neither did PCRE until/
909    /release 8.01. The problem is in backtracking into a subpattern that contains/
910    No match
911    /a recursive reference to itself. PCRE has now made these into atomic patterns./
912    No match
913    
914    /^(xa|=?\1a){2}$/
915        xa=xaa
916     0: xa=xaa
917     1: =xaa
918        ** Failers
919    No match
920        xa=xaaa
921    No match
922    
923    /^(xa|=?\1a)+$/
924        xa=xaa
925     0: xa=xaa
926     1: =xaa
927        ** Failers
928    No match
929        xa=xaaa
930    No match
931    
932  /These are syntax tests from Perl 5.005/I  /These are syntax tests from Perl 5.005/I
933  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 946  Failed: missing ) at offset 4 Line 1005  Failed: missing ) at offset 4
1005  Failed: unrecognized character after (?< at offset 3  Failed: unrecognized character after (?< at offset 3
1006    
1007  /a(?{)b/  /a(?{)b/
1008  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1009    
1010  /a(?{{})b/  /a(?{{})b/
1011  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1012    
1013  /a(?{}})b/  /a(?{}})b/
1014  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1015    
1016  /a(?{"{"})b/  /a(?{"{"})b/
1017  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1018    
1019  /a(?{"{"}})b/  /a(?{"{"}})b/
1020  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1021    
1022  /(?(1?)a|b)/  /(?(1?)a|b)/
1023  Failed: malformed number or name after (?( at offset 4  Failed: malformed number or name after (?( at offset 4
1024    
 /(?(1)a|b|c)/  
 Failed: conditional group contains more than two branches at offset 10  
   
1025  /[a[:xyz:/  /[a[:xyz:/
1026  Failed: missing terminating ] for character class at offset 8  Failed: missing terminating ] for character class at offset 8
1027    
# Line 1006  copy substring 5 failed -7 Line 1062  copy substring 5 failed -7
1062    
1063  /(.{20})/I  /(.{20})/I
1064  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1065  No options  No options
1066  No first char  No first char
1067  No need char  No need char
# Line 1024  No need char Line 1079  No need char
1079    
1080  /(.{15})/I  /(.{15})/I
1081  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1082  No options  No options
1083  No first char  No first char
1084  No need char  No need char
# Line 1039  No need char Line 1093  No need char
1093    
1094  /(.{16})/I  /(.{16})/I
1095  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1096  No options  No options
1097  No first char  No first char
1098  No need char  No need char
# Line 1106  No need char Line 1159  No need char
1159  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1160  )?)?)?)?)?)?)?)?)?otherword/I  )?)?)?)?)?)?)?)?)?otherword/I
1161  Capturing subpattern count = 8  Capturing subpattern count = 8
 Partial matching not supported  
1162  Contains explicit CR or LF match  Contains explicit CR or LF match
1163  No options  No options
1164  First char = 'w'  First char = 'w'
# Line 1121  Need char = 'd' Line 1173  Need char = 'd'
1173          End          End
1174  ------------------------------------------------------------------  ------------------------------------------------------------------
1175  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1176  No options  No options
1177  First char at start or follows newline  First char at start or follows newline
1178  Need char = 'X'  Need char = 'X'
# Line 1129  Need char = 'X' Line 1180  Need char = 'X'
1180  /.*X/IDZs  /.*X/IDZs
1181  ------------------------------------------------------------------  ------------------------------------------------------------------
1182          Bra          Bra
1183          Any*          AllAny*
1184          X          X
1185          Ket          Ket
1186          End          End
1187  ------------------------------------------------------------------  ------------------------------------------------------------------
1188  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1189  Options: anchored dotall  Options: anchored dotall
1190  No first char  No first char
1191  Need char = 'X'  Need char = 'X'
# Line 1154  Need char = 'X' Line 1204  Need char = 'X'
1204          End          End
1205  ------------------------------------------------------------------  ------------------------------------------------------------------
1206  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1207  No options  No options
1208  First char at start or follows newline  First char at start or follows newline
1209  No need char  No need char
# Line 1163  No need char Line 1212  No need char
1212  ------------------------------------------------------------------  ------------------------------------------------------------------
1213          Bra          Bra
1214          CBra 1          CBra 1
1215          Any*          AllAny*
1216          X          X
1217          Alt          Alt
1218          ^          ^
# Line 1173  No need char Line 1222  No need char
1222          End          End
1223  ------------------------------------------------------------------  ------------------------------------------------------------------
1224  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1225  Options: anchored dotall  Options: anchored dotall
1226  No first char  No first char
1227  No need char  No need char
# Line 1182  No need char Line 1230  No need char
1230  ------------------------------------------------------------------  ------------------------------------------------------------------
1231          Bra          Bra
1232          CBra 1          CBra 1
1233          Any*          AllAny*
1234          X          X
1235          Alt          Alt
1236          ^          ^
# Line 1192  No need char Line 1240  No need char
1240          End          End
1241  ------------------------------------------------------------------  ------------------------------------------------------------------
1242  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1243  Options: anchored dotall  Options: anchored dotall
1244  No first char  No first char
1245  No need char  No need char
# Line 1201  No need char Line 1248  No need char
1248  ------------------------------------------------------------------  ------------------------------------------------------------------
1249          Bra          Bra
1250          Bra          Bra
1251       04 Opt          AllAny*
         Any*  
1252          X          X
1253          Alt          Alt
      04 Opt  
1254          ^          ^
1255          B          B
1256          Ket          Ket
      00 Opt  
1257          Ket          Ket
1258          End          End
1259  ------------------------------------------------------------------  ------------------------------------------------------------------
1260  Capturing subpattern count = 0  Capturing subpattern count = 0
1261  Partial matching not supported  Options: anchored
1262  No options  No first char
 First char at start or follows newline  
1263  No need char  No need char
1264    
1265  /\Biss\B/I+  /\Biss\B/I+
# Line 1299  No need char Line 1342  No need char
1342    
1343  /.*iss/Ig+  /.*iss/Ig+
1344  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1345  No options  No options
1346  First char at start or follows newline  First char at start or follows newline
1347  Need char = 's'  Need char = 's'
# Line 1402  Need char = 'c' Line 1444  Need char = 'c'
1444    
1445  /a*/I  /a*/I
1446  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1447  No options  No options
1448  No first char  No first char
1449  No need char  No need char
1450    
1451  /a+/I  /a+/I
1452  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1453  No options  No options
1454  First char = 'a'  First char = 'a'
1455  No need char  No need char
1456    
1457  /(baa|a+)/I  /(baa|a+)/I
1458  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1459  No options  No options
1460  No first char  No first char
1461  Need char = 'a'  Need char = 'a'
1462    
1463  /a{0,3}/I  /a{0,3}/I
1464  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1465  No options  No options
1466  No first char  No first char
1467  No need char  No need char
1468    
1469  /baa{3,}/I  /baa{3,}/I
1470  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1471  No options  No options
1472  First char = 'b'  First char = 'b'
1473  Need char = 'a'  Need char = 'a'
1474    
1475  /"([^\\"]+|\\.)*"/I  /"([^\\"]+|\\.)*"/I
1476  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1477  No options  No options
1478  First char = '"'  First char = '"'
1479  Need char = '"'  Need char = '"'
# Line 1492  Need char = 'b' Line 1528  Need char = 'b'
1528    
1529  /abc*/I  /abc*/I
1530  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1531  No options  No options
1532  First char = 'a'  First char = 'a'
1533  Need char = 'b'  Need char = 'b'
1534    
1535  /ab.c*/I  /ab.c*/I
1536  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1537  No options  No options
1538  First char = 'a'  First char = 'a'
1539  Need char = 'b'  Need char = 'b'
1540    
1541  /a.c*/I  /a.c*/I
1542  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1543  No options  No options
1544  First char = 'a'  First char = 'a'
1545  No need char  No need char
1546    
1547  /.c*/I  /.c*/I
1548  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1549  No options  No options
1550  No first char  No first char
1551  No need char  No need char
1552    
1553  /ac*/I  /ac*/I
1554  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1555  No options  No options
1556  First char = 'a'  First char = 'a'
1557  No need char  No need char
1558    
1559  /(a.c*|b.c*)/I  /(a.c*|b.c*)/I
1560  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1561  No options  No options
1562  No first char  No first char
1563  No need char  No need char
1564    
1565  /a.c*|aba/I  /a.c*|aba/I
1566  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1567  No options  No options
1568  First char = 'a'  First char = 'a'
1569  No need char  No need char
1570    
1571  /.+a/I  /.+a/I
1572  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1573  No options  No options
1574  No first char  No first char
1575  Need char = 'a'  Need char = 'a'
1576    
1577  /(?=abcda)a.*/I  /(?=abcda)a.*/I
1578  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1579  No options  No options
1580  First char = 'a'  First char = 'a'
1581  Need char = 'a'  Need char = 'a'
1582    
1583  /(?=a)a.*/I  /(?=a)a.*/I
1584  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1585  No options  No options
1586  First char = 'a'  First char = 'a'
1587  No need char  No need char
# Line 1568  No need char Line 1594  No need char
1594    
1595  /a\d*/I  /a\d*/I
1596  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1597  No options  No options
1598  First char = 'a'  First char = 'a'
1599  No need char  No need char
1600    
1601  /ab\d*/I  /ab\d*/I
1602  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1603  No options  No options
1604  First char = 'a'  First char = 'a'
1605  Need char = 'b'  Need char = 'b'
# Line 1594  Need char = 'd' Line 1618  Need char = 'd'
1618    
1619  /ab\d+/I  /ab\d+/I
1620  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1621  No options  No options
1622  First char = 'a'  First char = 'a'
1623  Need char = 'b'  Need char = 'b'
1624    
1625  /a(?(1)b)/I  /a(?(1)b)(.)/I
1626  Capturing subpattern count = 0  Capturing subpattern count = 1
1627  No options  No options
1628  First char = 'a'  First char = 'a'
1629  No need char  No need char
1630    
1631  /a(?(1)bag|big)/I  /a(?(1)bag|big)(.)/I
1632  Capturing subpattern count = 0  Capturing subpattern count = 1
1633  No options  No options
1634  First char = 'a'  First char = 'a'
1635  Need char = 'g'  Need char = 'g'
1636    
1637  /a(?(1)bag|big)*/I  /a(?(1)bag|big)*(.)/I
1638  Capturing subpattern count = 0  Capturing subpattern count = 1
1639  No options  No options
1640  First char = 'a'  First char = 'a'
1641  No need char  No need char
1642    
1643  /a(?(1)bag|big)+/I  /a(?(1)bag|big)+(.)/I
1644  Capturing subpattern count = 0  Capturing subpattern count = 1
1645  No options  No options
1646  First char = 'a'  First char = 'a'
1647  Need char = 'g'  Need char = 'g'
1648    
1649  /a(?(1)b..|b..)/I  /a(?(1)b..|b..)(.)/I
1650  Capturing subpattern count = 0  Capturing subpattern count = 1
1651  No options  No options
1652  First char = 'a'  First char = 'a'
1653  Need char = 'b'  Need char = 'b'
# Line 1669  No need char Line 1692  No need char
1692      \Nabc      \Nabc
1693  No match  No match
1694    
1695  /a*(b+)(z)(z)/IP  /a*(b+)(z)(z)/P
1696      aaaabbbbzzzz      aaaabbbbzzzz
1697   0: aaaabbbbzz   0: aaaabbbbzz
1698   1: bbbb   1: bbbb
# Line 1701  Capturing subpattern count = 0 Line 1724  Capturing subpattern count = 0
1724  Options: anchored  Options: anchored
1725  No first char  No first char
1726  Need char = 'd'  Need char = 'd'
1727  Study returned NULL  Subject length lower bound = 4
1728    No set of starting bytes
1729    
1730  /\(             # ( at start  /\(             # ( at start
1731    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1712  Study returned NULL Line 1736  Study returned NULL
1736    \)            # Closing )    \)            # Closing )
1737    /Ix    /Ix
1738  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1739  Options: extended  Options: extended
1740  First char = '('  First char = '('
1741  Need char = ')'  Need char = ')'
# Line 1741  No match Line 1764  No match
1764    
1765  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1766  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1767  Options: extended  Options: extended
1768  First char = '('  First char = '('
1769  Need char = ')'  Need char = ')'
# Line 1756  Need char = ')' Line 1778  Need char = ')'
1778    
1779  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1780  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1781  Options: extended  Options: extended
1782  First char = '('  First char = '('
1783  Need char = ')'  Need char = ')'
# Line 1775  No match Line 1796  No match
1796    
1797  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1798  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1799  Options: extended  Options: extended
1800  First char = '('  First char = '('
1801  Need char = ')'  Need char = ')'
# Line 1786  Need char = ')' Line 1806  Need char = ')'
1806    
1807  /\(  ( (?>[^()]+) | (?R) )* \) /Ix  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1808  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1809  Options: extended  Options: extended
1810  First char = '('  First char = '('
1811  Need char = ')'  Need char = ')'
# Line 1796  Need char = ')' Line 1815  Need char = ')'
1815    
1816  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1817  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
1818  Options: extended  Options: extended
1819  First char = '('  First char = '('
1820  Need char = ')'  Need char = ')'
# Line 1807  Need char = ')' Line 1825  Need char = ')'
1825    
1826  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1827  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1828  Options: extended  Options: extended
1829  First char = '('  First char = '('
1830  Need char = ')'  Need char = ')'
# Line 1824  Need char = ')' Line 1841  Need char = ')'
1841    
1842  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1843  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1844  Options: extended  Options: extended
1845  First char = '('  First char = '('
1846  Need char = ')'  Need char = ')'
# Line 1841  Need char = ')' Line 1857  Need char = ')'
1857    
1858  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1859  Capturing subpattern count = 11  Capturing subpattern count = 11
 Partial matching not supported  
1860  Options: extended  Options: extended
1861  First char = '('  First char = '('
1862  Need char = ')'  Need char = ')'
# Line 1861  Need char = ')' Line 1876  Need char = ')'
1876    
1877  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1878  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1879  Options: extended  Options: extended
1880  First char = '('  First char = '('
1881  Need char = ')'  Need char = ')'
# Line 1869  Need char = ')' Line 1883  Need char = ')'
1883   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1884   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1885   2: 123   2: 123
  3: <unset>  
1886    
1887  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1888  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1889  Options: extended  Options: extended
1890  First char = '('  First char = '('
1891  Need char = ')'  Need char = ')'
# Line 1905  No need char Line 1917  No need char
1917  ------------------------------------------------------------------  ------------------------------------------------------------------
1918          Bra          Bra
1919          ^          ^
1920          [\x00-/:-@[-`{-\xff]          [\x00-/:-@[-`{-\xff] (neg)
1921          Ket          Ket
1922          End          End
1923  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1931  No need char Line 1943  No need char
1943  ------------------------------------------------------------------  ------------------------------------------------------------------
1944          Bra          Bra
1945          ^          ^
1946          [\x00-@[-`{-\xff]          [\x00-@[-`{-\xff] (neg)
1947          Ket          Ket
1948          End          End
1949  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1945  Capturing subpattern count = 0 Line 1957  Capturing subpattern count = 0
1957  No options  No options
1958  No first char  No first char
1959  No need char  No need char
1960    Subject length lower bound = 1
1961  Starting byte set: 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  Starting byte set: 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
1962    _ 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
1963    
# Line 1965  No need char Line 1978  No need char
1978  ------------------------------------------------------------------  ------------------------------------------------------------------
1979          Bra          Bra
1980          ^          ^
1981          [\x80-\xff]          [\x80-\xff] (neg)
1982          Ket          Ket
1983          End          End
1984  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1991  No need char Line 2004  No need char
2004  ------------------------------------------------------------------  ------------------------------------------------------------------
2005          Bra          Bra
2006          ^          ^
2007          [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2008          Ket          Ket
2009          End          End
2010  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2006  Contains explicit CR or LF match Line 2019  Contains explicit CR or LF match
2019  No options  No options
2020  No first char  No first char
2021  No need char  No need char
2022    Subject length lower bound = 1
2023  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2024    
2025  /^[[:cntrl:]]/DZ  /^[[:cntrl:]]/DZ
# Line 2142  No need char Line 2156  No need char
2156  ------------------------------------------------------------------  ------------------------------------------------------------------
2157          Bra          Bra
2158          ^          ^
2159          [ -~\x80-\xff]          [ -~\x80-\xff] (neg)
2160          Ket          Ket
2161          End          End
2162  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2155  No need char Line 2169  No need char
2169  ------------------------------------------------------------------  ------------------------------------------------------------------
2170          Bra          Bra
2171          ^          ^
2172          [\x00-/12:-\xff]          [\x00-/12:-\xff] (neg)
2173          Ket          Ket
2174          End          End
2175  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2168  No need char Line 2182  No need char
2182  ------------------------------------------------------------------  ------------------------------------------------------------------
2183          Bra          Bra
2184          ^          ^
2185          [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2186          Ket          Ket
2187          End          End
2188  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2252  Need char = 'd' Line 2266  Need char = 'd'
2266  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I
2267  Capturing subpattern count = 271  Capturing subpattern count = 271
2268  Max back reference = 270  Max back reference = 270
 Partial matching not supported  
2269  No options  No options
2270  No first char  No first char
2271  No need char  No need char
# Line 2736  No need char Line 2749  No need char
2749  /[\S]/DZ  /[\S]/DZ
2750  ------------------------------------------------------------------  ------------------------------------------------------------------
2751          Bra          Bra
2752          [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2753          Ket          Ket
2754          End          End
2755  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2749  No need char Line 2762  No need char
2762  ------------------------------------------------------------------  ------------------------------------------------------------------
2763          Bra          Bra
2764          a          a
2765       01 Opt       /i b
      NC b  
2766          Ket          Ket
2767          End          End
2768  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2772  No match Line 2784  No match
2784          Bra          Bra
2785          CBra 1          CBra 1
2786          a          a
2787       01 Opt       /i b
      NC b  
2788          Ket          Ket
      00 Opt  
2789          Ket          Ket
2790          End          End
2791  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2797  No match Line 2807  No match
2807  /   (?i)abc/IxDZ  /   (?i)abc/IxDZ
2808  ------------------------------------------------------------------  ------------------------------------------------------------------
2809          Bra          Bra
2810       NC abc       /i abc
2811          Ket          Ket
2812          End          End
2813  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2810  Need char = 'c' (caseless) Line 2820  Need char = 'c' (caseless)
2820    (?i)abc/IxDZ    (?i)abc/IxDZ
2821  ------------------------------------------------------------------  ------------------------------------------------------------------
2822          Bra          Bra
2823       NC abc       /i abc
2824          Ket          Ket
2825          End          End
2826  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2933  Need char = 'c' Line 2943  Need char = 'c'
2943          End          End
2944  ------------------------------------------------------------------  ------------------------------------------------------------------
2945  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2946  No options  No options
2947  No first char  No first char
2948  No need char  No need char
# Line 2962  No need char Line 2971  No need char
2971          End          End
2972  ------------------------------------------------------------------  ------------------------------------------------------------------
2973  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2974  No options  No options
2975  First char = 'x'  First char = 'x'
2976  No need char  No need char
# Line 2978  No need char Line 2986  No need char
2986          End          End
2987  ------------------------------------------------------------------  ------------------------------------------------------------------
2988  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2989  No options  No options
2990  First char = 'x'  First char = 'x'
2991  No need char  No need char
# Line 2986  No need char Line 2993  No need char
2993  /(x)*+/DZ  /(x)*+/DZ
2994  ------------------------------------------------------------------  ------------------------------------------------------------------
2995          Bra          Bra
2996          Once          Braposzero
2997          Brazero          CBraPos 1
         CBra 1  
2998          x          x
2999          KetRmax          KetRpos
         Ket  
3000          Ket          Ket
3001          End          End
3002  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3002  No need char Line 3007  No need char
3007    
3008  /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
3009  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3010  Options: anchored  Options: anchored
3011  No first char  No first char
3012  No need char  No need char
# Line 3016  No match Line 3020  No match
3020    
3021  /(\d++)(\w)/I  /(\d++)(\w)/I
3022  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3023  No options  No options
3024  No first char  No first char
3025  No need char  No need char
# Line 3031  No match Line 3034  No match
3034    
3035  /a++b/I  /a++b/I
3036  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3037  No options  No options
3038  First char = 'a'  First char = 'a'
3039  Need char = 'b'  Need char = 'b'
# Line 3040  Need char = 'b' Line 3042  Need char = 'b'
3042    
3043  /(a++b)/I  /(a++b)/I
3044  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3045  No options  No options
3046  First char = 'a'  First char = 'a'
3047  Need char = 'b'  Need char = 'b'
# Line 3050  Need char = 'b' Line 3051  Need char = 'b'
3051    
3052  /(a++)b/I  /(a++)b/I
3053  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3054  No options  No options
3055  First char = 'a'  First char = 'a'
3056  Need char = 'b'  Need char = 'b'
# Line 3060  Need char = 'b' Line 3060  Need char = 'b'
3060    
3061  /([^()]++|\([^()]*\))+/I  /([^()]++|\([^()]*\))+/I
3062  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3063  No options  No options
3064  No first char  No first char
3065  No need char  No need char
# Line 3070  No need char Line 3069  No need char
3069    
3070  /\(([^()]++|\([^()]+\))+\)/I  /\(([^()]++|\([^()]+\))+\)/I
3071  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3072  No options  No options
3073  First char = '('  First char = '('
3074  Need char = ')'  Need char = ')'
# Line 3133  Failed: nothing to repeat at offset 7 Line 3131  Failed: nothing to repeat at offset 7
3131          End          End
3132  ------------------------------------------------------------------  ------------------------------------------------------------------
3133  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3134  No options  No options
3135  First char = 'x'  First char = 'x'
3136  Need char = 'b'  Need char = 'b'
# Line 3150  Need char = 'b' Line 3147  Need char = 'b'
3147          End          End
3148  ------------------------------------------------------------------  ------------------------------------------------------------------
3149  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3150  Options: ungreedy  Options: ungreedy
3151  First char = 'x'  First char = 'x'
3152  Need char = 'b'  Need char = 'b'
# Line 3179  Need char = 'b' Line 3175  Need char = 'b'
3175          End          End
3176  ------------------------------------------------------------------  ------------------------------------------------------------------
3177  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3178  Options: anchored  Options: anchored
3179  No first char  No first char
3180  No need char  No need char
# Line 3195  No need char Line 3190  No need char
3190          End          End
3191  ------------------------------------------------------------------  ------------------------------------------------------------------
3192  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3193  Options: anchored  Options: anchored
3194  No first char  No first char
3195  Need char = 'b'  Need char = 'b'
# Line 3213  Need char = 'b' Line 3207  Need char = 'b'
3207          End          End
3208  ------------------------------------------------------------------  ------------------------------------------------------------------
3209  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3210  Options: anchored  Options: anchored
3211  No first char  No first char
3212  Need char = 'b'  Need char = 'b'
# Line 3228  Failed: POSIX collating elements are not Line 3221  Failed: POSIX collating elements are not
3221  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
3222    
3223  /\l/I  /\l/I
3224  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
3225    
3226  /\L/I  /\L/I
3227  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
3228    
3229  /\N{name}/I  /\N{name}/I
3230  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
3231    
3232  /\u/I  /\u/I
3233  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
3234    
3235  /\U/I  /\U/I
3236  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
3237    
3238  /[/I  /[/I
3239  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 3289  No need char Line 3282  No need char
3282    
3283  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3284  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3285  Options: extended  Options: extended
3286  First char = '<'  First char = '<'
3287  Need char = '>'  Need char = '>'
# Line 3339  Need char = 'X' Line 3331  Need char = 'X'
3331  /(.*)\d+\1/I  /(.*)\d+\1/I
3332  Capturing subpattern count = 1  Capturing subpattern count = 1
3333  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3334  No options  No options
3335  No first char  No first char
3336  No need char  No need char
3337    
3338  /(.*)\d+/I  /(.*)\d+/I
3339  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3340  No options  No options
3341  First char at start or follows newline  First char at start or follows newline
3342  No need char  No need char
# Line 3354  No need char Line 3344  No need char
3344  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3345  Capturing subpattern count = 1  Capturing subpattern count = 1
3346  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3347  Options: dotall  Options: dotall
3348  No first char  No first char
3349  No need char  No need char
3350    
3351  /(.*)\d+/Is  /(.*)\d+/Is
3352  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3353  Options: anchored dotall  Options: anchored dotall
3354  No first char  No first char
3355  No need char  No need char
# Line 3369  No need char Line 3357  No need char
3357  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3358  Capturing subpattern count = 2  Capturing subpattern count = 2
3359  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3360  No options  No options
3361  First char at start or follows newline  First char at start or follows newline
3362  Need char = 'z'  Need char = 'z'
# Line 3377  Need char = 'z' Line 3364  Need char = 'z'
3364  /((.*))\d+\1/I  /((.*))\d+\1/I
3365  Capturing subpattern count = 2  Capturing subpattern count = 2
3366  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3367  No options  No options
3368  No first char  No first char
3369  No need char  No need char
# Line 3394  Need char = 'b' Line 3380  Need char = 'b'
3380    
3381  /(?=a).*/I  /(?=a).*/I
3382  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3383  No options  No options
3384  First char = 'a'  First char = 'a'
3385  No need char  No need char
# Line 3441  No options Line 3426  No options
3426  No first char  No first char
3427  Need char = 'a'  Need char = 'a'
3428    
3429  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3430  Capturing subpattern count = 0  Capturing subpattern count = 1
3431  No options  No options
3432  First char = 'a'  First char = 'a'
3433  No need char  No need char
3434    
3435  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3436  Capturing subpattern count = 0  Capturing subpattern count = 1
3437  No options  No options
3438  First char = 'a'  First char = 'a'
3439  Need char = 'z'  Need char = 'z'
3440    
3441  /(?(1)abz)/I  /(?(1)abz)(.)/I
3442  Capturing subpattern count = 0  Capturing subpattern count = 1
3443  No options  No options
3444  No first char  No first char
3445  No need char  No need char
3446    
3447  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3448  Capturing subpattern count = 0  Capturing subpattern count = 1
3449  No options  No options
3450  No first char  No first char
3451  Need char = '3'  Need char = '3'
# Line 3500  Capturing subpattern count = 0 Line 3485  Capturing subpattern count = 0
3485  No options  No options
3486  No first char  No first char
3487  No need char  No need char
3488    Subject length lower bound = 1
3489  Starting byte set: a b  Starting byte set: a b
3490    
3491  /[^a]/I  /[^a]/I
# Line 3519  Capturing subpattern count = 0 Line 3505  Capturing subpattern count = 0
3505  No options  No options
3506  No first char  No first char
3507  Need char = '6'  Need char = '6'
3508    Subject length lower bound = 4
3509  Starting byte set: 0 1 2 3 4 5 6 7 8 9  Starting byte set: 0 1 2 3 4 5 6 7 8 9
3510    
3511  /a^b/I  /a^b/I
# Line 3552  Capturing subpattern count = 0 Line 3539  Capturing subpattern count = 0
3539  Options: caseless  Options: caseless
3540  No first char  No first char
3541  No need char  No need char
3542    Subject length lower bound = 1
3543  Starting byte set: A B a b  Starting byte set: A B a b
3544    
3545  /[ab](?i)cd/IS  /[ab](?i)cd/IS
# Line 3559  Capturing subpattern count = 0 Line 3547  Capturing subpattern count = 0
3547  No options  No options
3548  No first char  No first char
3549  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3550    Subject length lower bound = 3
3551  Starting byte set: a b  Starting byte set: a b
3552    
3553  /abc(?C)def/I  /abc(?C)def/I
# Line 3594  Need char = 'f' Line 3583  Need char = 'f'
3583    1    ^    ^     f    1    ^    ^     f
3584   0: abcdef   0: abcdef
3585    
3586  /(?C1)\dabc(?C2)def/I  /(?C1)\dabc(?C2)def/IS
3587    Capturing subpattern count = 0
3588    No options
3589    No first char
3590    Need char = 'f'
3591    Subject length lower bound = 7
3592    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3593        1234abcdef
3594    --->1234abcdef
3595      1 ^              \d
3596      1  ^             \d
3597      1   ^            \d
3598      1    ^           \d
3599      2    ^   ^       d
3600     0: 4abcdef
3601        *** Failers
3602    No match
3603        abcdef
3604    No match
3605    
3606    /(?C1)\dabc(?C2)def/ISS
3607  Capturing subpattern count = 0  Capturing subpattern count = 0
3608  No options  No options
3609  No first char  No first char
# Line 3716  No need char Line 3725  No need char
3725    
3726  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3727  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3728  No options  No options
3729  No first char  No first char
3730  No need char  No need char
# Line 3845  Callout 0: last capture = 1 Line 3853  Callout 0: last capture = 1
3853    
3854  /a(b+)(c*)(?C1)/I  /a(b+)(c*)(?C1)/I
3855  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3856  No options  No options
3857  First char = 'a'  First char = 'a'
3858  Need char = 'b'  Need char = 'b'
# Line 3871  No match Line 3878  No match
3878    
3879  /a(b+?)(c*?)(?C1)/I  /a(b+?)(c*?)(?C1)/I
3880  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3881  No options  No options
3882  First char = 'a'  First char = 'a'
3883  Need char = 'b'  Need char = 'b'
# Line 3912  Capturing subpattern count = 0 Line 3918  Capturing subpattern count = 0
3918  No options  No options
3919  No first char  No first char
3920  No need char  No need char
3921    Subject length lower bound = 1
3922  Starting byte set: a b  Starting byte set: a b
3923    
3924  /(?R)/I  /(?R)/I
# Line 4000  Need char = '<' Line 4007  Need char = '<'
4007          Bra          Bra
4008          CBra 1          CBra 1
4009          a          a
         Once  
4010          Recurse          Recurse
         Ket  
4011          b          b
4012          Ket          Ket
4013          Ket          Ket
# Line 4031  No options Line 4036  No options
4036  First char = 'a'  First char = 'a'
4037  Need char = 'b'  Need char = 'b'
4038    
 /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii  
 Capturing subpattern count = 4  
 Max back reference = 4  
 Partial matching not supported  
 Options: anchored caseless  
 No first char  
 No need char  
     1221  
  0: 1221  
  1: 1221  
  2: 1  
     Satan, oscillate my metallic sonatas!  
  0: Satan, oscillate my metallic sonatas!  
  1: <unset>  
  2: <unset>  
  3: Satan, oscillate my metallic sonatas  
  4: S  
     A man, a plan, a canal: Panama!  
  0: A man, a plan, a canal: Panama!  
  1: <unset>  
  2: <unset>  
  3: A man, a plan, a canal: Panama  
  4: A  
     Able was I ere I saw Elba.  
  0: Able was I ere I saw Elba.  
  1: <unset>  
  2: <unset>  
  3: Able was I ere I saw Elba  
  4: A  
     *** Failers  
 No match  
     The quick brown fox  
 No match  
   
4039  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
4040  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4041  Options: anchored  Options: anchored
4042  No first char  No first char
4043  No need char  No need char
# Line 4108  No match Line 4078  No match
4078    
4079  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4080  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4081  Options: extended  Options: extended
4082  First char = '<'  First char = '<'
4083  Need char = '>'  Need char = '>'
# Line 4259  Need char = 'a' Line 4228  Need char = 'a'
4228          Any          Any
4229          \1          \1
4230          bbb          bbb
         Once  
4231          Recurse          Recurse
         Ket  
4232          d          d
4233          Ket          Ket
4234          End          End
# Line 4282  Named capturing subpatterns: Line 4249  Named capturing subpatterns:
4249    one     1    one     1
4250    three   3    three   3
4251    two     2    two     2
 Partial matching not supported  
4252  Options: anchored caseless  Options: anchored caseless
4253  No first char  No first char
4254  No need char  No need char
# Line 4328  No need char Line 4294  No need char
4294    
4295  /(.*)a/Is  /(.*)a/Is
4296  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4297  Options: anchored dotall  Options: anchored dotall
4298  No first char  No first char
4299  Need char = 'a'  Need char = 'a'
# Line 4336  Need char = 'a' Line 4301  Need char = 'a'
4301  /(.*)a\1/Is  /(.*)a\1/Is
4302  Capturing subpattern count = 1  Capturing subpattern count = 1
4303  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4304  Options: dotall  Options: dotall
4305  No first char  No first char
4306  Need char = 'a'  Need char = 'a'
# Line 4344  Need char = 'a' Line 4308  Need char = 'a'
4308  /(.*)a(b)\2/Is  /(.*)a(b)\2/Is
4309  Capturing subpattern count = 2  Capturing subpattern count = 2
4310  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4311  Options: anchored dotall  Options: anchored dotall
4312  No first char  No first char
4313  Need char = 'b'  Need char = 'b'
4314    
4315  /((.*)a|(.*)b)z/Is  /((.*)a|(.*)b)z/Is
4316  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4317  Options: anchored dotall  Options: anchored dotall
4318  No first char  No first char
4319  Need char = 'z'  Need char = 'z'
# Line 4359  Need char = 'z' Line 4321  Need char = 'z'
4321  /((.*)a|(.*)b)z\1/Is  /((.*)a|(.*)b)z\1/Is
4322  Capturing subpattern count = 3  Capturing subpattern count = 3
4323  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4324  Options: dotall  Options: dotall
4325  No first char  No first char
4326  Need char = 'z'  Need char = 'z'
# Line 4367  Need char = 'z' Line 4328  Need char = 'z'
4328  /((.*)a|(.*)b)z\2/Is  /((.*)a|(.*)b)z\2/Is
4329  Capturing subpattern count = 3  Capturing subpattern count = 3
4330  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4331  Options: dotall  Options: dotall
4332  No first char  No first char
4333  Need char = 'z'  Need char = 'z'
# Line 4375  Need char = 'z' Line 4335  Need char = 'z'
4335  /((.*)a|(.*)b)z\3/Is  /((.*)a|(.*)b)z\3/Is
4336  Capturing subpattern count = 3  Capturing subpattern count = 3
4337  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4338  Options: dotall  Options: dotall
4339  No first char  No first char
4340  Need char = 'z'  Need char = 'z'
# Line 4383  Need char = 'z' Line 4342  Need char = 'z'
4342  /((.*)a|^(.*)b)z\3/Is  /((.*)a|^(.*)b)z\3/Is
4343  Capturing subpattern count = 3  Capturing subpattern count = 3
4344  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4345  Options: anchored dotall  Options: anchored dotall
4346  No first char  No first char
4347  Need char = 'z'  Need char = 'z'
4348    
4349  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4350  Capturing subpattern count = 31  Capturing subpattern count = 31
 Partial matching not supported  
4351  Options: anchored dotall  Options: anchored dotall
4352  No first char  No first char
4353  No need char  No need char
# Line 4398  No need char Line 4355  No need char
4355  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4356  Capturing subpattern count = 31  Capturing subpattern count = 31
4357  Max back reference = 31  Max back reference = 31
 Partial matching not supported  
4358  Options: dotall  Options: dotall
4359  No first char  No first char
4360  No need char  No need char
# Line 4406  No need char Line 4362  No need char
4362  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4363  Capturing subpattern count = 32  Capturing subpattern count = 32
4364  Max back reference = 32  Max back reference = 32
 Partial matching not supported  
4365  Options: dotall  Options: dotall
4366  No first char  No first char
4367  No need char  No need char
# Line 4473  Need char = 'c' Line 4428  Need char = 'c'
4428    
4429  /(a+)*zz/I  /(a+)*zz/I
4430  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4431  No options  No options
4432  No first char  No first char
4433  Need char = 'z'  Need char = 'z'
# Line 4610  Failed: two named subpatterns have the s Line 4564  Failed: two named subpatterns have the s
4564  Capturing subpattern count = 3  Capturing subpattern count = 3
4565  Named capturing subpatterns:  Named capturing subpatterns:
4566    elem   2    elem   2
 Partial matching not supported  
4567  No options  No options
4568  First char = '['  First char = '['
4569  Need char = ']'  Need char = ']'
# Line 4628  No match Line 4581  No match
4581  Capturing subpattern count = 3  Capturing subpattern count = 3
4582  Named capturing subpatterns:  Named capturing subpatterns:
4583    elem   2    elem   2
 Partial matching not supported  
4584  No options  No options
4585  First char = '['  First char = '['
4586  Need char = ']'  Need char = ']'
# Line 4648  Need char = ']' Line 4600  Need char = ']'
4600          a          a
4601          CBra 2          CBra 2
4602          b          b
         Once  
4603          Recurse          Recurse
         Ket  
4604          c          c
4605          Ket          Ket
4606          Ket          Ket
# Line 4670  No need char Line 4620  No need char
4620          a          a
4621          CBra 2          CBra 2
4622          b          b
         Once  
4623          Recurse          Recurse
         Ket  
4624          c          c
4625          Ket          Ket
4626          KetRmax          KetRmax
# Line 4693  No need char Line 4641  No need char
4641          a          a
4642          CBra 2          CBra 2
4643          b          b
         Once  
4644          Recurse          Recurse
         Ket  
4645          c          c
4646          Ket          Ket
4647          Ket          Ket
# Line 4704  No need char Line 4650  No need char
4650          a          a
4651          CBra 2          CBra 2
4652          b          b
         Once  
4653          Recurse          Recurse
         Ket  
4654          c          c
4655          Ket          Ket
4656          Ket          Ket
# Line 4735  No need char Line 4679  No need char
4679    
4680  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4681  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4682  Options: caseless  Options: caseless
4683  No first char  No first char
4684  Need char = 'g' (caseless)  Need char = 'g' (caseless)
# Line 4745  Need char = 'g' (caseless) Line 4688  Need char = 'g' (caseless)
4688    
4689  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4690  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4691  Options: caseless  Options: caseless
4692  No first char  No first char
4693  Need char = 'g' (caseless)  Need char = 'g' (caseless)
4694  Study returned NULL  Subject length lower bound = 8
4695    No set of starting bytes
4696       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
4697   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4698   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 4764  Study returned NULL Line 4707  Study returned NULL
4707          End          End
4708  ------------------------------------------------------------------  ------------------------------------------------------------------
4709  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4710  No options  No options
4711  No first char  No first char
4712  Need char = 'b'  Need char = 'b'
4713  Study returned NULL  Subject length lower bound = 1
4714    No set of starting bytes
4715    
4716  /(a|b)*.?c/ISDZ  /(a|b)*.?c/ISDZ
4717  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4788  Capturing subpattern count = 1 Line 4731  Capturing subpattern count = 1
4731  No options  No options
4732  No first char  No first char
4733  Need char = 'c'  Need char = 'c'
4734  Study returned NULL  Subject length lower bound = 1
4735    No set of starting bytes
4736    
4737  /abc(?C255)de(?C)f/DZ  /abc(?C255)de(?C)f/DZ
4738  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4845  Need char = 'e' Line 4789  Need char = 'e'
4789   +4 ^   ^      e   +4 ^   ^      e
4790  No match  No match
4791    
4792  /a*b/ICDZ  /a*b/ICDZS
4793    ------------------------------------------------------------------
4794            Bra
4795            Callout 255 0 2
4796            a*+
4797            Callout 255 2 1
4798            b
4799            Callout 255 3 0
4800            Ket
4801            End
4802    ------------------------------------------------------------------
4803    Capturing subpattern count = 0
4804    Options:
4805    No first char
4806    Need char = 'b'
4807    Subject length lower bound = 1
4808    Starting byte set: a b
4809      ab
4810    --->ab
4811     +0 ^      a*
4812     +2 ^^     b
4813     +3 ^ ^
4814     0: ab
4815      aaaab
4816    --->aaaab
4817     +0 ^         a*
4818     +2 ^   ^     b
4819     +3 ^    ^
4820     0: aaaab
4821      aaaacb
4822    --->aaaacb
4823     +0 ^          a*
4824     +2 ^   ^      b
4825     +0  ^         a*
4826     +2  ^  ^      b
4827     +0   ^        a*
4828     +2   ^ ^      b
4829     +0    ^       a*
4830     +2    ^^      b
4831     +0      ^     a*
4832     +2      ^     b
4833     +3      ^^
4834     0: b
4835    
4836    /a*b/ICDZSS
4837  ------------------------------------------------------------------  ------------------------------------------------------------------
4838          Bra          Bra
4839          Callout 255 0 2          Callout 255 0 2
# Line 4857  No match Line 4845  No match
4845          End          End
4846  ------------------------------------------------------------------  ------------------------------------------------------------------
4847  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4848  Options:  Options:
4849  No first char  No first char
4850  Need char = 'b'  Need char = 'b'
# Line 4902  Need char = 'b' Line 4889  Need char = 'b'
4889          End          End
4890  ------------------------------------------------------------------  ------------------------------------------------------------------
4891  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4892  Options:  Options:
4893  First char = 'a'  First char = 'a'
4894  Need char = 'b'  Need char = 'b'
# Line 4930  Need char = 'b' Line 4916  Need char = 'b'
4916   +2    ^^      b   +2    ^^      b
4917  No match  No match
4918    
4919  /(abc|def)x/ICDZ  /(abc|def)x/ICDZS
4920    ------------------------------------------------------------------
4921            Bra
4922            Callout 255 0 9
4923            CBra 1
4924            Callout 255 1 1
4925            a
4926            Callout 255 2 1
4927            b
4928            Callout 255 3 1
4929            c
4930            Callout 255 4 0
4931            Alt
4932            Callout 255 5 1
4933            d
4934            Callout 255 6 1
4935            e
4936            Callout 255 7 1
4937            f
4938            Callout 255 8 0
4939            Ket
4940            Callout 255 9 1
4941            x
4942            Callout 255 10 0
4943            Ket
4944            End
4945    ------------------------------------------------------------------
4946    Capturing subpattern count = 1
4947    Options:
4948    No first char
4949    Need char = 'x'
4950    Subject length lower bound = 4
4951    Starting byte set: a d
4952      abcx
4953    --->abcx
4954     +0 ^        (abc|def)
4955     +1 ^        a
4956     +2 ^^       b
4957     +3 ^ ^      c
4958     +4 ^  ^     |
4959     +9 ^  ^     x
4960    +10 ^   ^
4961     0: abcx
4962     1: abc
4963      defx
4964    --->defx
4965     +0 ^        (abc|def)
4966     +1 ^        a
4967     +5 ^        d
4968     +6 ^^       e
4969     +7 ^ ^      f
4970     +8 ^  ^     )
4971     +9 ^  ^     x
4972    +10 ^   ^
4973     0: defx
4974     1: def
4975      ** Failers
4976    No match
4977      abcdefzx
4978    --->abcdefzx
4979     +0 ^            (abc|def)
4980     +1 ^            a
4981     +2 ^^           b
4982     +3 ^ ^          c
4983     +4 ^  ^         |
4984     +9 ^  ^         x
4985     +5 ^            d
4986     +0    ^         (abc|def)
4987     +1    ^         a
4988     +5    ^         d
4989     +6    ^^        e
4990     +7    ^ ^       f
4991     +8    ^  ^      )
4992     +9    ^  ^      x
4993    No match
4994    
4995    /(abc|def)x/ICDZSS
4996  ------------------------------------------------------------------  ------------------------------------------------------------------
4997          Bra          Bra
4998          Callout 255 0 9          Callout 255 0 9
# Line 4984  Need char = 'x' Line 5046  Need char = 'x'
5046  +10 ^   ^  +10 ^   ^
5047   0: defx   0: defx
5048   1: def   1: def
5049      ** Failers
5050    No match
5051    abcdefzx    abcdefzx
5052  --->abcdefzx  --->abcdefzx
5053   +0 ^            (abc|def)   +0 ^            (abc|def)
# Line 5084  No need char Line 5148  No need char
5148   0: abcdcdcd   0: abcdcdcd
5149   1: cd   1: cd
5150    
5151  /([ab]{,4}c|xy)/ICDZ  /([ab]{,4}c|xy)/ICDZS
5152  ------------------------------------------------------------------  ------------------------------------------------------------------
5153          Bra          Bra
5154          Callout 255 0 14          Callout 255 0 14
# Line 5117  Capturing subpattern count = 1 Line 5181  Capturing subpattern count = 1
5181  Options:  Options:
5182  No first char  No first char
5183  No need char  No need char
5184    Subject length lower bound = 2
5185    Starting byte set: a b x
5186      Note: that { does NOT introduce a quantifier      Note: that { does NOT introduce a quantifier
5187  --->Note: that { does NOT introduce a quantifier  --->Note: that { does NOT introduce a quantifier
5188   +0 ^                                                ([ab]{,4}c|xy)   +0         ^                                        ([ab]{,4}c|xy)
5189     +1         ^                                        [ab]
5190     +5         ^^                                       {
5191    +11         ^                                        x
5192     +0                                 ^                ([ab]{,4}c|xy)
5193     +1                                 ^                [ab]
5194     +5                                 ^^               {
5195    +11                                 ^                x
5196     +0                                     ^            ([ab]{,4}c|xy)
5197     +1                                     ^            [ab]
5198     +5                                     ^^           {
5199    +11                                     ^            x
5200    No match
5201    
5202    /([ab]{,4}c|xy)/ICDZSS
5203    ------------------------------------------------------------------
5204            Bra
5205            Callout 255 0 14
5206            CBra 1
5207            Callout 255 1 4
5208            [ab]
5209            Callout 255 5 1
5210            {
5211            Callout 255 6 1
5212            ,
5213            Callout 255 7 1
5214            4
5215            Callout 255 8 1
5216            }
5217            Callout 255 9 1
5218            c
5219            Callout 255 10 0
5220            Alt
5221            Callout 255 11 1
5222            x
5223            Callout 255 12 1
5224            y
5225            Callout 255 13 0
5226            Ket
5227            Callout 255 14 0
5228            Ket
5229            End
5230    ------------------------------------------------------------------
5231    Capturing subpattern count = 1
5232    Options:
5233    No first char
5234    No need char
5235        Note: that { does NOT introduce a quantifier
5236    --->Note: that { does NOT introduce a quantifier
5237     +0 ^                                                ([ab]{,4}c|xy)
5238   +1 ^                                                [ab]   +1 ^                                                [ab]
5239  +11 ^                                                x  +11 ^                                                x
5240   +0  ^                                               ([ab]{,4}c|xy)   +0  ^                                               ([ab]{,4}c|xy)
# Line 5340  No match Line 5455  No match
5455          End          End
5456  ------------------------------------------------------------------  ------------------------------------------------------------------
5457  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
5458  Options:  Options:
5459  No first char  No first char
5460  Need char = '3'  Need char = '3'
# Line 5372  Need char = '3' Line 5486  Need char = '3'
5486    
5487  /\b.*/I  /\b.*/I
5488  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5489  No options  No options
5490  No first char  No first char
5491  No need char  No need char
# Line 5381  No need char Line 5494  No need char
5494    
5495  /\b.*/Is  /\b.*/Is
5496  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5497  Options: dotall  Options: dotall
5498  No first char  No first char
5499  No need char  No need char
# Line 5390  No need char Line 5502  No need char
5502    
5503  /(?!.bcd).*/I  /(?!.bcd).*/I
5504  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5505  No options  No options
5506  No first char  No first char
5507  No need char  No need char
# Line 5403  No options Line 5514  No options
5514  First char = 'a'  First char = 'a'
5515  Need char = 'e'  Need char = 'e'
5516      ab\P      ab\P
5517  Partial match  Partial match: ab
5518      abc\P      abc\P
5519  Partial match  Partial match: abc
5520      abcd\P      abcd\P
5521  Partial match  Partial match: abcd
5522      abcde\P      abcde\P
5523   0: abcde   0: abcde
5524      the quick brown abc\P      the quick brown abc\P
5525  Partial match  Partial match: abc
5526      ** Failers\P      ** Failers\P
5527  No match  No match
5528      the quick brown abxyz fox\P      the quick brown abxyz fox\P
# Line 5436  Need char = '/' Line 5547  Need char = '/'
5547   1: 02   1: 02
5548   2: 05   2: 05
5549      1\P      1\P
5550  Partial match  Partial match: 1
5551      1/2\P      1/2\P
5552  Partial match  Partial match: 1/2
5553      1/2/0\P      1/2/0\P
5554  Partial match  Partial match: 1/2/0
5555      1/2/04\P      1/2/04\P
5556   0: 1/2/04   0: 1/2/04
5557   1: 1   1: 1
5558   2: 2   2: 2
5559      0\P      0\P
5560  Partial match  Partial match: 0
5561      02/\P      02/\P
5562  Partial match  Partial match: 02/
5563      02/0\P      02/0\P
5564  Partial match  Partial match: 02/0
5565      02/1\P      02/1\P
5566  Partial match  Partial match: 02/1
5567      ** Failers\P      ** Failers\P
5568  No match  No match
5569      \P      \P
# Line 5474  No match Line 5585  No match
5585    
5586  /0{0,2}ABC/I  /0{0,2}ABC/I
5587  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5588  No options  No options
5589  No first char  No first char
5590  Need char = 'C'  Need char = 'C'
5591    
5592  /\d{3,}ABC/I  /\d{3,}ABC/I
5593  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5594  No options  No options
5595  No first char  No first char
5596  Need char = 'C'  Need char = 'C'
5597    
5598  /\d*ABC/I  /\d*ABC/I
5599  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5600  No options  No options
5601  No first char  No first char
5602  Need char = 'C'  Need char = 'C'
5603    
5604  /[abc]+DE/I  /[abc]+DE/I
5605  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5606  No options  No options
5607  No first char  No first char
5608  Need char = 'E'  Need char = 'E'
# Line 5508  Need char = '3' Line 5615  Need char = '3'
5615      123\P      123\P
5616   0: 123   0: 123
5617      a\P      a\P
5618  Partial match  Partial match: a
5619      b\P      b\P
5620  Partial match  Partial match: b
5621      c\P      c\P
5622  Partial match  Partial match: c
5623      c12\P      c12\P
5624  Partial match  Partial match: c12
5625      c123\P      c123\P
5626   0: c123   0: c123
5627    
# Line 5524  Options: anchored Line 5631  Options: anchored
5631  No first char  No first char
5632  Need char = 'X'  Need char = 'X'
5633      1\P      1\P
5634  Partial match  Partial match: 1
5635      123\P      123\P
5636  Partial match  Partial match: 123
5637      123X      123X
5638   0: 123X   0: 123X
5639      1234\P      1234\P
5640  Partial match  Partial match: 1234
5641      1234X      1234X
5642   0: 1234X   0: 1234X
5643      12345\P      12345\P
5644  Partial match  Partial match: 12345
5645      12345X      12345X
5646   0: 12345X   0: 12345X
5647      *** Failers      *** Failers
# Line 5544  No match Line 5651  No match
5651      123456\P      123456\P
5652  No match  No match
5653    
5654  /abc/I>testsavedregex  /abc/IS>testsavedregex
5655    Capturing subpattern count = 0
5656    No options
5657    First char = 'a'
5658    Need char = 'c'
5659    Subject length lower bound = 3
5660    No set of starting bytes
5661    Compiled pattern written to testsavedregex
5662    Study data written to testsavedregex
5663    <testsavedregex
5664    Compiled pattern loaded from testsavedregex
5665    Study data loaded from testsavedregex
5666        abc
5667     0: abc
5668        ** Failers
5669    No match
5670        bca
5671    No match
5672    
5673    /abc/ISS>testsavedregex
5674  Capturing subpattern count = 0  Capturing subpattern count = 0
5675  No options  No options
5676  First char = 'a'  First char = 'a'
5677  Need char = 'c'  Need char = 'c'
5678  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5679  <testsavedregex  <testsavedregex
5680  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5681  No study data  No study data
5682      abc      abc
5683   0: abc   0: abc
# Line 5560  No match Line 5686  No match
5686      bca      bca
5687  No match  No match
5688    
5689  /abc/IF>testsavedregex  /abc/IFS>testsavedregex
5690    Capturing subpattern count = 0
5691    No options
5692    First char = 'a'
5693    Need char = 'c'
5694    Subject length lower bound = 3
5695    No set of starting bytes
5696    Compiled pattern written to testsavedregex
5697    Study data written to testsavedregex
5698    <testsavedregex
5699    Compiled pattern (byte-inverted) loaded from testsavedregex
5700    Study data loaded from testsavedregex
5701        abc
5702     0: abc
5703        ** Failers
5704    No match
5705        bca
5706    No match
5707    
5708    /abc/IFSS>testsavedregex
5709  Capturing subpattern count = 0  Capturing subpattern count = 0
5710  No options  No options
5711  First char = 'a'  First char = 'a'
5712  Need char = 'c'  Need char = 'c'
5713  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5714  <testsavedregex  <testsavedregex
5715  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5716  No study data  No study data
5717      abc      abc
5718   0: abc   0: abc
# Line 5581  Capturing subpattern count = 1 Line 5726  Capturing subpattern count = 1
5726  No options  No options
5727  No first char  No first char
5728  No need char  No need char
5729    Subject length lower bound = 1
5730  Starting byte set: a b  Starting byte set: a b
5731  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5732  Study data written to testsavedregex  Study data written to testsavedregex
5733  <testsavedregex  <testsavedregex
5734  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5735  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5736      abc      abc
5737   0: a   0: a
# Line 5596  Study data loaded from testsavedregex Line 5742  Study data loaded from testsavedregex
5742      def      def
5743  No match  No match
5744    
5745    /(a|b)/ISS>testsavedregex
5746    Capturing subpattern count = 1
5747    No options
5748    No first char
5749    No need char
5750    Compiled pattern written to testsavedregex
5751    <testsavedregex
5752    Compiled pattern loaded from testsavedregex
5753    No study data
5754        abc
5755     0: a
5756     1: a
5757        ** Failers
5758     0: a
5759     1: a
5760        def
5761    No match
5762    
5763  /(a|b)/ISF>testsavedregex  /(a|b)/ISF>testsavedregex
5764  Capturing subpattern count = 1  Capturing subpattern count = 1
5765  No options  No options
5766  No first char  No first char
5767  No need char  No need char
5768    Subject length lower bound = 1
5769  Starting byte set: a b  Starting byte set: a b
5770  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5771  Study data written to testsavedregex  Study data written to testsavedregex
5772  <testsavedregex  <testsavedregex
5773  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5774  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5775      abc      abc
5776   0: a   0: a
# Line 5616  Study data loaded from testsavedregex Line 5781  Study data loaded from testsavedregex
5781      def      def
5782  No match  No match
5783    
5784    /(a|b)/ISSF>testsavedregex
5785    Capturing subpattern count = 1
5786    No options
5787    No first char
5788    No need char
5789    Compiled pattern written to testsavedregex
5790    <testsavedregex
5791    Compiled pattern (byte-inverted) loaded from testsavedregex
5792    No study data
5793        abc
5794     0: a
5795     1: a
5796        ** Failers
5797     0: a
5798     1: a
5799        def
5800    No match
5801    
5802  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5803  Capturing subpattern count = 3  Capturing subpattern count = 3
5804  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
5805  Options: multiline dotall  Options: multiline dotall
5806  First char = '<'  First char = '<'
5807  Need char = '>'  Need char = '>'
5808      <!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>
5809   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>
5810   1: seite   1: seite
5811   2: \x0a   2: \x0a
# Line 5672  No match Line 5854  No match
5854      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5855  No match  No match
5856    
5857  /ab.cd/IP  /ab.cd/P
5858      ab-cd      ab-cd
5859   0: ab-cd   0: ab-cd
5860      ab=cd      ab=cd
# Line 5682  No match: POSIX code 17: match failed Line 5864  No match: POSIX code 17: match failed
5864      ab\ncd      ab\ncd
5865  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
5866    
5867  /ab.cd/IPs  /ab.cd/Ps
5868      ab-cd      ab-cd
5869   0: ab-cd   0: ab-cd
5870      ab=cd      ab=cd
# Line 5926  Matched, but too many substrings Line 6108  Matched, but too many substrings
6108    
6109  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
6110  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6111  No options  No options
6112  No first char  No first char
6113  No need char  No need char
# Line 5939  No need char Line 6120  No need char
6120    
6121  /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
6122  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6123  No options  No options
6124  No first char  No first char
6125  No need char  No need char
# Line 5950  No need char Line 6130  No need char
6130    
6131  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
6132  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6133  No options  No options
6134  No first char  No first char
6135  No need char  No need char
# Line 5961  No need char Line 6140  No need char
6140    
6141  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
6142  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6143  No options  No options
6144  No first char  No first char
6145  No need char  No need char
# Line 5974  No need char Line 6152  No need char
6152    
6153  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
6154  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6155  No options  No options
6156  No first char  No first char
6157  No need char  No need char
# Line 5987  No need char Line 6164  No need char
6164      ((this))      ((this))
6165   0: ((this))   0: ((this))
6166    
6167  /a(b)c/IPN  /a(b)c/PN
6168      abc      abc
6169  Matched with REG_NOSUB  Matched with REG_NOSUB
6170    
6171  /a(?P<name>b)c/IPN  /a(?P<name>b)c/PN
6172      abc      abc
6173  Matched with REG_NOSUB  Matched with REG_NOSUB
6174    
# Line 6316  Failed: octal value is greater than \377 Line 6493  Failed: octal value is greater than \377
6493    
6494  /\s*,\s*/IS  /\s*,\s*/IS
6495  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6496  No options  No options
6497  No first char  No first char
6498  Need char = ','  Need char = ','
6499    Subject length lower bound = 1
6500  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6501      \x0b,\x0b      \x0b,\x0b
6502   0: ,   0: ,
# Line 6446  Unknown newline type at: <bad> Line 6623  Unknown newline type at: <bad>
6623    
6624  /.*/I<lf>  /.*/I<lf>
6625  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6626  Options:  Options:
6627  Forced newline sequence: LF  Forced newline sequence: LF
6628  First char at start or follows newline  First char at start or follows newline
# Line 6472  No need char Line 6648  No need char
6648    
6649  /\w+(.)(.)?def/Is  /\w+(.)(.)?def/Is
6650  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
6651  Options: dotall  Options: dotall
6652  No first char  No first char
6653  Need char = 'f'  Need char = 'f'
# Line 6489  Need char = 'f' Line 6664  Need char = 'f'
6664    
6665  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6666  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6667  No options  No options
6668  No first char  No first char
6669  No need char  No need char
# Line 6624  No need char Line 6798  No need char
6798    
6799  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
6800  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6801  No options  No options
6802  No first char  No first char
6803  No need char  No need char
6804    Subject length lower bound = 1
6805  Starting byte set: C a b c d  Starting byte set: C a b c d
6806    
6807  /()[ab]xyz/IS  /()[ab]xyz/IS
# Line 6635  Capturing subpattern count = 1 Line 6809  Capturing subpattern count = 1
6809  No options  No options
6810  No first char  No first char
6811  Need char = 'z'  Need char = 'z'
6812    Subject length lower bound = 4
6813  Starting byte set: a b  Starting byte set: a b
6814    
6815  /(|)[ab]xyz/IS  /(|)[ab]xyz/IS
# Line 6642  Capturing subpattern count = 1 Line 6817  Capturing subpattern count = 1
6817  No options  No options
6818  No first char  No first char
6819  Need char = 'z'  Need char = 'z'
6820    Subject length lower bound = 4
6821  Starting byte set: a b  Starting byte set: a b
6822    
6823  /(|c)[ab]xyz/IS  /(|c)[ab]xyz/IS
# Line 6649  Capturing subpattern count = 1 Line 6825  Capturing subpattern count = 1
6825  No options  No options
6826  No first char  No first char
6827  Need char = 'z'  Need char = 'z'
6828    Subject length lower bound = 4
6829  Starting byte set: a b c  Starting byte set: a b c
6830    
6831  /(|c?)[ab]xyz/IS  /(|c?)[ab]xyz/IS
# Line 6656  Capturing subpattern count = 1 Line 6833  Capturing subpattern count = 1
6833  No options  No options
6834  No first char  No first char
6835  Need char = 'z'  Need char = 'z'
6836    Subject length lower bound = 4
6837  Starting byte set: a b c  Starting byte set: a b c
6838    
6839  /(d?|c?)[ab]xyz/IS  /(d?|c?)[ab]xyz/IS
# Line 6663  Capturing subpattern count = 1 Line 6841  Capturing subpattern count = 1
6841  No options  No options
6842  No first char  No first char
6843  Need char = 'z'  Need char = 'z'
6844    Subject length lower bound = 4
6845  Starting byte set: a b c d  Starting byte set: a b c d
6846    
6847  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
# Line 6670  Capturing subpattern count = 1 Line 6849  Capturing subpattern count = 1
6849  No options  No options
6850  No first char  No first char
6851  Need char = 'z'  Need char = 'z'
6852    Subject length lower bound = 4
6853  Starting byte set: a b c d  Starting byte set: a b c d
6854    
6855  /^a*b\d/DZ  /^a*b\d/DZ
# Line 6683  Starting byte set: a b c d Line 6863  Starting byte set: a b c d
6863          End          End
6864  ------------------------------------------------------------------  ------------------------------------------------------------------
6865  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6866  Options: anchored  Options: anchored
6867  No first char  No first char
6868  Need char = 'b'  Need char = 'b'
# Line 6699  Need char = 'b' Line 6878  Need char = 'b'
6878          End          End
6879  ------------------------------------------------------------------  ------------------------------------------------------------------
6880  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6881  Options: anchored  Options: anchored
6882  No first char  No first char
6883  Need char = 'b'  Need char = 'b'
# Line 6715  Need char = 'b' Line 6893  Need char = 'b'
6893          End          End
6894  ------------------------------------------------------------------  ------------------------------------------------------------------
6895  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6896  Options: anchored  Options: anchored
6897  No first char  No first char
6898  Need char = 'b'  Need char = 'b'
# Line 6731  Need char = 'b' Line 6908  Need char = 'b'
6908          End          End
6909  ------------------------------------------------------------------  ------------------------------------------------------------------
6910  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6911  Options: anchored  Options: anchored
6912  No first char  No first char
6913  Need char = 'A'  Need char = 'A'
# Line 6746  No match Line 6922  No match
6922  ------------------------------------------------------------------  ------------------------------------------------------------------
6923          Bra          Bra
6924          ^          ^
6925          a*       /i a*
6926       NC A       /i A
6927          \d          \d
6928          Ket          Ket
6929          End          End
6930  ------------------------------------------------------------------  ------------------------------------------------------------------
6931  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6932  Options: anchored caseless  Options: anchored caseless
6933  No first char  No first char
6934  Need char = 'A' (caseless)  Need char = 'A' (caseless)
# Line 6764  Need char = 'A' (caseless) Line 6939  Need char = 'A' (caseless)
6939    
6940  /(a*|b*)[cd]/IS  /(a*|b*)[cd]/IS
6941  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6942  No options  No options
6943  No first char  No first char
6944  No need char  No need char
6945    Subject length lower bound = 1
6946  Starting byte set: a b c d  Starting byte set: a b c d
6947    
6948  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
6949  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6950  No options  No options
6951  No first char  No first char
6952  No need char  No need char
6953    Subject length lower bound = 1
6954  Starting byte set: a b c d  Starting byte set: a b c d
6955    
6956  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
6957  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6958  No options  No options
6959  No first char  No first char
6960  No need char  No need char
6961    Subject length lower bound = 1
6962  Starting byte set: a b c d  Starting byte set: a b c d
6963    
6964  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
6965  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6966  No options  No options
6967  No first char  No first char
6968  No need char  No need char
6969    Subject length lower bound = 2
6970  Starting byte set: a b  Starting byte set: a b
6971    
6972  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
# Line 7376  Matched, but too many substrings Line 7551  Matched, but too many substrings
7551  /[^a]+a/BZi  /[^a]+a/BZi
7552  ------------------------------------------------------------------  ------------------------------------------------------------------
7553          Bra          Bra
7554          [^A]++       /i [^A]++
7555       NC a       /i a
7556          Ket          Ket
7557          End          End
7558  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7385  Matched, but too many substrings Line 7560  Matched, but too many substrings
7560  /[^a]+A/BZi  /[^a]+A/BZi
7561  ------------------------------------------------------------------  ------------------------------------------------------------------
7562          Bra          Bra
7563          [^A]++       /i [^A]++
7564       NC A       /i A
7565          Ket          Ket
7566          End          End
7567  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7581  No match Line 7756  No match
7756  ------------------------------------------------------------------  ------------------------------------------------------------------
7757          Bra          Bra
7758          ^          ^
         Once  
7759          Recurse          Recurse
         Ket  
7760          [()]          [()]
7761          CBra 1          CBra 1
7762          Ket          Ket
# Line 7597  No match Line 7770  No match
7770          ^          ^
7771          CBra 1          CBra 1
7772          Cond          Cond
7773        2 Cond ref        2 Cond nref
7774          y          y
7775          Ket          Ket
7776          [()]          [()]
# Line 7617  No match Line 7790  No match
7790  ------------------------------------------------------------------  ------------------------------------------------------------------
7791          Bra          Bra
7792          ^          ^
         Once  
7793          Recurse          Recurse
         Ket  
7794          ()          ()
7795          CBra 1          CBra 1
7796          Ket          Ket
# Line 7631  No match Line 7802  No match
7802  ------------------------------------------------------------------  ------------------------------------------------------------------
7803          Bra          Bra
7804          ^          ^
         Once  
7805          Recurse          Recurse
         Ket  
7806          [(\]a]          [(\]a]
7807          CBra 1          CBra 1
7808          Ket          Ket
# Line 7646  No match Line 7815  No match
7815  ------------------------------------------------------------------  ------------------------------------------------------------------
7816          Bra          Bra
7817          ^          ^
         Once  
7818          Recurse          Recurse
         Ket  
7819          CBra 1          CBra 1
7820          Ket          Ket
7821          Ket          Ket
# Line 7663  Named capturing subpatterns: Line 7830  Named capturing subpatterns:
7830    one     1    one     1
7831    three   3    three   3
7832    two     2    two     2
 Partial matching not supported  
7833  Options: anchored caseless  Options: anchored caseless
7834  No first char  No first char
7835  No need char  No need char
# Line 7697  No match Line 7863  No match
7863  /(?=(\w+))\1:/I  /(?=(\w+))\1:/I
7864  Capturing subpattern count = 1  Capturing subpattern count = 1
7865  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
7866  No options  No options
7867  No first char  No first char
7868  Need char = ':'  Need char = ':'
# Line 7710  Capturing subpattern count = 1 Line 7875  Capturing subpattern count = 1
7875  Max back reference = 1  Max back reference = 1
7876  Named capturing subpatterns:  Named capturing subpatterns:
7877    abc   1    abc   1
 Partial matching not supported  
7878  No options  No options
7879  No first char  No first char
7880  Need char = ':'  Need char = ':'
# Line 7718  Need char = ':' Line 7882  Need char = ':'
7882   0: abcd:   0: abcd:
7883   1: abcd   1: abcd
7884    
 /(?'abc'\w+):\k<abc>{2}/  
     a:aaxyz  
  0: a:aa  
  1: a  
     ab:ababxyz  
  0: ab:abab  
  1: ab  
     ** Failers  
 No match  
     a:axyz  
 No match  
     ab:abxyz  
 No match  
   
7885  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7886      adaa      adaa
7887   0: adaa   0: adaa
# Line 7758  No match Line 7908  No match
7908      bddd      bddd
7909  No match  No match
7910    
 /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x  
     abd  
  0: abd  
  1: a  
     ce  
  0: ce  
   
7911  /(?(<bc))/  /(?(<bc))/
7912  Failed: malformed number or name after (?( at offset 6  Failed: malformed number or name after (?( at offset 6
7913    
# Line 7795  Failed: reference to non-existent subpat Line 7938  Failed: reference to non-existent subpat
7938   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7939   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7940    
 /^(?(DEFINE) (?<A> a) (?<B> b) )  (?&A) (?&B) /x  
     abcd  
  0: ab  
  1: <unset>  
  2: <unset>  
   
 /(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT))  
   (?(DEFINE)  
   (?<NAME_PAT>[a-z]+)  
   (?<ADDRESS_PAT>\d+)  
   )/x  
     metcalfe 33  
  0: metcalfe 33  
  1: metcalfe  
  2: 33  
  3: <unset>  
  4: <unset>  
   
7941  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7942  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7943    
# Line 7822  Options: extended Line 7947  Options: extended
7947  First char = 'x'  First char = 'x'
7948  Need char = 'z'  Need char = 'z'
7949    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7950  /(a|)*\d/  /(a|)*\d/
7951    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7952  No match  No match
# Line 7854  No match Line 7976  No match
7976  No match  No match
7977    
7978  /^abc./mgx<any>  /^abc./mgx<any>
7979      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
7980   0: abc1   0: abc1
7981   0: abc2   0: abc2
7982   0: abc3   0: abc3
# Line 7864  No match Line 7986  No match
7986   0: abc7   0: abc7
7987    
7988  /abc.$/mgx<any>  /abc.$/mgx<any>
7989      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
7990   0: abc1   0: abc1
7991   0: abc2   0: abc2
7992   0: abc3   0: abc3
# Line 7990  Need char = 'P' Line 8112  Need char = 'P'
8112   0: PXP   0: PXP
8113   1: P   1: P
8114    
 /(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/  
     1.2.3.4  
  0: 1.2.3.4  
  1: <unset>  
  2: .4  
     131.111.10.206  
  0: 131.111.10.206  
  1: <unset>  
  2: .206  
     10.0.0.0  
  0: 10.0.0.0  
  1: <unset>  
  2: .0  
     ** Failers  
 No match  
     10.6  
 No match  
     455.3.4.5  
 No match  
   
 /\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/  
     1.2.3.4  
  0: 1.2.3.4  
  1: .4  
  2: <unset>  
     131.111.10.206  
  0: 131.111.10.206  
  1: .206  
  2: <unset>  
     10.0.0.0  
  0: 10.0.0.0  
  1: .0  
  2: <unset>  
     ** Failers  
 No match  
     10.6  
 No match  
     455.3.4.5  
 No match  
   
8115  /(?:a(?&abc)b)*(?<abc>x)/  /(?:a(?&abc)b)*(?<abc>x)/
8116      123axbaxbaxbx456      123axbaxbaxbx456
8117   0: axbaxbaxbx   0: axbaxbaxbx
# Line 8067  No match Line 8149  No match
8149     DEFabcABCXYZ     DEFabcABCXYZ
8150  No match  No match
8151    
 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/  
     ababababbbabZXXXX  
  0: ababababbbabZ  
  1: ab  
  2: b  
   
8152  /^(a)\g-2/  /^(a)\g-2/
8153  Failed: reference to non-existent subpattern at offset 7  Failed: reference to non-existent subpattern at offset 7
8154    
8155  /^(a)\g/  /^(a)\g/
8156  Failed: \g is not followed by a braced name or an optionally braced non-zero number at offset 5  Failed: a numbered reference must not be zero at offset 5
8157    
8158  /^(a)\g{0}/  /^(a)\g{0}/
8159  Failed: \g is not followed by a braced name or an optionally braced non-zero number at offset 7  Failed: a numbered reference must not be zero at offset 8
8160    
8161  /^(a)\g{3/  /^(a)\g{3/
8162  Failed: \g is not followed by a braced name or an optionally braced non-zero number at offset 8  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
8163    
8164  /^(a)\g{4a}/  /^(a)\g{4a}/
8165  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
# Line 8166  No match Line 8242  No match
8242   0+   0+
8243    
8244  /abc.$/mgx<anycrlf>  /abc.$/mgx<anycrlf>
8245      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
8246   0: abc1   0: abc1
8247   0: abc4   0: abc4
8248   0: abc5   0: abc5
# Line 8188  No match Line 8264  No match
8264          Alt          Alt
8265          c          c
8266          Ket          Ket
         Once  
8267          Recurse          Recurse
8268          Ket          Ket
         Ket  
8269          End          End
8270  ------------------------------------------------------------------  ------------------------------------------------------------------
8271      abc      abc
# Line 8202  No match Line 8276  No match
8276  ------------------------------------------------------------------  ------------------------------------------------------------------
8277          Bra          Bra
8278          xy          xy
         Once  
8279          Recurse          Recurse
         Ket  
8280          CBra 1          CBra 1
8281          abc          abc
8282          Ket          Ket
# Line 8220  No match Line 8292  No match
8292  No match  No match
8293    
8294  /x(?-0)y/  /x(?-0)y/
8295  Failed: (?+ or (?- or (?(+ or (?(- must be followed by a non-zero number at offset 5  Failed: a numbered reference must not be zero at offset 5
8296    
8297  /x(?-1)y/  /x(?-1)y/
8298  Failed: reference to non-existent subpattern at offset 5  Failed: reference to non-existent subpattern at offset 5
8299    
8300  /x(?+0)y/  /x(?+0)y/
8301  Failed: (?+ or (?- or (?(+ or (?(- must be followed by a non-zero number at offset 5  Failed: a numbered reference must not be zero at offset 5
8302    
8303  /x(?+1)y/  /x(?+1)y/
8304  Failed: reference to non-existent subpattern at offset 5  Failed: reference to non-existent subpattern at offset 5
# Line 8308  Failed: reference to non-existent subpat Line 8380  Failed: reference to non-existent subpat
8380  /((?(-2)a))/BZ  /((?(-2)a))/BZ
8381  Failed: reference to non-existent subpattern at offset 7  Failed: reference to non-existent subpattern at offset 7
8382    
8383  /^(?(+1)X|Y)/BZ  /^(?(+1)X|Y)(.)/BZ
8384  ------------------------------------------------------------------  ------------------------------------------------------------------
8385          Bra          Bra
8386          ^          ^
# Line 8318  Failed: reference to non-existent subpat Line 8390  Failed: reference to non-existent subpat
8390          Alt          Alt
8391          Y          Y
8392          Ket          Ket
8393            CBra 1
8394            Any
8395            Ket
8396          Ket          Ket
8397          End          End
8398  ------------------------------------------------------------------  ------------------------------------------------------------------
8399      Y      Y!
8400   0: Y   0: Y!
8401     1: !
 /(foo)\Kbar/  
     foobar  
  0: bar  
  1: foo  
   
 /(foo)(\Kbar|baz)/  
     foobar  
  0: bar  
  1: foo  
  2: bar  
     foobaz  
  0: foobaz  
  1: foo  
  2: baz  
   
 /(foo\Kbar)baz/  
     foobarbaz  
  0: barbaz  
  1: foobar  
8402    
8403  /(?<A>tom|bon)-\k{A}/  /(?<A>tom|bon)-\k{A}/
8404      tom-tom      tom-tom
# Line 8356  No match Line 8412  No match
8412      tom-bon      tom-bon
8413  No match  No match
8414    
 /(?<A>tom|bon)-\g{A}/  
     tom-tom  
  0: tom-tom  
  1: tom  
     bon-bon  
  0: bon-bon  
  1: bon  
   
8415  /\g{A/  /\g{A/
8416  Failed: syntax error in subpattern name (missing terminator) at offset 4  Failed: syntax error in subpattern name (missing terminator) at offset 4
8417    
# Line 8458  Failed: syntax error in subpattern name Line 8506  Failed: syntax error in subpattern name
8506   3: <unset>   3: <unset>
8507   4: x   4: x
8508    
 /(?|(abc)|(xyz))\1/  
     abcabc  
  0: abcabc  
  1: abc  
     xyzxyz  
  0: xyzxyz  
  1: xyz  
     ** Failers  
 No match  
     abcxyz  
 No match  
     xyzabc  
 No match  
   
 /(?|(abc)|(xyz))(?1)/  
     abcabc  
  0: abcabc  
  1: abc  
     xyzabc  
  0: xyzabc  
  1: xyz  
     ** Failers  
 No match  
     xyzxyz  
 No match  
   
 /\H\h\V\v/  
     X X\x0a  
  0: X X\x0a  
     X\x09X\x0b  
  0: X\x09X\x0b  
     ** Failers  
 No match  
     \xa0 X\x0a  
 No match  
   
 /\H*\h+\V?\v{3,4}/  
     \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a  
  0: \x09 \xa0X\x0a\x0b\x0c\x0d  
     \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a  
  0: \x09 \xa0\x0a\x0b\x0c\x0d  
     \x09\x20\xa0\x0a\x0b\x0c  
  0: \x09 \xa0\x0a\x0b\x0c  
     ** Failers  
 No match  
     \x09\x20\xa0\x0a\x0b  
 No match  
   
 /\H{3,4}/  
     XY  ABCDE  
  0: ABCD  
     XY  PQR ST  
  0: PQR  
   
 /.\h{3,4}./  
     XY  AB    PQRS  
  0: B    P  
   
 /\h*X\h?\H+Y\H?Z/  
     >XNNNYZ  
  0: XNNNYZ  
     >  X NYQZ  
  0:   X NYQZ  
     ** Failers  
 No match  
     >XYZ  
 No match  
     >  X NY Z  
 No match  
   
 /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/  
     >XY\x0aZ\x0aA\x0bNN\x0c  
  0: XY\x0aZ\x0aA\x0bNN\x0c  
     >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c  
  0: \x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c  
   
8509  /[\h]/BZ  /[\h]/BZ
8510  ------------------------------------------------------------------  ------------------------------------------------------------------
8511          Bra          Bra
# Line 8785  No match Line 8757  No match
8757  ------------------------------------------------------------------  ------------------------------------------------------------------
8758    
8759  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8760  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8761   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8762    
8763  /[\E]AAA/  /[\E]AAA/
# Line 8830  Failed: missing terminating ] for charac Line 8802  Failed: missing terminating ] for charac
8802          End          End
8803  ------------------------------------------------------------------  ------------------------------------------------------------------
8804    
 /^a+(*FAIL)/  
     aaaaaa  
 No match  
   
 /a+b?c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*PRUNE)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*COMMIT)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*SKIP)c+(*FAIL)/  
     aaabcccaaabccc  
 No match  
   
 /^(?:aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/  
     aaaxxxxxx  
  0: aaaxxxxxx  
     aaa++++++  
  0: aaa  
     bbbxxxxx  
  0: bbbxxxxx  
     bbb+++++  
  0: bbb  
     cccxxxx  
  0: cccxxxx  
     ccc++++  
  0: ccc  
     dddddddd  
  0: ddd  
   
 /^(aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/  
     aaaxxxxxx  
  0: aaaxxxxxx  
  1: aaaxxxxxx  
     aaa++++++  
  0: aaa  
  1: aaa  
     bbbxxxxx  
  0: bbbxxxxx  
  1: bbbxxxxx  
     bbb+++++  
  0: bbb  
  1: bbb  
     cccxxxx  
  0: cccxxxx  
  1: cccxxxx  
     ccc++++  
  0: ccc  
  1: ccc  
     dddddddd  
  0: ddd  
  1: ddd  
   
 /a+b?(*THEN)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /(A (A|B(*ACCEPT)|C) D)(E)/x  
     ABX  
  0: AB  
     AADE  
  0: AADE  
  1: AAD  
  2: A  
  3: E  
     ACDE  
  0: ACDE  
  1: ACD  
  2: C  
  3: E  
     ** Failers  
 No match  
     AD  
 No match  
   
8805  /^a+(*FAIL)/C  /^a+(*FAIL)/C
8806      aaaaaa      aaaaaa
8807  --->aaaaaa  --->aaaaaa
# Line 9039  No match Line 8930  No match
8930  +13   ^  ^      (*FAIL)  +13   ^  ^      (*FAIL)
8931  No match  No match
8932    
 /a(*PRUNE:XXX)b/  
 Failed: (*VERB) with an argument is not supported at offset 8  
   
8933  /a(*MARK)b/  /a(*MARK)b/
8934  Failed: (*VERB) not recognized at offset 7  Failed: (*MARK) must have an argument at offset 7
8935    
8936  /(?i:A{1,}\6666666666)/  /(?i:A{1,}\6666666666)/
8937  Failed: number is too big at offset 19  Failed: number is too big at offset 19
# Line 9051  Failed: number is too big at offset 19 Line 8939  Failed: number is too big at offset 19
8939  /\g6666666666/  /\g6666666666/
8940  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8941    
8942  /[\g6666666666]/  /[\g6666666666]/BZ
8943  Failed: number is too big at offset 12  ------------------------------------------------------------------
8944            Bra
8945            [6g]
8946            Ket
8947            End
8948    ------------------------------------------------------------------
8949    
8950  /(?1)\c[/  /(?1)\c[/
8951  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 9132  No match Line 9025  No match
9025  No match  No match
9026      a\x85b      a\x85b
9027  No match  No match
9028    
9029    /(*ANY).*/g
9030        abc\r\ndef
9031     0: abc
9032     0:
9033     0: def
9034     0:
9035    
9036  /a\Rb/I<bsr_anycrlf>  /(*ANYCRLF).*/g
9037  Capturing subpattern count = 0      abc\r\ndef
9038  Options: bsr_anycrlf   0: abc
9039  First char = 'a'   0:
9040  Need char = 'b'   0: def
9041      a\rb   0:
9042   0: a\x0db  
9043      a\nb  /(*CRLF).*/g
9044        abc\r\ndef
9045     0: abc
9046     0:
9047     0: def
9048     0:
9049    
9050    /a\Rb/I<bsr_anycrlf>
9051    Capturing subpattern count = 0
9052    Options: bsr_anycrlf
9053    First char = 'a'
9054    Need char = 'b'
9055        a\rb
9056     0: a\x0db
9057        a\nb
9058   0: a\x0ab   0: a\x0ab
9059      a\r\nb      a\r\nb
9060   0: a\x0d\x0ab   0: a\x0d\x0ab
# Line 9215  No match Line 9129  No match
9129    
9130  /a\R{2,4}b/I<bsr_anycrlf>  /a\R{2,4}b/I<bsr_anycrlf>
9131  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
9132  Options: bsr_anycrlf  Options: bsr_anycrlf
9133  First char = 'a'  First char = 'a'
9134  Need char = 'b'  Need char = 'b'
# Line 9234  No match Line 9147  No match
9147    
9148  /a\R{2,4}b/I<bsr_unicode>  /a\R{2,4}b/I<bsr_unicode>
9149  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
9150  Options: bsr_unicode  Options: bsr_unicode
9151  First char = 'a'  First char = 'a'
9152  Need char = 'b'  Need char = 'b'
# Line 9302  Forced newline sequence: CR Line 9214  Forced newline sequence: CR
9214  First char = 'a'  First char = 'a'
9215  Need char = 'b'  Need char = 'b'
9216    
9217  / End of testinput2 /  /(?<a>)(?&)/
9218    Failed: subpattern name expected at offset 9
9219    
9220    /(?<abc>)(?&a)/
9221    Failed: reference to non-existent subpattern at offset 12
9222    
9223    /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
9224    Failed: reference to non-existent subpattern at offset 32
9225    
9226    /(?+-a)/
9227    Failed: digit expected after (?+ at offset 3
9228    
9229    /(?-+a)/
9230    Failed: unrecognized character after (? or (?- at offset 3
9231    
9232    /(?(-1))/
9233    Failed: reference to non-existent subpattern at offset 6
9234    
9235    /(?(+10))/
9236    Failed: reference to non-existent subpattern at offset 7
9237    
9238    /(?(10))/
9239    Failed: reference to non-existent subpattern at offset 6
9240    
9241    /(?(+2))()()/
9242    
9243    /(?(2))()()/
9244    
9245    /\k''/
9246    Failed: subpattern name expected at offset 3
9247    
9248    /\k<>/
9249    Failed: subpattern name expected at offset 3
9250    
9251    /\k{}/
9252    Failed: subpattern name expected at offset 3
9253    
9254    /\k/
9255    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9256    
9257    /\kabc/
9258    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9259    
9260    /(?P=)/
9261    Failed: subpattern name expected at offset 4
9262    
9263    /(?P>)/
9264    Failed: subpattern name expected at offset 4
9265    
9266    /(?!\w)(?R)/
9267    Failed: recursive call could loop indefinitely at offset 9
9268    
9269    /(?=\w)(?R)/
9270    Failed: recursive call could loop indefinitely at offset 9
9271    
9272    /(?<!\w)(?R)/
9273    Failed: recursive call could loop indefinitely at offset 10
9274    
9275    /(?<=\w)(?R)/
9276    Failed: recursive call could loop indefinitely at offset 10
9277    
9278    /[[:foo:]]/
9279    Failed: unknown POSIX class name at offset 3
9280    
9281    /[[:1234:]]/
9282    Failed: unknown POSIX class name at offset 3
9283    
9284    /[[:f\oo:]]/
9285    Failed: unknown POSIX class name at offset 3
9286    
9287    /[[: :]]/
9288    Failed: unknown POSIX class name at offset 3
9289    
9290    /[[:...:]]/
9291    Failed: unknown POSIX class name at offset 3
9292    
9293    /[[:l\ower:]]/
9294    Failed: unknown POSIX class name at offset 3
9295    
9296    /[[:abc\:]]/
9297    Failed: unknown POSIX class name at offset 3
9298    
9299    /[abc[:x\]pqr:]]/
9300    Failed: unknown POSIX class name at offset 6
9301    
9302    /[[:a\dz:]]/
9303    Failed: unknown POSIX class name at offset 3
9304    
9305    /(^(a|b\g<-1'c))/
9306    Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
9307    
9308    /^(?+1)(?<a>x|y){0}z/
9309        xzxx
9310     0: xz
9311        yzyy
9312     0: yz
9313        ** Failers
9314    No match
9315        xxz
9316    No match
9317    
9318    /(\3)(\1)(a)/
9319        cat
9320    No match
9321    
9322    /(\3)(\1)(a)/<JS>
9323        cat
9324     0: a
9325     1:
9326     2:
9327     3: a
9328    
9329    /TA]/
9330        The ACTA] comes
9331     0: TA]
9332    
9333    /TA]/<JS>
9334    Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
9335    
9336    /(?2)[]a()b](abc)/
9337    Failed: reference to non-existent subpattern at offset 3
9338    
9339    /(?2)[^]a()b](abc)/
9340    Failed: reference to non-existent subpattern at offset 3
9341    
9342    /(?1)[]a()b](abc)/
9343        abcbabc
9344     0: abcbabc
9345     1: abc
9346        ** Failers
9347    No match
9348        abcXabc
9349    No match
9350    
9351    /(?1)[^]a()b](abc)/
9352        abcXabc
9353     0: abcXabc
9354     1: abc
9355        ** Failers
9356    No match
9357        abcbabc
9358    No match
9359    
9360    /(?2)[]a()b](abc)(xyz)/
9361        xyzbabcxyz
9362     0: xyzbabcxyz
9363     1: abc
9364     2: xyz
9365    
9366    /(?&N)[]a(?<N>)](?<M>abc)/
9367    Failed: reference to non-existent subpattern at offset 4
9368    
9369    /(?&N)[]a(?<N>)](abc)/
9370    Failed: reference to non-existent subpattern at offset 4
9371    
9372    /a[]b/
9373    Failed: missing terminating ] for character class at offset 4
9374    
9375    /a[^]b/
9376    Failed: missing terminating ] for character class at offset 5
9377    
9378    /a[]b/<JS>
9379        ** Failers
9380    No match
9381        ab
9382    No match
9383    
9384    /a[]+b/<JS>
9385        ** Failers
9386    No match
9387        ab
9388    No match
9389    
9390    /a[]*+b/<JS>
9391        ** Failers
9392    No match
9393        ab
9394    No match
9395    
9396    /a[^]b/<JS>
9397        aXb
9398     0: aXb
9399        a\nb
9400     0: a\x0ab
9401        ** Failers
9402    No match
9403        ab
9404    No match
9405    
9406    /a[^]+b/<JS>
9407        aXb
9408     0: aXb
9409        a\nX\nXb
9410     0: a\x0aX\x0aXb
9411        ** Failers
9412    No match
9413        ab
9414    No match
9415    
9416    /a(?!)+b/
9417    Failed: nothing to repeat at offset 5
9418    
9419    /a(*FAIL)+b/
9420    Failed: nothing to repeat at offset 8
9421    
9422    /(abc|pqr|123){0}[xyz]/SI
9423    Capturing subpattern count = 1
9424    No options
9425    No first char
9426    No need char
9427    Subject length lower bound = 1
9428    Starting byte set: x y z
9429    
9430    /(?(?=.*b)b|^)/CI
9431    Capturing subpattern count = 0
9432    Options:
9433    No first char
9434    No need char
9435       adc
9436    --->adc
9437     +0 ^       (?(?=.*b)b|^)
9438     +2 ^       (?=.*b)
9439     +5 ^       .*
9440     +7 ^  ^    b
9441     +7 ^ ^     b
9442     +7 ^^      b
9443     +7 ^       b
9444    +12 ^       )
9445    +13 ^
9446     0:
9447       abc
9448    --->abc
9449     +0 ^       (?(?=.*b)b|^)
9450     +2 ^       (?=.*b)
9451     +5 ^       .*
9452     +7 ^  ^    b
9453     +7 ^ ^     b
9454     +7 ^^      b
9455     +8 ^ ^     )
9456     +9 ^       b
9457     +0  ^      (?(?=.*b)b|^)
9458     +2  ^      (?=.*b)
9459     +5  ^      .*
9460     +7  ^ ^    b
9461     +7  ^^     b
9462     +7  ^      b
9463     +8  ^^     )
9464     +9  ^      b
9465    +10  ^^     |
9466    +13  ^^
9467     0: b
9468    
9469    /(?(?=b).*b|^d)/I
9470    Capturing subpattern count = 0
9471    No options
9472    No first char
9473    No need char
9474    
9475    /(?(?=.*b).*b|^d)/I
9476    Capturing subpattern count = 0
9477    No options
9478    First char at start or follows newline
9479    No need char
9480    
9481    /a?|b?/P
9482        abc
9483     0: a
9484        ** Failers
9485     0:
9486        ddd\N
9487    No match: POSIX code 17: match failed
9488    
9489    /xyz/C
9490      xyz
9491    --->xyz
9492     +0 ^       x
9493     +1 ^^      y
9494     +2 ^ ^     z
9495     +3 ^  ^
9496     0: xyz
9497      abcxyz
9498    --->abcxyz
9499     +0    ^       x
9500     +1    ^^      y
9501     +2    ^ ^     z
9502     +3    ^  ^
9503     0: xyz
9504      abcxyz\Y
9505    --->abcxyz
9506     +0 ^          x
9507     +0  ^         x
9508     +0   ^        x
9509     +0    ^       x
9510     +1    ^^      y
9511     +2    ^ ^     z
9512     +3    ^  ^
9513     0: xyz
9514      ** Failers
9515    No match
9516      abc
9517    No match
9518      abc\Y
9519    --->abc
9520     +0 ^       x
9521     +0  ^      x
9522     +0   ^     x
9523     +0    ^    x
9524    No match
9525      abcxypqr
9526    No match
9527      abcxypqr\Y
9528    --->abcxypqr
9529     +0 ^            x
9530     +0  ^           x
9531     +0   ^          x
9532     +0    ^         x
9533     +1    ^^        y
9534     +2    ^ ^       z
9535     +0     ^        x
9536     +0      ^       x
9537     +0       ^      x
9538     +0        ^     x
9539     +0         ^    x
9540    No match
9541    
9542    /(*NO_START_OPT)xyz/C
9543      abcxyz
9544    --->abcxyz
9545    +15 ^          x
9546    +15  ^         x
9547    +15   ^        x
9548    +15    ^       x
9549    +16    ^^      y
9550    +17    ^ ^     z
9551    +18    ^  ^
9552     0: xyz
9553    
9554    /xyz/CY
9555      abcxyz
9556    --->abcxyz
9557     +0 ^          x
9558     +0  ^         x
9559     +0   ^        x
9560     +0    ^       x
9561     +1    ^^      y
9562     +2    ^ ^     z
9563     +3    ^  ^
9564     0: xyz
9565    
9566    /^"((?(?=[a])[^"])|b)*"$/C
9567        "ab"
9568    --->"ab"
9569     +0 ^        ^
9570     +1 ^        "
9571     +2 ^^       ((?(?=[a])[^"])|b)*
9572     +3 ^^       (?(?=[a])[^"])
9573     +5 ^^       (?=[a])
9574     +8 ^^       [a]
9575    +11 ^ ^      )
9576    +12 ^^       [^"]
9577    +16 ^ ^      )
9578    +17 ^ ^      |
9579     +3 ^ ^      (?(?=[a])[^"])
9580     +5 ^ ^      (?=[a])
9581     +8 ^ ^      [a]
9582    +21 ^ ^      "
9583    +18 ^ ^      b
9584    +19 ^  ^     )
9585     +3 ^  ^     (?(?=[a])[^"])
9586     +5 ^  ^     (?=[a])
9587     +8 ^  ^     [a]
9588    +21 ^  ^     "
9589    +22 ^   ^    $
9590    +23 ^   ^
9591     0: "ab"
9592     1:
9593    
9594    /^"((?(?=[a])[^"])|b)*"$/
9595        "ab"
9596     0: "ab"
9597     1:
9598    
9599    /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9600    Failed: reference to non-existent subpattern at offset 5
9601    
9602    /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9603        XYabcdY
9604     0: XYabcdY
9605     1: a
9606     2: b
9607     3: c
9608     4: d
9609     5: Y
9610    
9611    /Xa{2,4}b/
9612        X\P
9613    Partial match: X
9614        Xa\P
9615    Partial match: Xa
9616        Xaa\P
9617    Partial match: Xaa
9618        Xaaa\P
9619    Partial match: Xaaa
9620        Xaaaa\P
9621    Partial match: Xaaaa
9622    
9623    /Xa{2,4}?b/
9624        X\P
9625    Partial match: X
9626        Xa\P
9627    Partial match: Xa
9628        Xaa\P
9629    Partial match: Xaa
9630        Xaaa\P
9631    Partial match: Xaaa
9632        Xaaaa\P
9633    Partial match: Xaaaa
9634    
9635    /Xa{2,4}+b/
9636        X\P
9637    Partial match: X
9638        Xa\P
9639    Partial match: Xa
9640        Xaa\P
9641    Partial match: Xaa
9642        Xaaa\P
9643    Partial match: Xaaa
9644        Xaaaa\P
9645    Partial match: Xaaaa
9646    
9647    /X\d{2,4}b/
9648        X\P
9649    Partial match: X
9650        X3\P
9651    Partial match: X3
9652        X33\P
9653    Partial match: X33
9654        X333\P
9655    Partial match: X333
9656        X3333\P
9657    Partial match: X3333
9658    
9659    /X\d{2,4}?b/
9660        X\P
9661    Partial match: X
9662        X3\P
9663    Partial match: X3
9664        X33\P
9665    Partial match: X33
9666        X333\P
9667    Partial match: X333
9668        X3333\P
9669    Partial match: X3333
9670    
9671    /X\d{2,4}+b/
9672        X\P
9673    Partial match: X
9674        X3\P
9675    Partial match: X3
9676        X33\P
9677    Partial match: X33
9678        X333\P
9679    Partial match: X333
9680        X3333\P
9681    Partial match: X3333
9682    
9683    /X\D{2,4}b/
9684        X\P
9685    Partial match: X
9686        Xa\P
9687    Partial match: Xa
9688        Xaa\P
9689    Partial match: Xaa
9690        Xaaa\P
9691    Partial match: Xaaa
9692        Xaaaa\P
9693    Partial match: Xaaaa
9694    
9695    /X\D{2,4}?b/
9696        X\P
9697    Partial match: X
9698        Xa\P
9699    Partial match: Xa
9700        Xaa\P
9701    Partial match: Xaa
9702        Xaaa\P
9703    Partial match: Xaaa
9704        Xaaaa\P
9705    Partial match: Xaaaa
9706    
9707    /X\D{2,4}+b/
9708        X\P
9709    Partial match: X
9710        Xa\P
9711    Partial match: Xa
9712        Xaa\P
9713    Partial match: Xaa
9714        Xaaa\P
9715    Partial match: Xaaa
9716        Xaaaa\P
9717    Partial match: Xaaaa
9718    
9719    /X[abc]{2,4}b/
9720        X\P
9721    Partial match: X
9722        Xa\P
9723    Partial match: Xa
9724        Xaa\P
9725    Partial match: Xaa
9726        Xaaa\P
9727    Partial match: Xaaa
9728        Xaaaa\P
9729    Partial match: Xaaaa
9730    
9731    /X[abc]{2,4}?b/
9732        X\P
9733    Partial match: X
9734        Xa\P
9735    Partial match: Xa
9736        Xaa\P
9737    Partial match: Xaa
9738        Xaaa\P
9739    Partial match: Xaaa
9740        Xaaaa\P
9741    Partial match: Xaaaa
9742    
9743    /X[abc]{2,4}+b/
9744        X\P
9745    Partial match: X
9746        Xa\P
9747    Partial match: Xa
9748        Xaa\P
9749    Partial match: Xaa
9750        Xaaa\P
9751    Partial match: Xaaa
9752        Xaaaa\P
9753    Partial match: Xaaaa
9754    
9755    /X[^a]{2,4}b/
9756        X\P
9757    Partial match: X
9758        Xz\P
9759    Partial match: Xz
9760        Xzz\P
9761    Partial match: Xzz
9762        Xzzz\P
9763    Partial match: Xzzz
9764        Xzzzz\P
9765    Partial match: Xzzzz
9766    
9767    /X[^a]{2,4}?b/
9768        X\P
9769    Partial match: X
9770        Xz\P
9771    Partial match: Xz
9772        Xzz\P
9773    Partial match: Xzz
9774        Xzzz\P
9775    Partial match: Xzzz
9776        Xzzzz\P
9777    Partial match: Xzzzz
9778    
9779    /X[^a]{2,4}+b/
9780        X\P
9781    Partial match: X
9782        Xz\P
9783    Partial match: Xz
9784        Xzz\P
9785    Partial match: Xzz
9786        Xzzz\P
9787    Partial match: Xzzz
9788        Xzzzz\P
9789    Partial match: Xzzzz
9790    
9791    /(Y)X\1{2,4}b/
9792        YX\P
9793    Partial match: YX
9794        YXY\P
9795    Partial match: YXY
9796        YXYY\P
9797    Partial match: YXYY
9798        YXYYY\P
9799    Partial match: YXYYY
9800        YXYYYY\P
9801    Partial match: YXYYYY
9802    
9803    /(Y)X\1{2,4}?b/
9804        YX\P
9805    Partial match: YX
9806        YXY\P
9807    Partial match: YXY
9808        YXYY\P
9809    Partial match: YXYY
9810        YXYYY\P
9811    Partial match: YXYYY
9812        YXYYYY\P
9813    Partial match: YXYYYY
9814    
9815    /(Y)X\1{2,4}+b/
9816        YX\P
9817    Partial match: YX
9818        YXY\P
9819    Partial match: YXY
9820        YXYY\P
9821    Partial match: YXYY
9822        YXYYY\P
9823    Partial match: YXYYY
9824        YXYYYY\P
9825    Partial match: YXYYYY
9826    
9827    /\++\KZ|\d+X|9+Y/
9828        ++++123999\P
9829    Partial match: 123999
9830        ++++123999Y\P
9831     0: 999Y
9832        ++++Z1234\P
9833     0: Z
9834    
9835    /Z(*F)/
9836        Z\P
9837    No match
9838        ZA\P
9839    No match
9840    
9841    /Z(?!)/
9842        Z\P
9843    No match
9844        ZA\P
9845    No match
9846    
9847    /dog(sbody)?/
9848        dogs\P
9849     0: dog
9850        dogs\P\P
9851    Partial match: dogs
9852    
9853    /dog(sbody)??/
9854        dogs\P
9855     0: dog
9856        dogs\P\P
9857     0: dog
9858    
9859    /dog|dogsbody/
9860        dogs\P
9861     0: dog
9862        dogs\P\P
9863     0: dog
9864    
9865    /dogsbody|dog/
9866        dogs\P
9867     0: dog
9868        dogs\P\P
9869    Partial match: dogs
9870    
9871    /\bthe cat\b/
9872        the cat\P
9873     0: the cat
9874        the cat\P\P
9875    Partial match: the cat
9876    
9877    /abc/
9878       abc\P
9879     0: abc
9880       abc\P\P
9881     0: abc
9882    
9883    /\w+A/P
9884       CDAAAAB
9885     0: CDAAAA
9886    
9887    /\w+A/PU
9888       CDAAAAB
9889     0: CDA
9890    
9891    /abc\K123/
9892        xyzabc123pqr
9893     0: 123
9894        xyzabc12\P
9895    Partial match: abc12
9896        xyzabc12\P\P
9897    Partial match: abc12
9898    
9899    /(?<=abc)123/
9900        xyzabc123pqr
9901     0: 123
9902        xyzabc12\P
9903    Partial match: abc12
9904        xyzabc12\P\P
9905    Partial match: abc12
9906    
9907    /\babc\b/
9908        +++abc+++
9909     0: abc
9910        +++ab\P
9911    Partial match: +ab
9912        +++ab\P\P
9913    Partial match: +ab
9914    
9915    /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9916    ------------------------------------------------------------------
9917            Bra
9918            Recurse
9919            Recurse
9920            Cond
9921            Cond def
9922            CBra 1
9923            <
9924            [^m]
9925            [^>]
9926            >
9927            [^<]
9928            Ket
9929            CBra 2
9930            \w*+
9931            Ket
9932            Ket
9933            Ket
9934            End
9935    ------------------------------------------------------------------
9936    
9937    /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9938    ------------------------------------------------------------------
9939            Bra
9940            Recurse
9941            Recurse
9942            Cond
9943            Cond def
9944            CBra 1
9945            <
9946            [\x00-/:-\xff] (neg)
9947            [^>]
9948            >
9949            [^<]
9950            Ket
9951            CBra 2
9952            \w*+
9953            Ket
9954            Ket
9955            Ket
9956            End
9957    ------------------------------------------------------------------
9958    
9959    /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9960    ------------------------------------------------------------------
9961            Bra
9962            CBra 1
9963            ab
9964            Ket
9965            CBra 2
9966            x
9967            CBra 3
9968            y
9969            Ket
9970            z
9971            CBra 4
9972            cd
9973            Close 4
9974            Close 2
9975            *ACCEPT
9976            Ket
9977            Ket
9978            pq
9979            Ket
9980            End
9981    ------------------------------------------------------------------
9982    
9983    /abc\K/+
9984        abcdef
9985     0:
9986     0+ def
9987        abcdef\N\N
9988     0:
9989     0+ def
9990        xyzabcdef\N\N
9991     0:
9992     0+ def
9993        ** Failers
9994    No match
9995        abcdef\N
9996    No match
9997        xyzabcdef\N
9998    No match
9999    
10000    /^(?:(?=abc)|abc\K)/+
10001        abcdef
10002     0:
10003     0+ abcdef
10004        abcdef\N\N
10005     0:
10006     0+ def
10007        ** Failers
10008    No match
10009        abcdef\N
10010    No match
10011    
10012    /a?b?/+
10013        xyz
10014     0:
10015     0+ xyz
10016        xyzabc
10017     0:
10018     0+ xyzabc
10019        xyzabc\N
10020     0: ab
10021     0+ c
10022        xyzabc\N\N
10023     0:
10024     0+ yzabc
10025        xyz\N\N
10026     0:
10027     0+ yz
10028        ** Failers
10029     0:
10030     0+ ** Failers
10031        xyz\N
10032    No match
10033    
10034    /^a?b?/+
10035        xyz
10036     0:
10037     0+ xyz
10038        xyzabc
10039     0:
10040     0+ xyzabc
10041        ** Failers
10042     0:
10043     0+ ** Failers
10044