/[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 53 by nigel, Sat Feb 24 21:39:42 2007 UTC revision 87 by nigel, Sat Feb 24 21:41:21 2007 UTC
# Line 1  Line 1 
 PCRE version 3.5 15-Aug-2001  
   
1  /(a)b|/  /(a)b|/
2  Capturing subpattern count = 1  Capturing subpattern count = 1
3  No options  No options
# Line 28  No match Line 26  No match
26  Capturing subpattern count = 0  Capturing subpattern count = 0
27  Options: anchored  Options: anchored
28  No first char  No first char
29  Need char = 'c'  No need char
30      abc      abc
31   0: abc   0: abc
32      \Aabc      \Aabc
# Line 42  No match Line 40  No match
40    
41  /a+bc/  /a+bc/
42  Capturing subpattern count = 0  Capturing subpattern count = 0
43    Partial matching not supported
44  No options  No options
45  First char = 'a'  First char = 'a'
46  Need char = 'c'  Need char = 'c'
47    
48  /a*bc/  /a*bc/
49  Capturing subpattern count = 0  Capturing subpattern count = 0
50    Partial matching not supported
51  No options  No options
52  No first char  No first char
53  Need char = 'c'  Need char = 'c'
54    
55  /a{3}bc/  /a{3}bc/
56  Capturing subpattern count = 0  Capturing subpattern count = 0
57    Partial matching not supported
58  No options  No options
59  First char = 'a'  First char = 'a'
60  Need char = 'c'  Need char = 'c'
61    
62  /(abc|a+z)/  /(abc|a+z)/
63  Capturing subpattern count = 1  Capturing subpattern count = 1
64    Partial matching not supported
65  No options  No options
66  First char = 'a'  First char = 'a'
67  No need char  No need char
# Line 68  No need char Line 70  No need char
70  Capturing subpattern count = 0  Capturing subpattern count = 0
71  Options: anchored  Options: anchored
72  No first char  No first char
73  Need char = 'c'  No need char
74      abc      abc
75   0: abc   0: abc
76      *** Failers      *** Failers
# Line 91  Failed: number too big in {} quantifier Line 93  Failed: number too big in {} quantifier
93  /[abcd/  /[abcd/
94  Failed: missing terminating ] for character class at offset 5  Failed: missing terminating ] for character class at offset 5
95    
96  /[\B]/  /(?X)[\B]/
97  Failed: invalid escape sequence in character class at offset 2  Failed: invalid escape sequence in character class at offset 6
98    
99  /[z-a]/  /[z-a]/
100  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
# Line 111  Failed: unrecognized character after (? Line 113  Failed: unrecognized character after (?
113    
114  /.*b/  /.*b/
115  Capturing subpattern count = 0  Capturing subpattern count = 0
116    Partial matching not supported
117  No options  No options
118  First char at start or follows \n  First char at start or follows \n
119  Need char = 'b'  Need char = 'b'
120    
121  /.*?b/  /.*?b/
122  Capturing subpattern count = 0  Capturing subpattern count = 0
123    Partial matching not supported
124  No options  No options
125  First char at start or follows \n  First char at start or follows \n
126  Need char = 'b'  Need char = 'b'
# Line 136  Capturing subpattern count = 0 Line 140  Capturing subpattern count = 0
140  No options  No options
141  No first char  No first char
142  No need char  No need char
143  Starting character set: c d e  Starting byte set: c d e
144      this sentence eventually mentions a cat      this sentence eventually mentions a cat
145   0: cat   0: cat
146      this sentences rambles on and on for a while and then reaches elephant      this sentences rambles on and on for a while and then reaches elephant
# Line 147  Capturing subpattern count = 0 Line 151  Capturing subpattern count = 0
151  Options: caseless  Options: caseless
152  No first char  No first char
153  No need char  No need char
154  Starting character set: C D E c d e  Starting byte set: C D E c d e
155      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
156   0: CAT   0: CAT
157      this sentences rambles on and on for a while to elephant ElePhant      this sentences rambles on and on for a while to elephant ElePhant
# Line 158  Capturing subpattern count = 0 Line 162  Capturing subpattern count = 0
162  No options  No options
163  No first char  No first char
164  No need char  No need char
165  Starting character set: a b c d  Starting byte set: a b c d
166    
167  /(a|[^\dZ])/S  /(a|[^\dZ])/S
168  Capturing subpattern count = 1  Capturing subpattern count = 1
169  No options  No options
170  No first char  No first char
171  No need char  No need char
172  Starting character 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
173    \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
174    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
175    ? @ 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 [ \ ] ^ _ ` a b c d    ? @ 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 [ \ ] ^ _ ` a b c d
# Line 185  Capturing subpattern count = 1 Line 189  Capturing subpattern count = 1
189  No options  No options
190  No first char  No first char
191  No need char  No need char
192  Starting character set: \x09 \x0a \x0b \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
193    
194  /(ab\2)/  /(ab\2)/
195  Failed: back reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
196    
197  /{4,5}abc/  /{4,5}abc/
198  Failed: nothing to repeat at offset 4  Failed: nothing to repeat at offset 4
# Line 281  No match Line 285  No match
285  No match  No match
286    
287  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
288  Failed: back reference to non-existent subpattern at offset 17  Failed: reference to non-existent subpattern at offset 17
289    
290  /the quick brown fox/  /the quick brown fox/
291  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 297  Need char = 'x' Line 301  Need char = 'x'
301  Capturing subpattern count = 0  Capturing subpattern count = 0
302  Options: anchored  Options: anchored
303  No first char  No first char
304  Need char = 'x'  No need char
305      the quick brown fox      the quick brown fox
306   0: the quick brown fox   0: the quick brown fox
307      *** Failers      *** Failers
# Line 320  No need char Line 324  No need char
324    
325  /.*((abc)$|(def))/  /.*((abc)$|(def))/
326  Capturing subpattern count = 3  Capturing subpattern count = 3
327    Partial matching not supported
328  No options  No options
329  First char at start or follows \n  First char at start or follows \n
330  No need char  No need char
# Line 396  Failed: missing terminating ] for charac Line 401  Failed: missing terminating ] for charac
401    
402  /[^aeiou ]{3,}/  /[^aeiou ]{3,}/
403  Capturing subpattern count = 0  Capturing subpattern count = 0
404    Partial matching not supported
405  No options  No options
406  No first char  No first char
407  No need char  No need char
# Line 404  No need char Line 410  No need char
410    
411  /<.*>/  /<.*>/
412  Capturing subpattern count = 0  Capturing subpattern count = 0
413    Partial matching not supported
414  No options  No options
415  First char = '<'  First char = '<'
416  Need char = '>'  Need char = '>'
# Line 412  Need char = '>' Line 419  Need char = '>'
419    
420  /<.*?>/  /<.*?>/
421  Capturing subpattern count = 0  Capturing subpattern count = 0
422    Partial matching not supported
423  No options  No options
424  First char = '<'  First char = '<'
425  Need char = '>'  Need char = '>'
# Line 420  Need char = '>' Line 428  Need char = '>'
428    
429  /<.*>/U  /<.*>/U
430  Capturing subpattern count = 0  Capturing subpattern count = 0
431    Partial matching not supported
432  Options: ungreedy  Options: ungreedy
433  First char = '<'  First char = '<'
434  Need char = '>'  Need char = '>'
435      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
436   0: <def>   0: <def>
437    
438  /<.*>(?U)/  /(?U)<.*>/
439  Capturing subpattern count = 0  Capturing subpattern count = 0
440    Partial matching not supported
441  Options: ungreedy  Options: ungreedy
442  First char = '<'  First char = '<'
443  Need char = '>'  Need char = '>'
# Line 436  Need char = '>' Line 446  Need char = '>'
446    
447  /<.*?>/U  /<.*?>/U
448  Capturing subpattern count = 0  Capturing subpattern count = 0
449    Partial matching not supported
450  Options: ungreedy  Options: ungreedy
451  First char = '<'  First char = '<'
452  Need char = '>'  Need char = '>'
# Line 444  Need char = '>' Line 455  Need char = '>'
455    
456  /={3,}/U  /={3,}/U
457  Capturing subpattern count = 0  Capturing subpattern count = 0
458    Partial matching not supported
459  Options: ungreedy  Options: ungreedy
460  First char = '='  First char = '='
461  Need char = '='  Need char = '='
# Line 452  Need char = '=' Line 464  Need char = '='
464    
465  /(?U)={3,}?/  /(?U)={3,}?/
466  Capturing subpattern count = 0  Capturing subpattern count = 0
467    Partial matching not supported
468  Options: ungreedy  Options: ungreedy
469  First char = '='  First char = '='
470  Need char = '='  Need char = '='
# Line 486  Failed: lookbehind assertion is not fixe Line 499  Failed: lookbehind assertion is not fixe
499  /(?i)abc/  /(?i)abc/
500  Capturing subpattern count = 0  Capturing subpattern count = 0
501  Options: caseless  Options: caseless
502  First char = 'a'  First char = 'a' (caseless)
503  Need char = 'c'  Need char = 'c' (caseless)
504    
505  /(a|(?m)a)/  /(a|(?m)a)/
506  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 499  No need char Line 512  No need char
512  Capturing subpattern count = 0  Capturing subpattern count = 0
513  Options: anchored caseless  Options: anchored caseless
514  No first char  No first char
515  Need char = '4'  No need char
516    
517  /(^b|(?i)^d)/  /(^b|(?i)^d)/
518  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 510  No need char Line 523  No need char
523    
524  /(?s).*/  /(?s).*/
525  Capturing subpattern count = 0  Capturing subpattern count = 0
526    Partial matching not supported
527  Options: anchored dotall  Options: anchored dotall
528  No first char  No first char
529  No need char  No need char
# Line 519  Capturing subpattern count = 0 Line 533  Capturing subpattern count = 0
533  No options  No options
534  No first char  No first char
535  No need char  No need char
536  Starting character set: a b c d  Starting byte set: a b c d
537    
538  /(?i)[abcd]/S  /(?i)[abcd]/S
539  Capturing subpattern count = 0  Capturing subpattern count = 0
540  Options: caseless  Options: caseless
541  No first char  No first char
542  No need char  No need char
543  Starting character set: A B C D a b c d  Starting byte set: A B C D a b c d
544    
545  /(?m)[xy]|(b|c)/S  /(?m)[xy]|(b|c)/S
546  Capturing subpattern count = 1  Capturing subpattern count = 1
547  Options: multiline  Options: multiline
548  No first char  No first char
549  No need char  No need char
550  Starting character set: b c x y  Starting byte set: b c x y
551    
552  /(^a|^b)/m  /(^a|^b)/m
553  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 563  Failed: assertion expected after (?( at Line 577  Failed: assertion expected after (?( at
577  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
578    
579  /(?(?<ab))/  /(?(?<ab))/
580  Failed: unrecognized character after (?< at offset 2  Failed: unrecognized character after (?< at offset 5
581    
582  /((?s)blah)\s+\1/  /((?s)blah)\s+\1/
583  Capturing subpattern count = 1  Capturing subpattern count = 1
584  Max back reference = 1  Max back reference = 1
585    Partial matching not supported
586  No options  No options
587  First char = 'b'  First char = 'b'
588  Need char = 'h'  Need char = 'h'
# Line 575  Need char = 'h' Line 590  Need char = 'h'
590  /((?i)blah)\s+\1/  /((?i)blah)\s+\1/
591  Capturing subpattern count = 1  Capturing subpattern count = 1
592  Max back reference = 1  Max back reference = 1
593    Partial matching not supported
594  No options  No options
595  Case state changes  Case state changes
596  No first char  First char = 'b' (caseless)
597  Need char = 'h'  Need char = 'h' (caseless)
598    
599  /((?i)b)/DS  /((?i)b)/DS
600  ------------------------------------------------------------------  ------------------------------------------------------------------
601    0  16 Bra 0    0  15 Bra 0
602    3   8 Bra 1    3   7 Bra 1
603    6  01 Opt    6  01 Opt
604    8   1 b    8  NC b
605   11   8 Ket   10   7 Ket
606   14  00 Opt   13  00 Opt
607   16  16 Ket   15  15 Ket
608   19     End   18     End
609  ------------------------------------------------------------------  ------------------------------------------------------------------
610  Capturing subpattern count = 1  Capturing subpattern count = 1
611  No options  No options
612  Case state changes  Case state changes
613  No first char  First char = 'b' (caseless)
614  Need char = 'b'  No need char
615  Starting character set: B b  Study returned NULL
616    
617  /(a*b|(?i:c*(?-i)d))/S  /(a*b|(?i:c*(?-i)d))/S
618  Capturing subpattern count = 1  Capturing subpattern count = 1
619    Partial matching not supported
620  No options  No options
621  Case state changes  Case state changes
622  No first char  No first char
623  No need char  No need char
624  Starting character set: C a b c d  Starting byte set: C a b c d
625    
626  /a$/  /a$/
627  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 642  No match Line 659  No match
659  Capturing subpattern count = 0  Capturing subpattern count = 0
660  Options: anchored multiline  Options: anchored multiline
661  No first char  No first char
662  Need char = 'c'  No need char
663    
664  /^abc/m  /^abc/m
665  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 652  Need char = 'c' Line 669  Need char = 'c'
669    
670  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
671  Capturing subpattern count = 5  Capturing subpattern count = 5
672    Partial matching not supported
673  Options: anchored  Options: anchored
674  No first char  No first char
675  Need char = 'a'  No need char
676    aaaaabbbbbcccccdef    aaaaabbbbbcccccdef
677   0: aaaaabbbbbcccccdef   0: aaaaabbbbbcccccdef
678   1: aaaaabbbbbcccccdef   1: aaaaabbbbbcccccdef
# Line 668  Capturing subpattern count = 0 Line 686  Capturing subpattern count = 0
686  No options  No options
687  No first char  No first char
688  No need char  No need char
689  Starting character set: a b  Starting byte set: a b
690    
691  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/S
692  Capturing subpattern count = 1  Capturing subpattern count = 1
693  No options  No options
694  No first char  No first char
695  Need char = 'a'  Need char = 'a'
696  Starting character set: a o  Starting byte set: a o
697    
698  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/S
699  Capturing subpattern count = 0  Capturing subpattern count = 0
700  No options  No options
701  No first char  No first char
702  No need char  No need char
703  Starting character set: a b  Starting byte set: a b
704    
705  /(?<=foo\n)^bar/m  /(?<=foo\n)^bar/m
706  Capturing subpattern count = 0  Capturing subpattern count = 0
707  Options: multiline  Options: multiline
708    No first char
709    Need char = 'r'
710        foo\nbarbar
711     0: bar
712        ***Failers
713    No match
714        rhubarb
715    No match
716        barbell
717    No match
718        abc\nbarton
719    No match
720    
721    /^(?<=foo\n)bar/m
722    Capturing subpattern count = 0
723    Options: multiline
724  First char at start or follows \n  First char at start or follows \n
725  Need char = 'r'  Need char = 'r'
726        foo\nbarbar
727     0: bar
728        ***Failers
729    No match
730        rhubarb
731    No match
732        barbell
733    No match
734        abc\nbarton
735    No match
736    
737  /(?>^abc)/m  /(?>^abc)/m
738  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 744  No need char Line 788  No need char
788    
789  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/
790  Capturing subpattern count = 2  Capturing subpattern count = 2
791    Partial matching not supported
792  No options  No options
793  First char at start or follows \n  First char at start or follows \n
794  No need char  No need char
# Line 825  Capturing subpattern count = 1 Line 870  Capturing subpattern count = 1
870  Max back reference = 1  Max back reference = 1
871  Options: anchored  Options: anchored
872  No first char  No first char
873  Need char = 'a'  No need char
874      aaaaaa      aaaaaa
875   0: aaaaaa   0: aaaaaa
876   1: aa   1: aa
# Line 864  Failed: nothing to repeat at offset 2 Line 909  Failed: nothing to repeat at offset 2
909  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
910    
911  /\1/  /\1/
912  Failed: back reference to non-existent subpattern at offset 2  Failed: reference to non-existent subpattern at offset 2
913    
914  /\2/  /\2/
915  Failed: back reference to non-existent subpattern at offset 2  Failed: reference to non-existent subpattern at offset 2
916    
917  /(a)|\2/  /(a)|\2/
918  Failed: back reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
919    
920  /a[b-a]/i  /a[b-a]/i
921  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
# Line 903  Failed: unmatched parentheses at offset Line 948  Failed: unmatched parentheses at offset
948  Failed: missing ) at offset 4  Failed: missing ) at offset 4
949    
950  /(?<%)b/  /(?<%)b/
951  Failed: unrecognized character after (?< at offset 0  Failed: unrecognized character after (?< at offset 3
952    
953  /a(?{)b/  /a(?{)b/
954  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? at offset 3
# Line 966  copy substring 5 failed -7 Line 1011  copy substring 5 failed -7
1011    
1012  /(.{20})/  /(.{20})/
1013  Capturing subpattern count = 1  Capturing subpattern count = 1
1014    Partial matching not supported
1015  No options  No options
1016  No first char  No first char
1017  No need char  No need char
# Line 983  copy substring 1 failed -6 Line 1029  copy substring 1 failed -6
1029    
1030  /(.{15})/  /(.{15})/
1031  Capturing subpattern count = 1  Capturing subpattern count = 1
1032    Partial matching not supported
1033  No options  No options
1034  No first char  No first char
1035  No need char  No need char
# Line 997  No need char Line 1044  No need char
1044    
1045  /(.{16})/  /(.{16})/
1046  Capturing subpattern count = 1  Capturing subpattern count = 1
1047    Partial matching not supported
1048  No options  No options
1049  No first char  No first char
1050  No need char  No need char
# Line 1015  copy substring 1 failed -6 Line 1063  copy substring 1 failed -6
1063  Capturing subpattern count = 3  Capturing subpattern count = 3
1064  Options: anchored  Options: anchored
1065  No first char  No first char
1066  Need char = 'f'  No need char
1067      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1068   0: adef   0: adef
1069   1: a   1: a
# Line 1053  get substring 4 failed -7 Line 1101  get substring 4 failed -7
1101  Capturing subpattern count = 0  Capturing subpattern count = 0
1102  Options: anchored  Options: anchored
1103  No first char  No first char
1104  Need char = 'f'  No need char
1105      abc\00def\L\C0      abc\00def\L\C0
1106   0: abc\x00def   0: abc\x00def
1107   0C abc (7)   0C abc (7)
# Line 1062  Need char = 'f' Line 1110  Need char = 'f'
1110  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1111  )((?:[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]+
1112  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/M
1113  Memory allocation (code space): 428  Memory allocation (code space): 432
1114  Capturing subpattern count = 8  Capturing subpattern count = 8
1115    Partial matching not supported
1116  No options  No options
1117  First char = 'w'  First char = 'w'
1118  Need char = 'd'  Need char = 'd'
1119    
1120  /.*X/D  /.*X/D
1121  ------------------------------------------------------------------  ------------------------------------------------------------------
1122    0   8 Bra 0    0   7 Bra 0
1123    3     Any*    3     Any*
1124    5   1 X    5     X
1125    8   8 Ket    7   7 Ket
1126   11     End   10     End
1127  ------------------------------------------------------------------  ------------------------------------------------------------------
1128  Capturing subpattern count = 0  Capturing subpattern count = 0
1129    Partial matching not supported
1130  No options  No options
1131  First char at start or follows \n  First char at start or follows \n
1132  Need char = 'X'  Need char = 'X'
1133    
1134  /.*X/Ds  /.*X/Ds
1135  ------------------------------------------------------------------  ------------------------------------------------------------------
1136    0   8 Bra 0    0   7 Bra 0
1137    3     Any*    3     Any*
1138    5   1 X    5     X
1139    8   8 Ket    7   7 Ket
1140   11     End   10     End
1141  ------------------------------------------------------------------  ------------------------------------------------------------------
1142  Capturing subpattern count = 0  Capturing subpattern count = 0
1143    Partial matching not supported
1144  Options: anchored dotall  Options: anchored dotall
1145  No first char  No first char
1146  Need char = 'X'  Need char = 'X'
1147    
1148  /(.*X|^B)/D  /(.*X|^B)/D
1149  ------------------------------------------------------------------  ------------------------------------------------------------------
1150    0  21 Bra 0    0  19 Bra 0
1151    3   8 Bra 1    3   7 Bra 1
1152    6     Any*    6     Any*
1153    8   1 X    8     X
1154   11   7 Alt   10   6 Alt
1155   14     ^   13     ^
1156   15   1 B   14     B
1157   18  15 Ket   16  13 Ket
1158   21  21 Ket   19  19 Ket
1159   24     End   22     End
1160  ------------------------------------------------------------------  ------------------------------------------------------------------
1161  Capturing subpattern count = 1  Capturing subpattern count = 1
1162    Partial matching not supported
1163  No options  No options
1164  First char at start or follows \n  First char at start or follows \n
1165  No need char  No need char
1166    
1167  /(.*X|^B)/Ds  /(.*X|^B)/Ds
1168  ------------------------------------------------------------------  ------------------------------------------------------------------
1169    0  21 Bra 0    0  19 Bra 0
1170    3   8 Bra 1    3   7 Bra 1
1171    6     Any*    6     Any*
1172    8   1 X    8     X
1173   11   7 Alt   10   6 Alt
1174   14     ^   13     ^
1175   15   1 B   14     B
1176   18  15 Ket   16  13 Ket
1177   21  21 Ket   19  19 Ket
1178   24     End   22     End
1179  ------------------------------------------------------------------  ------------------------------------------------------------------
1180  Capturing subpattern count = 1  Capturing subpattern count = 1
1181    Partial matching not supported
1182  Options: anchored dotall  Options: anchored dotall
1183  No first char  No first char
1184  No need char  No need char
1185    
1186  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/D
1187  ------------------------------------------------------------------  ------------------------------------------------------------------
1188    0  21 Bra 0    0  19 Bra 0
1189    3   8 Bra 1    3   7 Bra 1
1190    6     Any*    6     Any*
1191    8   1 X    8     X
1192   11   7 Alt   10   6 Alt
1193   14     ^   13     ^
1194   15   1 B   14     B
1195   18  15 Ket   16  13 Ket
1196   21  21 Ket   19  19 Ket
1197   24     End   22     End
1198  ------------------------------------------------------------------  ------------------------------------------------------------------
1199  Capturing subpattern count = 1  Capturing subpattern count = 1
1200    Partial matching not supported
1201  Options: anchored dotall  Options: anchored dotall
1202  No first char  No first char
1203  No need char  No need char
1204    
1205  /(?s:.*X|^B)/D  /(?s:.*X|^B)/D
1206  ------------------------------------------------------------------  ------------------------------------------------------------------
1207    0  27 Bra 0    0  25 Bra 0
1208    3  10 Bra 0    3   9 Bra 0
1209    6  04 Opt    6  04 Opt
1210    8     Any*    8     Any*
1211   10   1 X   10     X
1212   13   9 Alt   12   8 Alt
1213   16  04 Opt   15  04 Opt
1214   18     ^   17     ^
1215   19   1 B   18     B
1216   22  19 Ket   20  17 Ket
1217   25  00 Opt   23  00 Opt
1218   27  27 Ket   25  25 Ket
1219   30     End   28     End
1220  ------------------------------------------------------------------  ------------------------------------------------------------------
1221  Capturing subpattern count = 0  Capturing subpattern count = 0
1222    Partial matching not supported
1223  No options  No options
1224  First char at start or follows \n  First char at start or follows \n
1225  No need char  No need char
# Line 1242  Need char = 's' Line 1297  Need char = 's'
1297  Capturing subpattern count = 0  Capturing subpattern count = 0
1298  Options: anchored  Options: anchored
1299  No first char  No first char
1300  Need char = 's'  No need char
1301      ississippi      ississippi
1302   0: iss   0: iss
1303   0+ issippi   0+ issippi
1304    
1305  /.*iss/g+  /.*iss/g+
1306  Capturing subpattern count = 0  Capturing subpattern count = 0
1307    Partial matching not supported
1308  No options  No options
1309  First char at start or follows \n  First char at start or follows \n
1310  Need char = 's'  Need char = 's'
# Line 1292  Need char = 'i' Line 1348  Need char = 'i'
1348  Capturing subpattern count = 0  Capturing subpattern count = 0
1349  Options: anchored  Options: anchored
1350  No first char  No first char
1351  Need char = 's'  No need char
1352      Mississippi      Mississippi
1353   0: Mis   0: Mis
1354   0+ sissippi   0+ sissippi
# Line 1301  Need char = 's' Line 1357  Need char = 's'
1357  Capturing subpattern count = 0  Capturing subpattern count = 0
1358  Options: anchored  Options: anchored
1359  No first char  No first char
1360  Need char = 10  No need char
1361      ab\nab\ncd      ab\nab\ncd
1362   0: ab\x0a   0: ab\x0a
1363   0+ ab\x0acd   0+ ab\x0acd
# Line 1349  Need char = 'c' Line 1405  Need char = 'c'
1405    
1406  /a*/  /a*/
1407  Capturing subpattern count = 0  Capturing subpattern count = 0
1408    Partial matching not supported
1409  No options  No options
1410  No first char  No first char
1411  No need char  No need char
1412    
1413  /a+/  /a+/
1414  Capturing subpattern count = 0  Capturing subpattern count = 0
1415    Partial matching not supported
1416  No options  No options
1417  First char = 'a'  First char = 'a'
1418  No need char  No need char
1419    
1420  /(baa|a+)/  /(baa|a+)/
1421  Capturing subpattern count = 1  Capturing subpattern count = 1
1422    Partial matching not supported
1423  No options  No options
1424  No first char  No first char
1425  Need char = 'a'  Need char = 'a'
1426    
1427  /a{0,3}/  /a{0,3}/
1428  Capturing subpattern count = 0  Capturing subpattern count = 0
1429    Partial matching not supported
1430  No options  No options
1431  No first char  No first char
1432  No need char  No need char
1433    
1434  /baa{3,}/  /baa{3,}/
1435  Capturing subpattern count = 0  Capturing subpattern count = 0
1436    Partial matching not supported
1437  No options  No options
1438  First char = 'b'  First char = 'b'
1439  Need char = 'a'  Need char = 'a'
1440    
1441  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/
1442  Capturing subpattern count = 1  Capturing subpattern count = 1
1443    Partial matching not supported
1444  No options  No options
1445  First char = '"'  First char = '"'
1446  Need char = '"'  Need char = '"'
# Line 1433  Need char = 'b' Line 1495  Need char = 'b'
1495    
1496  /abc*/  /abc*/
1497  Capturing subpattern count = 0  Capturing subpattern count = 0
1498    Partial matching not supported
1499  No options  No options
1500  First char = 'a'  First char = 'a'
1501  Need char = 'b'  Need char = 'b'
1502    
1503  /ab.c*/  /ab.c*/
1504  Capturing subpattern count = 0  Capturing subpattern count = 0
1505    Partial matching not supported
1506  No options  No options
1507  First char = 'a'  First char = 'a'
1508  Need char = 'b'  Need char = 'b'
1509    
1510  /a.c*/  /a.c*/
1511  Capturing subpattern count = 0  Capturing subpattern count = 0
1512    Partial matching not supported
1513  No options  No options
1514  First char = 'a'  First char = 'a'
1515  No need char  No need char
1516    
1517  /.c*/  /.c*/
1518  Capturing subpattern count = 0  Capturing subpattern count = 0
1519    Partial matching not supported
1520  No options  No options
1521  No first char  No first char
1522  No need char  No need char
1523    
1524  /ac*/  /ac*/
1525  Capturing subpattern count = 0  Capturing subpattern count = 0
1526    Partial matching not supported
1527  No options  No options
1528  First char = 'a'  First char = 'a'
1529  No need char  No need char
1530    
1531  /(a.c*|b.c*)/  /(a.c*|b.c*)/
1532  Capturing subpattern count = 1  Capturing subpattern count = 1
1533    Partial matching not supported
1534  No options  No options
1535  No first char  No first char
1536  No need char  No need char
1537    
1538  /a.c*|aba/  /a.c*|aba/
1539  Capturing subpattern count = 0  Capturing subpattern count = 0
1540    Partial matching not supported
1541  No options  No options
1542  First char = 'a'  First char = 'a'
1543  No need char  No need char
1544    
1545  /.+a/  /.+a/
1546  Capturing subpattern count = 0  Capturing subpattern count = 0
1547    Partial matching not supported
1548  No options  No options
1549  No first char  No first char
1550  Need char = 'a'  Need char = 'a'
1551    
1552  /(?=abcda)a.*/  /(?=abcda)a.*/
1553  Capturing subpattern count = 0  Capturing subpattern count = 0
1554    Partial matching not supported
1555  No options  No options
1556  First char = 'a'  First char = 'a'
1557  No need char  Need char = 'a'
1558    
1559  /(?=a)a.*/  /(?=a)a.*/
1560  Capturing subpattern count = 0  Capturing subpattern count = 0
1561    Partial matching not supported
1562  No options  No options
1563  First char = 'a'  First char = 'a'
1564  No need char  No need char
# Line 1499  No need char Line 1571  No need char
1571    
1572  /a\d*/  /a\d*/
1573  Capturing subpattern count = 0  Capturing subpattern count = 0
1574    Partial matching not supported
1575  No options  No options
1576  First char = 'a'  First char = 'a'
1577  No need char  No need char
1578    
1579  /ab\d*/  /ab\d*/
1580  Capturing subpattern count = 0  Capturing subpattern count = 0
1581    Partial matching not supported
1582  No options  No options
1583  First char = 'a'  First char = 'a'
1584  Need char = 'b'  Need char = 'b'
# Line 1523  Need char = 'd' Line 1597  Need char = 'd'
1597    
1598  /ab\d+/  /ab\d+/
1599  Capturing subpattern count = 0  Capturing subpattern count = 0
1600    Partial matching not supported
1601  No options  No options
1602  First char = 'a'  First char = 'a'
1603  Need char = 'b'  Need char = 'b'
# Line 1640  Study returned NULL Line 1715  Study returned NULL
1715    \)            # Closing )    \)            # Closing )
1716    /x    /x
1717  Capturing subpattern count = 0  Capturing subpattern count = 0
1718    Partial matching not supported
1719  Options: extended  Options: extended
1720  First char = '('  First char = '('
1721  Need char = ')'  Need char = ')'
# Line 1668  No match Line 1744  No match
1744    
1745  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /xg
1746  Capturing subpattern count = 1  Capturing subpattern count = 1
1747    Partial matching not supported
1748  Options: extended  Options: extended
1749  First char = '('  First char = '('
1750  Need char = ')'  Need char = ')'
# Line 1682  Need char = ')' Line 1759  Need char = ')'
1759    
1760  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /x
1761  Capturing subpattern count = 0  Capturing subpattern count = 0
1762    Partial matching not supported
1763  Options: extended  Options: extended
1764  First char = '('  First char = '('
1765  Need char = ')'  Need char = ')'
# Line 1700  No match Line 1778  No match
1778    
1779  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /x
1780  Capturing subpattern count = 0  Capturing subpattern count = 0
1781    Partial matching not supported
1782  Options: extended  Options: extended
1783  First char = '('  First char = '('
1784  Need char = ')'  Need char = ')'
# Line 1710  Need char = ')' Line 1789  Need char = ')'
1789    
1790  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /x
1791  Capturing subpattern count = 1  Capturing subpattern count = 1
1792    Partial matching not supported
1793  Options: extended  Options: extended
1794  First char = '('  First char = '('
1795  Need char = ')'  Need char = ')'
# Line 1719  Need char = ')' Line 1799  Need char = ')'
1799    
1800  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x
1801  Capturing subpattern count = 2  Capturing subpattern count = 2
1802    Partial matching not supported
1803  Options: extended  Options: extended
1804  First char = '('  First char = '('
1805  Need char = ')'  Need char = ')'
# Line 1729  Need char = ')' Line 1810  Need char = ')'
1810    
1811  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x
1812  Capturing subpattern count = 3  Capturing subpattern count = 3
1813    Partial matching not supported
1814  Options: extended  Options: extended
1815  First char = '('  First char = '('
1816  Need char = ')'  Need char = ')'
# Line 1745  Need char = ')' Line 1827  Need char = ')'
1827    
1828  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x
1829  Capturing subpattern count = 3  Capturing subpattern count = 3
1830    Partial matching not supported
1831  Options: extended  Options: extended
1832  First char = '('  First char = '('
1833  Need char = ')'  Need char = ')'
# Line 1761  Need char = ')' Line 1844  Need char = ')'
1844    
1845  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x
1846  Capturing subpattern count = 11  Capturing subpattern count = 11
1847    Partial matching not supported
1848  Options: extended  Options: extended
1849  First char = '('  First char = '('
1850  Need char = ')'  Need char = ')'
# Line 1780  Need char = ')' Line 1864  Need char = ')'
1864    
1865  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x
1866  Capturing subpattern count = 3  Capturing subpattern count = 3
1867    Partial matching not supported
1868  Options: extended  Options: extended
1869  First char = '('  First char = '('
1870  Need char = ')'  Need char = ')'
# Line 1787  Need char = ')' Line 1872  Need char = ')'
1872   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1873   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1874   2: 123   2: 123
1875   3: <p>qrs   3: <unset>
1876    
1877  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x
1878  Capturing subpattern count = 3  Capturing subpattern count = 3
1879    Partial matching not supported
1880  Options: extended  Options: extended
1881  First char = '('  First char = '('
1882  Need char = ')'  Need char = ')'
# Line 1818  Options: anchored Line 1904  Options: anchored
1904  No first char  No first char
1905  No need char  No need char
1906    
1907    /^[[:^alnum:]]/D
1908    ------------------------------------------------------------------
1909      0  37 Bra 0
1910      3     ^
1911      4     [\x00-/:-@[-`{-\xff]
1912     37  37 Ket
1913     40     End
1914    ------------------------------------------------------------------
1915    Capturing subpattern count = 0
1916    Options: anchored
1917    No first char
1918    No need char
1919    
1920  /^[[:alpha:]]/D  /^[[:alpha:]]/D
1921  ------------------------------------------------------------------  ------------------------------------------------------------------
1922    0  37 Bra 0    0  37 Bra 0
# Line 1830  Capturing subpattern count = 0 Line 1929  Capturing subpattern count = 0
1929  Options: anchored  Options: anchored
1930  No first char  No first char
1931  No need char  No need char
1932    
1933    /^[[:^alpha:]]/D
1934    ------------------------------------------------------------------
1935      0  37 Bra 0
1936      3     ^
1937      4     [\x00-@[-`{-\xff]
1938     37  37 Ket
1939     40     End
1940    ------------------------------------------------------------------
1941    Capturing subpattern count = 0
1942    Options: anchored
1943    No first char
1944    No need char
1945    
1946    /[_[:alpha:]]/IS
1947    Capturing subpattern count = 0
1948    No options
1949    No first char
1950    No need char
1951    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
1952      _ 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
1953    
1954  /^[[:ascii:]]/D  /^[[:ascii:]]/D
1955  ------------------------------------------------------------------  ------------------------------------------------------------------
1956    0  37 Bra 0    0  37 Bra 0
# Line 1844  Options: anchored Line 1964  Options: anchored
1964  No first char  No first char
1965  No need char  No need char
1966    
1967    /^[[:^ascii:]]/D
1968    ------------------------------------------------------------------
1969      0  37 Bra 0
1970      3     ^
1971      4     [\x80-\xff]
1972     37  37 Ket
1973     40     End
1974    ------------------------------------------------------------------
1975    Capturing subpattern count = 0
1976    Options: anchored
1977    No first char
1978    No need char
1979    
1980    /^[[:blank:]]/D
1981    ------------------------------------------------------------------
1982      0  37 Bra 0
1983      3     ^
1984      4     [\x09 ]
1985     37  37 Ket
1986     40     End
1987    ------------------------------------------------------------------
1988    Capturing subpattern count = 0
1989    Options: anchored
1990    No first char
1991    No need char
1992    
1993    /^[[:^blank:]]/D
1994    ------------------------------------------------------------------
1995      0  37 Bra 0
1996      3     ^
1997      4     [\x00-\x08\x0a-\x1f!-\xff]
1998     37  37 Ket
1999     40     End
2000    ------------------------------------------------------------------
2001    Capturing subpattern count = 0
2002    Options: anchored
2003    No first char
2004    No need char
2005    
2006    /[\n\x0b\x0c\x0d[:blank:]]/IS
2007    Capturing subpattern count = 0
2008    No options
2009    No first char
2010    No need char
2011    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2012    
2013  /^[[:cntrl:]]/D  /^[[:cntrl:]]/D
2014  ------------------------------------------------------------------  ------------------------------------------------------------------
2015    0  37 Bra 0    0  37 Bra 0
# Line 1991  No need char Line 2157  No need char
2157  ------------------------------------------------------------------  ------------------------------------------------------------------
2158    0  37 Bra 0    0  37 Bra 0
2159    3     ^    3     ^
2160    4     [\x00-/1-2:-\xff]    4     [\x00-/12:-\xff]
2161     37  37 Ket
2162     40     End
2163    ------------------------------------------------------------------
2164    Capturing subpattern count = 0
2165    Options: anchored
2166    No first char
2167    No need char
2168    
2169    /^[[:^blank:]]/D
2170    ------------------------------------------------------------------
2171      0  37 Bra 0
2172      3     ^
2173      4     [\x00-\x08\x0a-\x1f!-\xff]
2174   37  37 Ket   37  37 Ket
2175   40     End   40     End
2176  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2003  No need char Line 2182  No need char
2182  /[01[:alpha:]%]/D  /[01[:alpha:]%]/D
2183  ------------------------------------------------------------------  ------------------------------------------------------------------
2184    0  36 Bra 0    0  36 Bra 0
2185    3     [%0-1A-Za-z]    3     [%01A-Za-z]
2186   36  36 Ket   36  36 Ket
2187   39     End   39     End
2188  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2076  Need char = 'd' Line 2255  Need char = 'd'
2255  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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)/  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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)/
2256  Capturing subpattern count = 271  Capturing subpattern count = 271
2257  Max back reference = 270  Max back reference = 270
2258    Partial matching not supported
2259  No options  No options
2260  No first char  No first char
2261  No need char  No need char
# Line 2372  Need char = 'n' Line 2552  Need char = 'n'
2552   1: main   1: main
2553   2: O   2: O
2554    
2555  / End of testinput2 /  /These are all cases where Perl does it differently (nested captures)/
2556    Capturing subpattern count = 1
2557    No options
2558    First char = 'T'
2559    Need char = 's'
2560    
2561    /^(a(b)?)+$/
2562    Capturing subpattern count = 2
2563    Options: anchored
2564    No first char
2565    No need char
2566        aba
2567     0: aba
2568     1: a
2569     2: b
2570    
2571    /^(aa(bb)?)+$/
2572    Capturing subpattern count = 2
2573    Options: anchored
2574    No first char
2575    No need char
2576        aabbaa
2577     0: aabbaa
2578     1: aa
2579     2: bb
2580    
2581    /^(aa|aa(bb))+$/
2582    Capturing subpattern count = 2
2583    Options: anchored
2584    No first char
2585    No need char
2586        aabbaa
2587     0: aabbaa
2588     1: aa
2589     2: bb
2590    
2591    /^(aa(bb)??)+$/
2592    Capturing subpattern count = 2
2593    Options: anchored
2594    No first char
2595    No need char
2596        aabbaa
2597     0: aabbaa
2598     1: aa
2599     2: bb
2600    
2601    /^(?:aa(bb)?)+$/
2602    Capturing subpattern count = 1
2603    Options: anchored
2604    No first char
2605    No need char
2606        aabbaa
2607     0: aabbaa
2608     1: bb
2609    
2610    /^(aa(b(b))?)+$/
2611    Capturing subpattern count = 3
2612    Options: anchored
2613    No first char
2614    No need char
2615        aabbaa
2616     0: aabbaa
2617     1: aa
2618     2: bb
2619     3: b
2620    
2621    /^(?:aa(b(b))?)+$/
2622    Capturing subpattern count = 2
2623    Options: anchored
2624    No first char
2625    No need char
2626        aabbaa
2627     0: aabbaa
2628     1: bb
2629     2: b
2630    
2631    /^(?:aa(b(?:b))?)+$/
2632    Capturing subpattern count = 1
2633    Options: anchored
2634    No first char
2635    No need char
2636        aabbaa
2637     0: aabbaa
2638     1: bb
2639    
2640    /^(?:aa(bb(?:b))?)+$/
2641    Capturing subpattern count = 1
2642    Options: anchored
2643    No first char
2644    No need char
2645        aabbbaa
2646     0: aabbbaa
2647     1: bbb
2648    
2649    /^(?:aa(b(?:bb))?)+$/
2650    Capturing subpattern count = 1
2651    Options: anchored
2652    No first char
2653    No need char
2654        aabbbaa
2655     0: aabbbaa
2656     1: bbb
2657    
2658    /^(?:aa(?:b(b))?)+$/
2659    Capturing subpattern count = 1
2660    Options: anchored
2661    No first char
2662    No need char
2663        aabbaa
2664     0: aabbaa
2665     1: b
2666    
2667    /^(?:aa(?:b(bb))?)+$/
2668    Capturing subpattern count = 1
2669    Options: anchored
2670    No first char
2671    No need char
2672        aabbbaa
2673     0: aabbbaa
2674     1: bb
2675    
2676    /^(aa(b(bb))?)+$/
2677    Capturing subpattern count = 3
2678    Options: anchored
2679    No first char
2680    No need char
2681        aabbbaa
2682     0: aabbbaa
2683     1: aa
2684     2: bbb
2685     3: bb
2686    
2687    /^(aa(bb(bb))?)+$/
2688    Capturing subpattern count = 3
2689    Options: anchored
2690    No first char
2691    No need char
2692        aabbbbaa
2693     0: aabbbbaa
2694     1: aa
2695     2: bbbb
2696     3: bb
2697    
2698    /--------------------------------------------------------------------/
2699  Capturing subpattern count = 0  Capturing subpattern count = 0
2700  No options  No options
2701  First char = ' '  First char = '-'
2702  Need char = ' '  Need char = '-'
2703    
2704    /#/xMD
2705    Memory allocation (code space): 7
2706    ------------------------------------------------------------------
2707      0   3 Bra 0
2708      3   3 Ket
2709      6     End
2710    ------------------------------------------------------------------
2711    Capturing subpattern count = 0
2712    Options: extended
2713    No first char
2714    No need char
2715    
2716    /a#/xMD
2717    Memory allocation (code space): 9
2718    ------------------------------------------------------------------
2719      0   5 Bra 0
2720      3     a
2721      5   5 Ket
2722      8     End
2723    ------------------------------------------------------------------
2724    Capturing subpattern count = 0
2725    Options: extended
2726    First char = 'a'
2727    No need char
2728    
2729    /[\s]/D
2730    ------------------------------------------------------------------
2731      0  36 Bra 0
2732      3     [\x09\x0a\x0c\x0d ]
2733     36  36 Ket
2734     39     End
2735    ------------------------------------------------------------------
2736    Capturing subpattern count = 0
2737    No options
2738    No first char
2739    No need char
2740    
2741    /[\S]/D
2742    ------------------------------------------------------------------
2743      0  36 Bra 0
2744      3     [\x00-\x08\x0b\x0e-\x1f!-\xff]
2745     36  36 Ket
2746     39     End
2747    ------------------------------------------------------------------
2748    Capturing subpattern count = 0
2749    No options
2750    No first char
2751    No need char
2752    
2753    /a(?i)b/D
2754    ------------------------------------------------------------------
2755      0   9 Bra 0
2756      3     a
2757      5  01 Opt
2758      7  NC b
2759      9   9 Ket
2760     12     End
2761    ------------------------------------------------------------------
2762    Capturing subpattern count = 0
2763    No options
2764    Case state changes
2765    First char = 'a'
2766    Need char = 'b' (caseless)
2767        ab
2768     0: ab
2769        aB
2770     0: aB
2771        *** Failers
2772    No match
2773        AB
2774    No match
2775    
2776    /(a(?i)b)/D
2777    ------------------------------------------------------------------
2778      0  17 Bra 0
2779      3   9 Bra 1
2780      6     a
2781      8  01 Opt
2782     10  NC b
2783     12   9 Ket
2784     15  00 Opt
2785     17  17 Ket
2786     20     End
2787    ------------------------------------------------------------------
2788    Capturing subpattern count = 1
2789    No options
2790    Case state changes
2791    First char = 'a'
2792    Need char = 'b' (caseless)
2793        ab
2794     0: ab
2795     1: ab
2796        aB
2797     0: aB
2798     1: aB
2799        *** Failers
2800    No match
2801        AB
2802    No match
2803    
2804    /   (?i)abc/xD
2805    ------------------------------------------------------------------
2806      0   9 Bra 0
2807      3  NC abc
2808      9   9 Ket
2809     12     End
2810    ------------------------------------------------------------------
2811    Capturing subpattern count = 0
2812    Options: caseless extended
2813    First char = 'a' (caseless)
2814    Need char = 'c' (caseless)
2815    
2816    /#this is a comment
2817      (?i)abc/xD
2818    ------------------------------------------------------------------
2819      0   9 Bra 0
2820      3  NC abc
2821      9   9 Ket
2822     12     End
2823    ------------------------------------------------------------------
2824    Capturing subpattern count = 0
2825    Options: caseless extended
2826    First char = 'a' (caseless)
2827    Need char = 'c' (caseless)
2828    
2829    /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D
2830    ------------------------------------------------------------------
2831      0 603 Bra 0
2832      3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2833    603 603 Ket
2834    606     End
2835    ------------------------------------------------------------------
2836    Capturing subpattern count = 0
2837    No options
2838    First char = '1'
2839    Need char = '0'
2840    
2841    /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D
2842    ------------------------------------------------------------------
2843      0 603 Bra 0
2844      3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2845    603 603 Ket
2846    606     End
2847    ------------------------------------------------------------------
2848    Capturing subpattern count = 0
2849    No options
2850    First char = '1'
2851    Need char = '0'
2852    
2853    /\Q\E/D
2854    ------------------------------------------------------------------
2855      0   3 Bra 0
2856      3   3 Ket
2857      6     End
2858    ------------------------------------------------------------------
2859    Capturing subpattern count = 0
2860    No options
2861    No first char
2862    No need char
2863        \
2864     0:
2865    
2866    /\Q\Ex/D
2867    ------------------------------------------------------------------
2868      0   5 Bra 0
2869      3     x
2870      5   5 Ket
2871      8     End
2872    ------------------------------------------------------------------
2873    Capturing subpattern count = 0
2874    No options
2875    First char = 'x'
2876    No need char
2877    
2878    / \Q\E/D
2879    ------------------------------------------------------------------
2880      0   5 Bra 0
2881      3
2882      5   5 Ket
2883      8     End
2884    ------------------------------------------------------------------
2885    Capturing subpattern count = 0
2886    No options
2887    First char = ' '
2888    No need char
2889    
2890    /a\Q\E/D
2891    ------------------------------------------------------------------
2892      0   5 Bra 0
2893      3     a
2894      5   5 Ket
2895      8     End
2896    ------------------------------------------------------------------
2897    Capturing subpattern count = 0
2898    No options
2899    First char = 'a'
2900    No need char
2901      abc
2902     0: a
2903      bca
2904     0: a
2905      bac
2906     0: a
2907    
2908    /a\Q\Eb/D
2909    ------------------------------------------------------------------
2910      0   7 Bra 0
2911      3     ab
2912      7   7 Ket
2913     10     End
2914    ------------------------------------------------------------------
2915    Capturing subpattern count = 0
2916    No options
2917    First char = 'a'
2918    Need char = 'b'
2919      abc
2920     0: ab
2921    
2922    /\Q\Eabc/D
2923    ------------------------------------------------------------------
2924      0   9 Bra 0
2925      3     abc
2926      9   9 Ket
2927     12     End
2928    ------------------------------------------------------------------
2929    Capturing subpattern count = 0
2930    No options
2931    First char = 'a'
2932    Need char = 'c'
2933    
2934    /x*+\w/D
2935    ------------------------------------------------------------------
2936      0  12 Bra 0
2937      3   5 Once
2938      6     x*
2939      8   5 Ket
2940     11     \w
2941     12  12 Ket
2942     15     End
2943    ------------------------------------------------------------------
2944    Capturing subpattern count = 0
2945    Partial matching not supported
2946    No options
2947    No first char
2948    No need char
2949        *** Failers
2950     0: F
2951        xxxxx
2952    No match
2953    
2954    /x?+/D
2955    ------------------------------------------------------------------
2956      0  11 Bra 0
2957      3   5 Once
2958      6     x?
2959      8   5 Ket
2960     11  11 Ket
2961     14     End
2962    ------------------------------------------------------------------
2963    Capturing subpattern count = 0
2964    No options
2965    No first char
2966    No need char
2967    
2968    /x++/D
2969    ------------------------------------------------------------------
2970      0  11 Bra 0
2971      3   5 Once
2972      6     x+
2973      8   5 Ket
2974     11  11 Ket
2975     14     End
2976    ------------------------------------------------------------------
2977    Capturing subpattern count = 0
2978    Partial matching not supported
2979    No options
2980    First char = 'x'
2981    No need char
2982    
2983    /x{1,3}+/D
2984    ------------------------------------------------------------------
2985      0  15 Bra 0
2986      3   9 Once
2987      6     x
2988      8     x{,2}
2989     12   9 Ket
2990     15  15 Ket
2991     18     End
2992    ------------------------------------------------------------------
2993    Capturing subpattern count = 0
2994    Partial matching not supported
2995    No options
2996    First char = 'x'
2997    No need char
2998    
2999    /(x)*+/D
3000    ------------------------------------------------------------------
3001      0  18 Bra 0
3002      3  12 Once
3003      6     Brazero
3004      7   5 Bra 1
3005     10     x
3006     12   5 KetRmax
3007     15  12 Ket
3008     18  18 Ket
3009     21     End
3010    ------------------------------------------------------------------
3011    Capturing subpattern count = 1
3012    No options
3013    No first char
3014    No need char
3015    
3016    /^(\w++|\s++)*$/
3017    Capturing subpattern count = 1
3018    Partial matching not supported
3019    Options: anchored
3020    No first char
3021    No need char
3022        now is the time for all good men to come to the aid of the party
3023     0: now is the time for all good men to come to the aid of the party
3024     1: party
3025        *** Failers
3026    No match
3027        this is not a line with only words and spaces!
3028    No match
3029    
3030    /(\d++)(\w)/
3031    Capturing subpattern count = 2
3032    Partial matching not supported
3033    No options
3034    No first char
3035    No need char
3036        12345a
3037     0: 12345a
3038     1: 12345
3039     2: a
3040        *** Failers
3041    No match
3042        12345+
3043    No match
3044    
3045    /a++b/
3046    Capturing subpattern count = 0
3047    Partial matching not supported
3048    No options
3049    First char = 'a'
3050    Need char = 'b'
3051        aaab
3052     0: aaab
3053    
3054    /(a++b)/
3055    Capturing subpattern count = 1
3056    Partial matching not supported
3057    No options
3058    First char = 'a'
3059    Need char = 'b'
3060        aaab
3061     0: aaab
3062     1: aaab
3063    
3064    /(a++)b/
3065    Capturing subpattern count = 1
3066    Partial matching not supported
3067    No options
3068    First char = 'a'
3069    Need char = 'b'
3070        aaab
3071     0: aaab
3072     1: aaa
3073    
3074    /([^()]++|\([^()]*\))+/
3075    Capturing subpattern count = 1
3076    Partial matching not supported
3077    No options
3078    No first char
3079    No need char
3080        ((abc(ade)ufh()()x
3081     0: abc(ade)ufh()()x
3082     1: x
3083    
3084    /\(([^()]++|\([^()]+\))+\)/
3085    Capturing subpattern count = 1
3086    Partial matching not supported
3087    No options
3088    First char = '('
3089    Need char = ')'
3090        (abc)
3091     0: (abc)
3092     1: abc
3093        (abc(def)xyz)
3094     0: (abc(def)xyz)
3095     1: xyz
3096        *** Failers
3097    No match
3098        ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3099    No match
3100    
3101    /(abc){1,3}+/D
3102    ------------------------------------------------------------------
3103      0  53 Bra 0
3104      3  47 Once
3105      6   9 Bra 1
3106      9     abc
3107     15   9 Ket
3108     18     Brazero
3109     19  28 Bra 0
3110     22   9 Bra 1
3111     25     abc
3112     31   9 Ket
3113     34     Brazero
3114     35   9 Bra 1
3115     38     abc
3116     44   9 Ket
3117     47  28 Ket
3118     50  47 Ket
3119     53  53 Ket
3120     56     End
3121    ------------------------------------------------------------------
3122    Capturing subpattern count = 1
3123    No options
3124    First char = 'a'
3125    Need char = 'c'
3126    
3127    /a+?+/
3128    Failed: nothing to repeat at offset 3
3129    
3130    /a{2,3}?+b/
3131    Failed: nothing to repeat at offset 7
3132    
3133    /(?U)a+?+/
3134    Failed: nothing to repeat at offset 7
3135    
3136    /a{2,3}?+b/U
3137    Failed: nothing to repeat at offset 7
3138    
3139    /x(?U)a++b/D
3140    ------------------------------------------------------------------
3141      0  15 Bra 0
3142      3     x
3143      5   5 Once
3144      8     a+
3145     10   5 Ket
3146     13     b
3147     15  15 Ket
3148     18     End
3149    ------------------------------------------------------------------
3150    Capturing subpattern count = 0
3151    Partial matching not supported
3152    No options
3153    First char = 'x'
3154    Need char = 'b'
3155        xaaaab
3156     0: xaaaab
3157    
3158    /(?U)xa++b/D
3159    ------------------------------------------------------------------
3160      0  15 Bra 0
3161      3     x
3162      5   5 Once
3163      8     a+
3164     10   5 Ket
3165     13     b
3166     15  15 Ket
3167     18     End
3168    ------------------------------------------------------------------
3169    Capturing subpattern count = 0
3170    Partial matching not supported
3171    Options: ungreedy
3172    First char = 'x'
3173    Need char = 'b'
3174        xaaaab
3175     0: xaaaab
3176    
3177    /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D
3178    ------------------------------------------------------------------
3179      0 106 Bra 0
3180      3     ^
3181      4  99 Bra 1
3182      7   5 Bra 2
3183     10     a+
3184     12   5 Ket
3185     15  37 Bra 3
3186     18     [ab]+?
3187     52  37 Ket
3188     55  37 Bra 4
3189     58     [bc]+
3190     92  37 Ket
3191     95   5 Bra 5
3192     98     \w*
3193    100   5 Ket
3194    103  99 Ket
3195    106 106 Ket
3196    109     End
3197    ------------------------------------------------------------------
3198    Capturing subpattern count = 5
3199    Partial matching not supported
3200    Options: anchored
3201    No first char
3202    No need char
3203    
3204    /^x(?U)a+b/D
3205    ------------------------------------------------------------------
3206      0  10 Bra 0
3207      3     ^
3208      4     x
3209      6     a+?
3210      8     b
3211     10  10 Ket
3212     13     End
3213    ------------------------------------------------------------------
3214    Capturing subpattern count = 0
3215    Partial matching not supported
3216    Options: anchored
3217    No first char
3218    Need char = 'b'
3219    
3220    /^x(?U)(a+)b/D
3221    ------------------------------------------------------------------
3222      0  16 Bra 0
3223      3     ^
3224      4     x
3225      6   5 Bra 1
3226      9     a+?
3227     11   5 Ket
3228     14     b
3229     16  16 Ket
3230     19     End
3231    ------------------------------------------------------------------
3232    Capturing subpattern count = 1
3233    Partial matching not supported
3234    Options: anchored
3235    No first char
3236    Need char = 'b'
3237    
3238    /[.x.]/
3239    Failed: POSIX collating elements are not supported at offset 0
3240    
3241    /[=x=]/
3242    Failed: POSIX collating elements are not supported at offset 0
3243    
3244    /[:x:]/
3245    Failed: POSIX named classes are supported only within a class at offset 0
3246    
3247    /\l/
3248    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3249    
3250    /\L/
3251    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3252    
3253    /\N{name}/
3254    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3255    
3256    /\u/
3257    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3258    
3259    /\U/
3260    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3261    
3262    /[/
3263    Failed: missing terminating ] for character class at offset 1
3264    
3265    /[a-/
3266    Failed: missing terminating ] for character class at offset 3
3267    
3268    /[[:space:]/
3269    Failed: missing terminating ] for character class at offset 10
3270    
3271    /[\s]/DM
3272    Memory allocation (code space): 40
3273    ------------------------------------------------------------------
3274      0  36 Bra 0
3275      3     [\x09\x0a\x0c\x0d ]
3276     36  36 Ket
3277     39     End
3278    ------------------------------------------------------------------
3279    Capturing subpattern count = 0
3280    No options
3281    No first char
3282    No need char
3283    
3284    /[[:space:]]/DM
3285    Memory allocation (code space): 40
3286    ------------------------------------------------------------------
3287      0  36 Bra 0
3288      3     [\x09-\x0d ]
3289     36  36 Ket
3290     39     End
3291    ------------------------------------------------------------------
3292    Capturing subpattern count = 0
3293    No options
3294    No first char
3295    No need char
3296    
3297    /[[:space:]abcde]/DM
3298    Memory allocation (code space): 40
3299    ------------------------------------------------------------------
3300      0  36 Bra 0
3301      3     [\x09-\x0d a-e]
3302     36  36 Ket
3303     39     End
3304    ------------------------------------------------------------------
3305    Capturing subpattern count = 0
3306    No options
3307    No first char
3308    No need char
3309    
3310    /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x
3311    Capturing subpattern count = 0
3312    Partial matching not supported
3313    Options: extended
3314    First char = '<'
3315    Need char = '>'
3316        <>
3317     0: <>
3318        <abcd>
3319     0: <abcd>
3320        <abc <123> hij>
3321     0: <abc <123> hij>
3322        <abc <def> hij>
3323     0: <def>
3324        <abc<>def>
3325     0: <abc<>def>
3326        <abc<>
3327     0: <>
3328        *** Failers
3329    No match
3330        <abc
3331    No match
3332    
3333    |8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|DM
3334    Memory allocation (code space): 826
3335    ------------------------------------------------------------------
3336      0 822 Bra 0
3337      3     8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X
3338    821     \b
3339    822 822 Ket
3340    825     End
3341    ------------------------------------------------------------------
3342    Capturing subpattern count = 0
3343    No options
3344    First char = '8'
3345    Need char = 'X'
3346    
3347    |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|DM
3348    Memory allocation (code space): 816
3349    ------------------------------------------------------------------
3350      0 812 Bra 0
3351      3     $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X
3352    811     \b
3353    812 812 Ket
3354    815     End
3355    ------------------------------------------------------------------
3356    Capturing subpattern count = 0
3357    No options
3358    First char = '$'
3359    Need char = 'X'
3360    
3361    /(.*)\d+\1/I
3362    Capturing subpattern count = 1
3363    Max back reference = 1
3364    Partial matching not supported
3365    No options
3366    No first char
3367    No need char
3368    
3369    /(.*)\d+/I
3370    Capturing subpattern count = 1
3371    Partial matching not supported
3372    No options
3373    First char at start or follows \n
3374    No need char
3375    
3376    /(.*)\d+\1/Is
3377    Capturing subpattern count = 1
3378    Max back reference = 1
3379    Partial matching not supported
3380    Options: dotall
3381    No first char
3382    No need char
3383    
3384    /(.*)\d+/Is
3385    Capturing subpattern count = 1
3386    Partial matching not supported
3387    Options: anchored dotall
3388    No first char
3389    No need char
3390    
3391    /(.*(xyz))\d+\2/I
3392    Capturing subpattern count = 2
3393    Max back reference = 2
3394    Partial matching not supported
3395    No options
3396    First char at start or follows \n
3397    Need char = 'z'
3398    
3399    /((.*))\d+\1/I
3400    Capturing subpattern count = 2
3401    Max back reference = 1
3402    Partial matching not supported
3403    No options
3404    No first char
3405    No need char
3406        abc123bc
3407     0: bc123bc
3408     1: bc
3409     2: bc
3410    
3411    /a[b]/I
3412    Capturing subpattern count = 0
3413    No options
3414    First char = 'a'
3415    Need char = 'b'
3416    
3417    /(?=a).*/I
3418    Capturing subpattern count = 0
3419    Partial matching not supported
3420    No options
3421    First char = 'a'
3422    No need char
3423    
3424    /(?=abc).xyz/iI
3425    Capturing subpattern count = 0
3426    Options: caseless
3427    First char = 'a' (caseless)
3428    Need char = 'z' (caseless)
3429    
3430    /(?=abc)(?i).xyz/I
3431    Capturing subpattern count = 0
3432    No options
3433    Case state changes
3434    First char = 'a'
3435    Need char = 'z' (caseless)
3436    
3437    /(?=a)(?=b)/I
3438    Capturing subpattern count = 0
3439    No options
3440    First char = 'a'
3441    No need char
3442    
3443    /(?=.)a/I
3444    Capturing subpattern count = 0
3445    No options
3446    First char = 'a'
3447    No need char
3448    
3449    /((?=abcda)a)/I
3450    Capturing subpattern count = 1
3451    No options
3452    First char = 'a'
3453    Need char = 'a'
3454    
3455    /((?=abcda)ab)/I
3456    Capturing subpattern count = 1
3457    No options
3458    First char = 'a'
3459    Need char = 'b'
3460    
3461    /()a/I
3462    Capturing subpattern count = 1
3463    No options
3464    No first char
3465    Need char = 'a'
3466    
3467    /(?(1)ab|ac)/I
3468    Capturing subpattern count = 0
3469    No options
3470    First char = 'a'
3471    No need char
3472    
3473    /(?(1)abz|acz)/I
3474    Capturing subpattern count = 0
3475    No options
3476    First char = 'a'
3477    Need char = 'z'
3478    
3479    /(?(1)abz)/I
3480    Capturing subpattern count = 0
3481    No options
3482    No first char
3483    No need char
3484    
3485    /(?(1)abz)123/I
3486    Capturing subpattern count = 0
3487    No options
3488    No first char
3489    Need char = '3'
3490    
3491    /(a)+/I
3492    Capturing subpattern count = 1
3493    No options
3494    First char = 'a'
3495    No need char
3496    
3497    /(a){2,3}/I
3498    Capturing subpattern count = 1
3499    No options
3500    First char = 'a'
3501    Need char = 'a'
3502    
3503    /(a)*/I
3504    Capturing subpattern count = 1
3505    No options
3506    No first char
3507    No need char
3508    
3509    /[a]/I
3510    Capturing subpattern count = 0
3511    No options
3512    First char = 'a'
3513    No need char
3514    
3515    /[ab]/I
3516    Capturing subpattern count = 0
3517    No options
3518    No first char
3519    No need char
3520    
3521    /[ab]/IS
3522    Capturing subpattern count = 0
3523    No options
3524    No first char
3525    No need char
3526    Starting byte set: a b
3527    
3528    /[^a]/I
3529    Capturing subpattern count = 0
3530    No options
3531    No first char
3532    No need char
3533    
3534    /\d456/I
3535    Capturing subpattern count = 0
3536    No options
3537    No first char
3538    Need char = '6'
3539    
3540    /\d456/IS
3541    Capturing subpattern count = 0
3542    No options
3543    No first char
3544    Need char = '6'
3545    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3546    
3547    /a^b/I
3548    Capturing subpattern count = 0
3549    No options
3550    First char = 'a'
3551    Need char = 'b'
3552    
3553    /^a/mI
3554    Capturing subpattern count = 0
3555    Options: multiline
3556    First char at start or follows \n
3557    Need char = 'a'
3558      abcde
3559     0: a
3560      xy\nabc
3561     0: a
3562      *** Failers
3563    No match
3564      xyabc
3565    No match
3566    
3567    /c|abc/I
3568    Capturing subpattern count = 0
3569    No options
3570    No first char
3571    Need char = 'c'
3572    
3573    /(?i)[ab]/IS
3574    Capturing subpattern count = 0
3575    Options: caseless
3576    No first char
3577    No need char
3578    Starting byte set: A B a b
3579    
3580    /[ab](?i)cd/IS
3581    Capturing subpattern count = 0
3582    No options
3583    Case state changes
3584    No first char
3585    Need char = 'd' (caseless)
3586    Starting byte set: a b
3587    
3588    /abc(?C)def/
3589    Capturing subpattern count = 0
3590    No options
3591    First char = 'a'
3592    Need char = 'f'
3593        abcdef
3594    --->abcdef
3595      0 ^  ^       d
3596     0: abcdef
3597        1234abcdef
3598    --->1234abcdef
3599      0     ^  ^       d
3600     0: abcdef
3601        *** Failers
3602    No match
3603        abcxyz
3604    No match
3605        abcxyzf
3606    --->abcxyzf
3607      0 ^  ^        d
3608    No match
3609    
3610    /abc(?C)de(?C1)f/
3611    Capturing subpattern count = 0
3612    No options
3613    First char = 'a'
3614    Need char = 'f'
3615        123abcdef
3616    --->123abcdef
3617      0    ^  ^       d
3618      1    ^    ^     f
3619     0: abcdef
3620    
3621    /(?C1)\dabc(?C2)def/
3622    Capturing subpattern count = 0
3623    No options
3624    No first char
3625    Need char = 'f'
3626        1234abcdef
3627    --->1234abcdef
3628      1 ^              \d
3629      1  ^             \d
3630      1   ^            \d
3631      1    ^           \d
3632      2    ^   ^       d
3633     0: 4abcdef
3634        *** Failers
3635    No match
3636        abcdef
3637    --->abcdef
3638      1 ^          \d
3639      1  ^         \d
3640      1   ^        \d
3641      1    ^       \d
3642      1     ^      \d
3643      1      ^     \d
3644    No match
3645    
3646    /(?C255)ab/
3647    Capturing subpattern count = 0
3648    No options
3649    First char = 'a'
3650    Need char = 'b'
3651    
3652    /(?C256)ab/
3653    Failed: number after (?C is > 255 at offset 6
3654    
3655    /(?Cab)xx/
3656    Failed: closing ) for (?C expected at offset 3
3657    
3658    /(?C12vr)x/
3659    Failed: closing ) for (?C expected at offset 5
3660    
3661    /abc(?C)def/
3662    Capturing subpattern count = 0
3663    No options
3664    First char = 'a'
3665    Need char = 'f'
3666        *** Failers
3667    No match
3668        \x83\x0\x61bcdef
3669    --->\x83\x00abcdef
3670      0         ^  ^       d
3671     0: abcdef
3672    
3673    /(abc)(?C)de(?C1)f/
3674    Capturing subpattern count = 1
3675    No options
3676    First char = 'a'
3677    Need char = 'f'
3678        123abcdef
3679    --->123abcdef
3680      0    ^  ^       d
3681      1    ^    ^     f
3682     0: abcdef
3683     1: abc
3684        123abcdef\C+
3685    Callout 0: last capture = 1
3686     0: <unset>
3687     1: abc
3688    --->123abcdef
3689           ^  ^       d
3690    Callout 1: last capture = 1
3691     0: <unset>
3692     1: abc
3693    --->123abcdef
3694           ^    ^     f
3695     0: abcdef
3696     1: abc
3697        123abcdef\C-
3698     0: abcdef
3699     1: abc
3700        *** Failers
3701    No match
3702        123abcdef\C!1
3703    --->123abcdef
3704      0    ^  ^       d
3705      1    ^    ^     f
3706    No match
3707    
3708    /(?C0)(abc(?C1))*/
3709    Capturing subpattern count = 1
3710    No options
3711    No first char
3712    No need char
3713        abcabcabc
3714    --->abcabcabc
3715      0 ^             (abc(?C1))*
3716      1 ^  ^          )
3717      1 ^     ^       )
3718      1 ^        ^    )
3719     0: abcabcabc
3720     1: abc
3721        abcabc\C!1!3
3722    --->abcabc
3723      0 ^          (abc(?C1))*
3724      1 ^  ^       )
3725      1 ^     ^    )
3726     0: abcabc
3727     1: abc
3728        *** Failers
3729    --->*** Failers
3730      0 ^               (abc(?C1))*
3731     0:
3732        abcabcabc\C!1!3
3733    --->abcabcabc
3734      0 ^             (abc(?C1))*
3735      1 ^  ^          )
3736      1 ^     ^       )
3737      1 ^        ^    )
3738     0: abcabc
3739     1: abc
3740    
3741    /(\d{3}(?C))*/
3742    Capturing subpattern count = 1
3743    Partial matching not supported
3744    No options
3745    No first char
3746    No need char
3747        123\C+
3748    Callout 0: last capture = -1
3749     0: <unset>
3750    --->123
3751        ^  ^    )
3752     0: 123
3753     1: 123
3754        123456\C+
3755    Callout 0: last capture = -1
3756     0: <unset>
3757    --->123456
3758        ^  ^       )
3759    Callout 0: last capture = 1
3760     0: <unset>
3761     1: 123
3762    --->123456
3763        ^     ^    )
3764     0: 123456
3765     1: 456
3766        123456789\C+
3767    Callout 0: last capture = -1
3768     0: <unset>
3769    --->123456789
3770        ^  ^          )
3771    Callout 0: last capture = 1
3772     0: <unset>
3773     1: 123
3774    --->123456789
3775        ^     ^       )
3776    Callout 0: last capture = 1
3777     0: <unset>
3778     1: 456
3779    --->123456789
3780        ^        ^    )
3781     0: 123456789
3782     1: 789
3783    
3784    /((xyz)(?C)p|(?C1)xyzabc)/
3785    Capturing subpattern count = 2
3786    No options
3787    First char = 'x'
3788    No need char
3789        xyzabc\C+
3790    Callout 0: last capture = 2
3791     0: <unset>
3792     1: <unset>
3793     2: xyz
3794    --->xyzabc
3795        ^  ^       p
3796    Callout 1: last capture = -1
3797     0: <unset>
3798    --->xyzabc
3799        ^          x
3800     0: xyzabc
3801     1: xyzabc
3802    
3803    /(X)((xyz)(?C)p|(?C1)xyzabc)/
3804    Capturing subpattern count = 3
3805    No options
3806    First char = 'X'
3807    Need char = 'x'
3808        Xxyzabc\C+
3809    Callout 0: last capture = 3
3810     0: <unset>
3811     1: X
3812     2: <unset>
3813     3: xyz
3814    --->Xxyzabc
3815        ^   ^       p
3816    Callout 1: last capture = 1
3817     0: <unset>
3818     1: X
3819    --->Xxyzabc
3820        ^^          x
3821     0: Xxyzabc
3822     1: X
3823     2: xyzabc
3824    
3825    /(?=(abc))(?C)abcdef/
3826    Capturing subpattern count = 1
3827    No options
3828    First char = 'a'
3829    Need char = 'f'
3830        abcdef\C+
3831    Callout 0: last capture = 1
3832     0: <unset>
3833     1: abc
3834    --->abcdef
3835        ^          a
3836     0: abcdef
3837     1: abc
3838    
3839    /(?!(abc)(?C1)d)(?C2)abcxyz/
3840    Capturing subpattern count = 1
3841    No options
3842    First char = 'a'
3843    Need char = 'z'
3844        abcxyz\C+
3845    Callout 1: last capture = 1
3846     0: <unset>
3847     1: abc
3848    --->abcxyz
3849        ^  ^       d
3850    Callout 2: last capture = -1
3851     0: <unset>
3852    --->abcxyz
3853        ^          a
3854     0: abcxyz
3855    
3856    /(?<=(abc)(?C))xyz/
3857    Capturing subpattern count = 1
3858    No options
3859    First char = 'x'
3860    Need char = 'z'
3861       abcxyz\C+
3862    Callout 0: last capture = 1
3863     0: <unset>
3864     1: abc
3865    --->abcxyz
3866           ^       )
3867     0: xyz
3868     1: abc
3869    
3870    /a(b+)(c*)(?C1)/
3871    Capturing subpattern count = 2
3872    Partial matching not supported
3873    No options
3874    First char = 'a'
3875    Need char = 'b'
3876        abbbbbccc\C*1
3877    --->abbbbbccc
3878      1 ^        ^
3879    Callout data = 1
3880      1 ^       ^
3881    Callout data = 1
3882      1 ^      ^
3883    Callout data = 1
3884      1 ^     ^
3885    Callout data = 1
3886      1 ^    ^
3887    Callout data = 1
3888      1 ^   ^
3889    Callout data = 1
3890      1 ^  ^
3891    Callout data = 1
3892      1 ^ ^
3893    Callout data = 1
3894    No match
3895    
3896    /a(b+?)(c*?)(?C1)/
3897    Capturing subpattern count = 2
3898    Partial matching not supported
3899    No options
3900    First char = 'a'
3901    Need char = 'b'
3902        abbbbbccc\C*1
3903    --->abbbbbccc
3904      1 ^ ^
3905    Callout data = 1
3906      1 ^  ^
3907    Callout data = 1
3908      1 ^   ^
3909    Callout data = 1
3910      1 ^    ^
3911    Callout data = 1
3912      1 ^     ^
3913    Callout data = 1
3914      1 ^      ^
3915    Callout data = 1
3916      1 ^       ^
3917    Callout data = 1
3918      1 ^        ^
3919    Callout data = 1
3920    No match
3921    
3922    /(?C)abc/
3923    Capturing subpattern count = 0
3924    No options
3925    First char = 'a'
3926    Need char = 'c'
3927    
3928    /(?C)^abc/
3929    Capturing subpattern count = 0
3930    Options: anchored
3931    No first char
3932    No need char
3933    
3934    /(?C)a|b/S
3935    Capturing subpattern count = 0
3936    No options
3937    No first char
3938    No need char
3939    Starting byte set: a b
3940    
3941    /(?R)/
3942    Failed: recursive call could loop indefinitely at offset 3
3943    
3944    /(a|(?R))/
3945    Failed: recursive call could loop indefinitely at offset 6
3946    
3947    /(ab|(bc|(de|(?R))))/
3948    Failed: recursive call could loop indefinitely at offset 15
3949    
3950    /x(ab|(bc|(de|(?R))))/
3951    Capturing subpattern count = 3
3952    No options
3953    First char = 'x'
3954    No need char
3955        xab
3956     0: xab
3957     1: ab
3958        xbc
3959     0: xbc
3960     1: bc
3961     2: bc
3962        xde
3963     0: xde
3964     1: de
3965     2: de
3966     3: de
3967        xxab
3968     0: xxab
3969     1: xab
3970     2: xab
3971     3: xab
3972        xxxab
3973     0: xxxab
3974     1: xxab
3975     2: xxab
3976     3: xxab
3977        *** Failers
3978    No match
3979        xyab
3980    No match
3981    
3982    /(ab|(bc|(de|(?1))))/
3983    Failed: recursive call could loop indefinitely at offset 15
3984    
3985    /x(ab|(bc|(de|(?1)x)x)x)/
3986    Failed: recursive call could loop indefinitely at offset 16
3987    
3988    /^([^()]|\((?1)*\))*$/
3989    Capturing subpattern count = 1
3990    Options: anchored
3991    No first char
3992    No need char
3993        abc
3994     0: abc
3995     1: c
3996        a(b)c
3997     0: a(b)c
3998     1: c
3999        a(b(c))d
4000     0: a(b(c))d
4001     1: d
4002        *** Failers)
4003    No match
4004        a(b(c)d
4005    No match
4006    
4007    /^>abc>([^()]|\((?1)*\))*<xyz<$/
4008    Capturing subpattern count = 1
4009    Options: anchored
4010    No first char
4011    Need char = '<'
4012       >abc>123<xyz<
4013     0: >abc>123<xyz<
4014     1: 3
4015       >abc>1(2)3<xyz<
4016     0: >abc>1(2)3<xyz<
4017     1: 3
4018       >abc>(1(2)3)<xyz<
4019     0: >abc>(1(2)3)<xyz<
4020     1: (1(2)3)
4021    
4022    /(a(?1)b)/D
4023    ------------------------------------------------------------------
4024      0  22 Bra 0
4025      3  16 Bra 1
4026      6     a
4027      8   6 Once
4028     11   3 Recurse
4029     14   6 Ket
4030     17     b
4031     19  16 Ket
4032     22  22 Ket
4033     25     End
4034    ------------------------------------------------------------------
4035    Capturing subpattern count = 1
4036    No options
4037    First char = 'a'
4038    Need char = 'b'
4039    
4040    /(a(?1)+b)/D
4041    ------------------------------------------------------------------
4042      0  22 Bra 0
4043      3  16 Bra 1
4044      6     a
4045      8   6 Once
4046     11   3 Recurse
4047     14   6 KetRmax
4048     17     b
4049     19  16 Ket
4050     22  22 Ket
4051     25     End
4052    ------------------------------------------------------------------
4053    Capturing subpattern count = 1
4054    No options
4055    First char = 'a'
4056    Need char = 'b'
4057    
4058    /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/i
4059    Capturing subpattern count = 4
4060    Max back reference = 4
4061    Partial matching not supported
4062    Options: anchored caseless
4063    No first char
4064    No need char
4065        1221
4066     0: 1221
4067     1: 1221
4068     2: 1
4069        Satan, oscillate my metallic sonatas!
4070     0: Satan, oscillate my metallic sonatas!
4071     1: <unset>
4072     2: <unset>
4073     3: Satan, oscillate my metallic sonatas
4074     4: S
4075        A man, a plan, a canal: Panama!
4076     0: A man, a plan, a canal: Panama!
4077     1: <unset>
4078     2: <unset>
4079     3: A man, a plan, a canal: Panama
4080     4: A
4081        Able was I ere I saw Elba.
4082     0: Able was I ere I saw Elba.
4083     1: <unset>
4084     2: <unset>
4085     3: Able was I ere I saw Elba
4086     4: A
4087        *** Failers
4088    No match
4089        The quick brown fox
4090    No match
4091    
4092    /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/
4093    Capturing subpattern count = 2
4094    Partial matching not supported
4095    Options: anchored
4096    No first char
4097    No need char
4098        12
4099     0: 12
4100     1: 12
4101        (((2+2)*-3)-7)
4102     0: (((2+2)*-3)-7)
4103     1: (((2+2)*-3)-7)
4104     2: -
4105        -12
4106     0: -12
4107     1: -12
4108        *** Failers
4109    No match
4110        ((2+2)*-3)-7)
4111    No match
4112    
4113    /^(x(y|(?1){2})z)/
4114    Capturing subpattern count = 2
4115    Options: anchored
4116    No first char
4117    No need char
4118        xyz
4119     0: xyz
4120     1: xyz
4121     2: y
4122        xxyzxyzz
4123     0: xxyzxyzz
4124     1: xxyzxyzz
4125     2: xyzxyz
4126        *** Failers
4127    No match
4128        xxyzz
4129    No match
4130        xxyzxyzxyzz
4131    No match
4132    
4133    /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x
4134    Capturing subpattern count = 2
4135    Partial matching not supported
4136    Options: extended
4137    First char = '<'
4138    Need char = '>'
4139        <>
4140     0: <>
4141     1: <>
4142     2: <>
4143        <abcd>
4144     0: <abcd>
4145     1: <abcd>
4146     2: <abcd>
4147        <abc <123> hij>
4148     0: <abc <123> hij>
4149     1: <abc <123> hij>
4150     2: <abc <123> hij>
4151        <abc <def> hij>
4152     0: <def>
4153     1: <def>
4154     2: <def>
4155        <abc<>def>
4156     0: <abc<>def>
4157     1: <abc<>def>
4158     2: <abc<>def>
4159        <abc<>
4160     0: <>
4161     1: <>
4162     2: <>
4163        *** Failers
4164    No match
4165        <abc
4166    No match
4167    
4168    /(?1)/
4169    Failed: reference to non-existent subpattern at offset 3
4170    
4171    /((?2)(abc)/
4172    Failed: reference to non-existent subpattern at offset 4
4173    
4174    /^(abc)def(?1)/
4175    Capturing subpattern count = 1
4176    Options: anchored
4177    No first char
4178    No need char
4179        abcdefabc
4180     0: abcdefabc
4181     1: abc
4182    
4183    /^(a|b|c)=(?1)+/
4184    Capturing subpattern count = 1
4185    Options: anchored
4186    No first char
4187    No need char
4188        a=a
4189     0: a=a
4190     1: a
4191        a=b
4192     0: a=b
4193     1: a
4194        a=bc
4195     0: a=bc
4196     1: a
4197    
4198    /^(a|b|c)=((?1))+/
4199    Capturing subpattern count = 2
4200    Options: anchored
4201    No first char
4202    No need char
4203        a=a
4204     0: a=a
4205     1: a
4206     2: a
4207        a=b
4208     0: a=b
4209     1: a
4210     2: b
4211        a=bc
4212     0: a=bc
4213     1: a
4214     2: c
4215    
4216    /a(?P<name1>b|c)d(?P<longername2>e)/D
4217    ------------------------------------------------------------------
4218      0  28 Bra 0
4219      3     a
4220      5   5 Bra 1
4221      8     b
4222     10   5 Alt
4223     13     c
4224     15  10 Ket
4225     18     d
4226     20   5 Bra 2
4227     23     e
4228     25   5 Ket
4229     28  28 Ket
4230     31     End
4231    ------------------------------------------------------------------
4232    Capturing subpattern count = 2
4233    Named capturing subpatterns:
4234      longername2   2
4235      name1         1
4236    No options
4237    First char = 'a'
4238    Need char = 'e'
4239        abde
4240     0: abde
4241     1: b
4242     2: e
4243        acde
4244     0: acde
4245     1: c
4246     2: e
4247    
4248    /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D
4249    ------------------------------------------------------------------
4250      0  35 Bra 0
4251      3  21 Bra 0
4252      6     a
4253      8  13 Bra 1
4254     11     c
4255     13   5 Bra 2
4256     16     d
4257     18   5 Ket
4258     21  13 Ket
4259     24  21 Ket
4260     27   5 Bra 3
4261     30     a
4262     32   5 Ket
4263     35  35 Ket
4264     38     End
4265    ------------------------------------------------------------------
4266    Capturing subpattern count = 3
4267    Named capturing subpatterns:
4268      a   3
4269      c   1
4270      d   2
4271    No options
4272    First char = 'a'
4273    Need char = 'a'
4274    
4275    /(?P<a>a)...(?P=a)bbb(?P>a)d/D
4276    ------------------------------------------------------------------
4277      0  34 Bra 0
4278      3   5 Bra 1
4279      6     a
4280      8   5 Ket
4281     11     Any
4282     12     Any
4283     13     Any
4284     14     \1
4285     17     bbb
4286     23   6 Once
4287     26   3 Recurse
4288     29   6 Ket
4289     32     d
4290     34  34 Ket
4291     37     End
4292    ------------------------------------------------------------------
4293    Capturing subpattern count = 1
4294    Max back reference = 1
4295    Named capturing subpatterns:
4296      a   1
4297    No options
4298    First char = 'a'
4299    Need char = 'd'
4300    
4301    /^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/i
4302    Capturing subpattern count = 4
4303    Max back reference = 4
4304    Named capturing subpatterns:
4305      four    4
4306      one     1
4307      three   3
4308      two     2
4309    Partial matching not supported
4310    Options: anchored caseless
4311    No first char
4312    No need char
4313        1221
4314     0: 1221
4315     1: 1221
4316     2: 1
4317        Satan, oscillate my metallic sonatas!
4318     0: Satan, oscillate my metallic sonatas!
4319     1: <unset>
4320     2: <unset>
4321     3: Satan, oscillate my metallic sonatas
4322     4: S
4323        A man, a plan, a canal: Panama!
4324     0: A man, a plan, a canal: Panama!
4325     1: <unset>
4326     2: <unset>
4327     3: A man, a plan, a canal: Panama
4328     4: A
4329        Able was I ere I saw Elba.
4330     0: Able was I ere I saw Elba.
4331     1: <unset>
4332     2: <unset>
4333     3: Able was I ere I saw Elba
4334     4: A
4335        *** Failers
4336    No match
4337        The quick brown fox
4338    No match
4339    
4340    /((?(R)a|b))\1(?1)?/
4341    Capturing subpattern count = 1
4342    Max back reference = 1
4343    No options
4344    No first char
4345    No need char
4346      bb
4347     0: bb
4348     1: b
4349      bbaa
4350     0: bba
4351     1: b
4352    
4353    /(.*)a/sI
4354    Capturing subpattern count = 1
4355    Partial matching not supported
4356    Options: anchored dotall
4357    No first char
4358    Need char = 'a'
4359    
4360    /(.*)a\1/sI
4361    Capturing subpattern count = 1
4362    Max back reference = 1
4363    Partial matching not supported
4364    Options: dotall
4365    No first char
4366    Need char = 'a'
4367    
4368    /(.*)a(b)\2/sI
4369    Capturing subpattern count = 2
4370    Max back reference = 2
4371    Partial matching not supported
4372    Options: anchored dotall
4373    No first char
4374    Need char = 'b'
4375    
4376    /((.*)a|(.*)b)z/sI
4377    Capturing subpattern count = 3
4378    Partial matching not supported
4379    Options: anchored dotall
4380    No first char
4381    Need char = 'z'
4382    
4383    /((.*)a|(.*)b)z\1/sI
4384    Capturing subpattern count = 3
4385    Max back reference = 1
4386    Partial matching not supported
4387    Options: dotall
4388    No first char
4389    Need char = 'z'
4390    
4391    /((.*)a|(.*)b)z\2/sI
4392    Capturing subpattern count = 3
4393    Max back reference = 2
4394    Partial matching not supported
4395    Options: dotall
4396    No first char
4397    Need char = 'z'
4398    
4399    /((.*)a|(.*)b)z\3/sI
4400    Capturing subpattern count = 3
4401    Max back reference = 3
4402    Partial matching not supported
4403    Options: dotall
4404    No first char
4405    Need char = 'z'
4406    
4407    /((.*)a|^(.*)b)z\3/sI
4408    Capturing subpattern count = 3
4409    Max back reference = 3
4410    Partial matching not supported
4411    Options: anchored dotall
4412    No first char
4413    Need char = 'z'
4414    
4415    /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/sI
4416    Capturing subpattern count = 31
4417    Partial matching not supported
4418    Options: anchored dotall
4419    No first char
4420    No need char
4421    
4422    /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/sI
4423    Capturing subpattern count = 31
4424    Max back reference = 31
4425    Partial matching not supported
4426    Options: dotall
4427    No first char
4428    No need char
4429    
4430    /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/sI
4431    Capturing subpattern count = 32
4432    Max back reference = 32
4433    Partial matching not supported
4434    Options: dotall
4435    No first char
4436    No need char
4437    
4438    /(a)(bc)/ND
4439    ------------------------------------------------------------------
4440      0  21 Bra 0
4441      3   5 Bra 0
4442      6     a
4443      8   5 Ket
4444     11   7 Bra 0
4445     14     bc
4446     18   7 Ket
4447     21  21 Ket
4448     24     End
4449    ------------------------------------------------------------------
4450    Capturing subpattern count = 0
4451    Options: no_auto_capture
4452    First char = 'a'
4453    Need char = 'c'
4454      abc
4455     0: abc
4456    
4457    /(?P<one>a)(bc)/ND
4458    ------------------------------------------------------------------
4459      0  21 Bra 0
4460      3   5 Bra 1
4461      6     a
4462      8   5 Ket
4463     11   7 Bra 0
4464     14     bc
4465     18   7 Ket
4466     21  21 Ket
4467     24     End
4468    ------------------------------------------------------------------
4469    Capturing subpattern count = 1
4470    Named capturing subpatterns:
4471      one   1
4472    Options: no_auto_capture
4473    First char = 'a'
4474    Need char = 'c'
4475      abc
4476     0: abc
4477     1: a
4478    
4479    /(a)(?P<named>bc)/ND
4480    ------------------------------------------------------------------
4481      0  21 Bra 0
4482      3   5 Bra 0
4483      6     a
4484      8   5 Ket
4485     11   7 Bra 1
4486     14     bc
4487     18   7 Ket
4488     21  21 Ket
4489     24     End
4490    ------------------------------------------------------------------
4491    Capturing subpattern count = 1
4492    Named capturing subpatterns:
4493      named   1
4494    Options: no_auto_capture
4495    First char = 'a'
4496    Need char = 'c'
4497    
4498    /(a+)*zz/
4499    Capturing subpattern count = 1
4500    Partial matching not supported
4501    No options
4502    No first char
4503    Need char = 'z'
4504      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4505    Minimum match() limit = 8
4506    Minimum match() recursion limit = 7
4507     0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4508     1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4509      aaaaaaaaaaaaaz\M
4510    Minimum match() limit = 32768
4511    Minimum match() recursion limit = 43
4512    No match
4513    
4514    /(aaa(?C1)bbb|ab)/
4515    Capturing subpattern count = 1
4516    No options
4517    First char = 'a'
4518    Need char = 'b'
4519       aaabbb
4520    --->aaabbb
4521      1 ^  ^       b
4522     0: aaabbb
4523     1: aaabbb
4524       aaabbb\C*0
4525    --->aaabbb
4526      1 ^  ^       b
4527     0: aaabbb
4528     1: aaabbb
4529       aaabbb\C*1
4530    --->aaabbb
4531      1 ^  ^       b
4532    Callout data = 1
4533     0: ab
4534     1: ab
4535       aaabbb\C*-1
4536    --->aaabbb
4537      1 ^  ^       b
4538    Callout data = -1
4539    No match
4540    
4541    /ab(?P<one>cd)ef(?P<two>gh)/
4542    Capturing subpattern count = 2
4543    Named capturing subpatterns:
4544      one   1
4545      two   2
4546    No options
4547    First char = 'a'
4548    Need char = 'h'
4549        abcdefgh
4550     0: abcdefgh
4551     1: cd
4552     2: gh
4553        abcdefgh\C1\Gtwo
4554     0: abcdefgh
4555     1: cd
4556     2: gh
4557     1C cd (2)
4558     2G gh (2)
4559        abcdefgh\Cone\Ctwo
4560     0: abcdefgh
4561     1: cd
4562     2: gh
4563     1C cd (2)
4564     2C gh (2)
4565        abcdefgh\Cthree
4566    no parentheses with name "three"
4567     0: abcdefgh
4568     1: cd
4569     2: gh
4570    
4571    /(?P<Tes>)(?P<Test>)/D
4572    ------------------------------------------------------------------
4573      0  15 Bra 0
4574      3   3 Bra 1
4575      6   3 Ket
4576      9   3 Bra 2
4577     12   3 Ket
4578     15  15 Ket
4579     18     End
4580    ------------------------------------------------------------------
4581    Capturing subpattern count = 2
4582    Named capturing subpatterns:
4583      Tes    1
4584      Test   2
4585    No options
4586    No first char
4587    No need char
4588    
4589    /(?P<Test>)(?P<Tes>)/D
4590    ------------------------------------------------------------------
4591      0  15 Bra 0
4592      3   3 Bra 1
4593      6   3 Ket
4594      9   3 Bra 2
4595     12   3 Ket
4596     15  15 Ket
4597     18     End
4598    ------------------------------------------------------------------
4599    Capturing subpattern count = 2
4600    Named capturing subpatterns:
4601      Tes    2
4602      Test   1
4603    No options
4604    No first char
4605    No need char
4606    
4607    /(?P<Z>zz)(?P<A>aa)/
4608    Capturing subpattern count = 2
4609    Named capturing subpatterns:
4610      A   2
4611      Z   1
4612    No options
4613    First char = 'z'
4614    Need char = 'a'
4615        zzaa\CZ
4616     0: zzaa
4617     1: zz
4618     2: aa
4619     1C zz (2)
4620        zzaa\CA
4621     0: zzaa
4622     1: zz
4623     2: aa
4624     2C aa (2)
4625    
4626    /(?P<x>eks)(?P<x>eccs)/
4627    Failed: two named groups have the same name at offset 16
4628    
4629    /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/
4630    Failed: two named groups have the same name at offset 31
4631    
4632    "\[((?P<elem>\d+)(,(?P>elem))*)\]"
4633    Capturing subpattern count = 3
4634    Named capturing subpatterns:
4635      elem   2
4636    Partial matching not supported
4637    No options
4638    First char = '['
4639    Need char = ']'
4640        [10,20,30,5,5,4,4,2,43,23,4234]
4641     0: [10,20,30,5,5,4,4,2,43,23,4234]
4642     1: 10,20,30,5,5,4,4,2,43,23,4234
4643     2: 10
4644     3: ,4234
4645        *** Failers
4646    No match
4647        []
4648    No match
4649    
4650    "\[((?P<elem>\d+)(,(?P>elem))*)?\]"
4651    Capturing subpattern count = 3
4652    Named capturing subpatterns:
4653      elem   2
4654    Partial matching not supported
4655    No options
4656    First char = '['
4657    Need char = ']'
4658        [10,20,30,5,5,4,4,2,43,23,4234]
4659     0: [10,20,30,5,5,4,4,2,43,23,4234]
4660     1: 10,20,30,5,5,4,4,2,43,23,4234
4661     2: 10
4662     3: ,4234
4663        []
4664     0: []
4665    
4666    /(a(b(?2)c))?/D
4667    ------------------------------------------------------------------
4668      0  31 Bra 0
4669      3     Brazero
4670      4  24 Bra 1
4671      7     a
4672      9  16 Bra 2
4673     12     b
4674     14   6 Once
4675     17   9 Recurse
4676     20   6 Ket
4677     23     c
4678     25  16 Ket
4679     28  24 Ket
4680     31  31 Ket
4681     34     End
4682    ------------------------------------------------------------------
4683    Capturing subpattern count = 2
4684    No options
4685    No first char
4686    No need char
4687    
4688    /(a(b(?2)c))*/D
4689    ------------------------------------------------------------------
4690      0  31 Bra 0
4691      3     Brazero
4692      4  24 Bra 1
4693      7     a
4694      9  16 Bra 2
4695     12     b
4696     14   6 Once
4697     17   9 Recurse
4698     20   6 Ket
4699     23     c
4700     25  16 Ket
4701     28  24 KetRmax
4702     31  31 Ket
4703     34     End
4704    ------------------------------------------------------------------
4705    Capturing subpattern count = 2
4706    No options
4707    No first char
4708    No need char
4709    
4710    /(a(b(?2)c)){0,2}/D
4711    ------------------------------------------------------------------
4712      0  65 Bra 0
4713      3     Brazero
4714      4  58 Bra 0
4715      7  24 Bra 1
4716     10     a
4717     12  16 Bra 2
4718     15     b
4719     17   6 Once
4720     20  12 Recurse
4721     23   6 Ket
4722     26     c
4723     28  16 Ket
4724     31  24 Ket
4725     34     Brazero
4726     35  24 Bra 1
4727     38     a
4728     40  16 Bra 2
4729     43     b
4730     45   6 Once
4731     48  12 Recurse
4732     51   6 Ket
4733     54     c
4734     56  16 Ket
4735     59  24 Ket
4736     62  58 Ket
4737     65  65 Ket
4738     68     End
4739    ------------------------------------------------------------------
4740    Capturing subpattern count = 2
4741    No options
4742    No first char
4743    No need char
4744    
4745    /[ab]{1}+/D
4746    ------------------------------------------------------------------
4747      0  47 Bra 0
4748      3  41 Once
4749      6     [ab]{1,1}
4750     44  41 Ket
4751     47  47 Ket
4752     50     End
4753    ------------------------------------------------------------------
4754    Capturing subpattern count = 0
4755    No options
4756    No first char
4757    No need char
4758    
4759    /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/i
4760    Capturing subpattern count = 3
4761    Partial matching not supported
4762    Options: caseless
4763    No first char
4764    Need char = 'g' (caseless)
4765         Baby Bjorn Active Carrier - With free SHIPPING!!
4766     0: Baby Bjorn Active Carrier - With free SHIPPING!!
4767     1: Baby Bjorn Active Carrier - With free SHIPPING!!
4768    
4769    /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/iS
4770    Capturing subpattern count = 3
4771    Partial matching not supported
4772    Options: caseless
4773    No first char
4774    Need char = 'g' (caseless)
4775    Study returned NULL
4776         Baby Bjorn Active Carrier - With free SHIPPING!!
4777     0: Baby Bjorn Active Carrier - With free SHIPPING!!
4778     1: Baby Bjorn Active Carrier - With free SHIPPING!!
4779    
4780    /a*.*b/SD
4781    ------------------------------------------------------------------
4782      0   9 Bra 0
4783      3     a*
4784      5     Any*
4785      7     b
4786      9   9 Ket
4787     12     End
4788    ------------------------------------------------------------------
4789    Capturing subpattern count = 0
4790    Partial matching not supported
4791    No options
4792    No first char
4793    Need char = 'b'
4794    Study returned NULL
4795    
4796    /(a|b)*.?c/SD
4797    ------------------------------------------------------------------
4798      0  21 Bra 0
4799      3     Brazero
4800      4   5 Bra 1
4801      7     a
4802      9   5 Alt
4803     12     b
4804     14  10 KetRmax
4805     17     Any?
4806     19     c
4807     21  21 Ket
4808     24     End
4809    ------------------------------------------------------------------
4810    Capturing subpattern count = 1
4811    No options
4812    No first char
4813    Need char = 'c'
4814    Study returned NULL
4815    
4816    /abc(?C255)de(?C)f/D
4817    ------------------------------------------------------------------
4818      0  27 Bra 0
4819      3     abc
4820      9     Callout 255 10 1
4821     15     de
4822     19     Callout 0 16 1
4823     25     f
4824     27  27 Ket
4825     30     End
4826    ------------------------------------------------------------------
4827    Capturing subpattern count = 0
4828    No options
4829    First char = 'a'
4830    Need char = 'f'
4831    
4832    /abcde/CD
4833    ------------------------------------------------------------------
4834      0  49 Bra 0
4835      3     Callout 255 0 1
4836      9     a
4837     11     Callout 255 1 1
4838     17     b
4839     19     Callout 255 2 1
4840     25     c
4841     27     Callout 255 3 1
4842     33     d
4843     35     Callout 255 4 1
4844     41     e
4845     43     Callout 255 5 0
4846     49  49 Ket
4847     52     End
4848    ------------------------------------------------------------------
4849    Capturing subpattern count = 0
4850    Options:
4851    First char = 'a'
4852    Need char = 'e'
4853      abcde
4854    --->abcde
4855     +0 ^         a
4856     +1 ^^        b
4857     +2 ^ ^       c
4858     +3 ^  ^      d
4859     +4 ^   ^     e
4860     +5 ^    ^
4861     0: abcde
4862      abcdfe
4863    --->abcdfe
4864     +0 ^          a
4865     +1 ^^         b
4866     +2 ^ ^        c
4867     +3 ^  ^       d
4868     +4 ^   ^      e
4869    No match
4870    
4871    /a*b/CD
4872    ------------------------------------------------------------------
4873      0  25 Bra 0
4874      3     Callout 255 0 2
4875      9     a*
4876     11     Callout 255 2 1
4877     17     b
4878     19     Callout 255 3 0
4879     25  25 Ket
4880     28     End
4881    ------------------------------------------------------------------
4882    Capturing subpattern count = 0
4883    Partial matching not supported
4884    Options:
4885    No first char
4886    Need char = 'b'
4887      ab
4888    --->ab
4889     +0 ^      a*
4890     +2 ^^     b
4891     +3 ^ ^
4892     0: ab
4893      aaaab
4894    --->aaaab
4895     +0 ^         a*
4896     +2 ^   ^     b
4897     +3 ^    ^
4898     0: aaaab
4899      aaaacb
4900    --->aaaacb
4901     +0 ^          a*
4902     +2 ^   ^      b
4903     +2 ^  ^       b
4904     +2 ^ ^        b
4905     +2 ^^         b
4906     +2 ^          b
4907     +0  ^         a*
4908     +2  ^  ^      b
4909     +2  ^ ^       b
4910     +2  ^^        b
4911     +2  ^         b
4912     +0   ^        a*
4913     +2   ^ ^      b
4914     +2   ^^       b
4915     +2   ^        b
4916     +0    ^       a*
4917     +2    ^^      b
4918     +2    ^       b
4919     +0     ^      a*
4920     +2     ^      b
4921     +0      ^     a*
4922     +2      ^     b
4923     +3      ^^
4924     0: b
4925    
4926    /a+b/CD
4927    ------------------------------------------------------------------
4928      0  25 Bra 0
4929      3     Callout 255 0 2
4930      9     a+
4931     11     Callout 255 2 1
4932     17     b
4933     19     Callout 255 3 0
4934     25  25 Ket
4935     28     End
4936    ------------------------------------------------------------------
4937    Capturing subpattern count = 0
4938    Partial matching not supported
4939    Options:
4940    First char = 'a'
4941    Need char = 'b'
4942      ab
4943    --->ab
4944     +0 ^      a+
4945     +2 ^^     b
4946     +3 ^ ^
4947     0: ab
4948      aaaab
4949    --->aaaab
4950     +0 ^         a+
4951     +2 ^   ^     b
4952     +3 ^    ^
4953     0: aaaab
4954      aaaacb
4955    --->aaaacb
4956     +0 ^          a+
4957     +2 ^   ^      b
4958     +2 ^  ^       b
4959     +2 ^ ^        b
4960     +2 ^^         b
4961     +0  ^         a+
4962     +2  ^  ^      b
4963     +2  ^ ^       b
4964     +2  ^^        b
4965     +0   ^        a+
4966     +2   ^ ^      b
4967     +2   ^^       b
4968     +0    ^       a+
4969     +2    ^^      b
4970    No match
4971    
4972    /(abc|def)x/CD
4973    ------------------------------------------------------------------
4974      0  92 Bra 0
4975      3     Callout 255 0 9
4976      9  33 Bra 1
4977     12     Callout 255 1 1
4978     18     a
4979     20     Callout 255 2 1
4980     26     b
4981     28     Callout 255 3 1
4982     34     c
4983     36     Callout 255 4 0
4984     42  33 Alt
4985     45     Callout 255 5 1
4986     51     d
4987     53     Callout 255 6 1
4988     59     e
4989     61     Callout 255 7 1
4990     67     f
4991     69     Callout 255 8 0
4992     75  66 Ket
4993     78     Callout 255 9 1
4994     84     x
4995     86     Callout 255 10 0
4996     92  92 Ket
4997     95     End
4998    ------------------------------------------------------------------
4999    Capturing subpattern count = 1
5000    Options:
5001    No first char
5002    Need char = 'x'
5003      abcx
5004    --->abcx
5005     +0 ^        (abc|def)
5006     +1 ^        a
5007     +2 ^^       b
5008     +3 ^ ^      c
5009     +4 ^  ^     |
5010     +9 ^  ^     x
5011    +10 ^   ^
5012     0: abcx
5013     1: abc
5014      defx
5015    --->defx
5016     +0 ^        (abc|def)
5017     +1 ^        a
5018     +5 ^        d
5019     +6 ^^       e
5020     +7 ^ ^      f
5021     +8 ^  ^     )
5022     +9 ^  ^     x
5023    +10 ^   ^
5024     0: defx
5025     1: def
5026      abcdefzx
5027    --->abcdefzx
5028     +0 ^            (abc|def)
5029     +1 ^            a
5030     +2 ^^           b
5031     +3 ^ ^          c
5032     +4 ^  ^         |
5033     +9 ^  ^         x
5034     +5 ^            d
5035     +0  ^           (abc|def)
5036     +1  ^           a
5037     +5  ^           d
5038     +0   ^          (abc|def)
5039     +1   ^          a
5040     +5   ^          d
5041     +0    ^         (abc|def)
5042     +1    ^         a
5043     +5    ^         d
5044     +6    ^^        e
5045     +7    ^ ^       f
5046     +8    ^  ^      )
5047     +9    ^  ^      x
5048     +0     ^        (abc|def)
5049     +1     ^        a
5050     +5     ^        d
5051     +0      ^       (abc|def)
5052     +1      ^       a
5053     +5      ^       d
5054     +0       ^      (abc|def)
5055     +1       ^      a
5056     +5       ^      d
5057     +0        ^     (abc|def)
5058     +1        ^     a
5059     +5        ^     d
5060    No match
5061    
5062    /(ab|cd){3,4}/C
5063    Capturing subpattern count = 1
5064    Options:
5065    No first char
5066    No need char
5067      ababab
5068    --->ababab
5069     +0 ^          (ab|cd){3,4}
5070     +1 ^          a
5071     +2 ^^         b
5072     +3 ^ ^        |
5073     +1 ^ ^        a
5074     +2 ^  ^       b
5075     +3 ^   ^      |
5076     +1 ^   ^      a
5077     +2 ^    ^     b
5078     +3 ^     ^    |
5079     +1 ^     ^    a
5080     +4 ^     ^    c
5081    +12 ^     ^
5082     0: ababab
5083     1: ab
5084      abcdabcd
5085    --->abcdabcd
5086     +0 ^            (ab|cd){3,4}
5087     +1 ^            a
5088     +2 ^^           b
5089     +3 ^ ^          |
5090     +1 ^ ^          a
5091     +4 ^ ^          c
5092     +5 ^  ^         d
5093     +6 ^   ^        )
5094     +1 ^   ^        a
5095     +2 ^    ^       b
5096     +3 ^     ^      |
5097     +1 ^     ^      a
5098     +4 ^     ^      c
5099     +5 ^      ^     d
5100     +6 ^       ^    )
5101    +12 ^       ^
5102     0: abcdabcd
5103     1: cd
5104      abcdcdcdcdcd
5105    --->abcdcdcdcdcd
5106     +0 ^                (ab|cd){3,4}
5107     +1 ^                a
5108     +2 ^^               b
5109     +3 ^ ^              |
5110     +1 ^ ^              a
5111     +4 ^ ^              c
5112     +5 ^  ^             d
5113     +6 ^   ^            )
5114     +1 ^   ^            a
5115     +4 ^   ^            c
5116     +5 ^    ^           d
5117     +6 ^     ^          )
5118     +1 ^     ^          a
5119     +4 ^     ^          c
5120     +5 ^      ^         d
5121     +6 ^       ^        )
5122    +12 ^       ^
5123     0: abcdcdcd
5124     1: cd
5125    
5126    /([ab]{,4}c|xy)/CD
5127    ------------------------------------------------------------------
5128      0 131 Bra 0
5129      3     Callout 255 0 14
5130      9  88 Bra 1
5131     12     Callout 255 1 4
5132     18     [ab]
5133     51     Callout 255 5 1
5134     57     {
5135     59     Callout 255 6 1
5136     65     ,
5137     67     Callout 255 7 1
5138     73     4
5139     75     Callout 255 8 1
5140     81     }
5141     83     Callout 255 9 1
5142     89     c
5143     91     Callout 255 10 0
5144     97  25 Alt
5145    100     Callout 255 11 1
5146    106     x
5147    108     Callout 255 12 1
5148    114     y
5149    116     Callout 255 13 0
5150    122 113 Ket
5151    125     Callout 255 14 0
5152    131 131 Ket
5153    134     End
5154    ------------------------------------------------------------------
5155    Capturing subpattern count = 1
5156    Options:
5157    No first char
5158    No need char
5159        Note: that { does NOT introduce a quantifier
5160    --->Note: that { does NOT introduce a quantifier
5161     +0 ^                                                ([ab]{,4}c|xy)
5162     +1 ^                                                [ab]
5163    +11 ^                                                x
5164     +0  ^                                               ([ab]{,4}c|xy)
5165     +1  ^                                               [ab]
5166    +11  ^                                               x
5167     +0   ^                                              ([ab]{,4}c|xy)
5168     +1   ^                                              [ab]
5169    +11   ^                                              x
5170     +0    ^                                             ([ab]{,4}c|xy)
5171     +1    ^                                             [ab]
5172    +11    ^                                             x
5173     +0     ^                                            ([ab]{,4}c|xy)
5174     +1     ^                                            [ab]
5175    +11     ^                                            x
5176     +0      ^                                           ([ab]{,4}c|xy)
5177     +1      ^                                           [ab]
5178    +11      ^                                           x
5179     +0       ^                                          ([ab]{,4}c|xy)
5180     +1       ^                                          [ab]
5181    +11       ^                                          x
5182     +0        ^                                         ([ab]{,4}c|xy)
5183     +1        ^                                         [ab]
5184    +11        ^                                         x
5185     +0         ^                                        ([ab]{,4}c|xy)
5186     +1         ^                                        [ab]
5187     +5         ^^                                       {
5188    +11         ^                                        x
5189     +0          ^                                       ([ab]{,4}c|xy)
5190     +1          ^                                       [ab]
5191    +11          ^                                       x
5192     +0           ^                                      ([ab]{,4}c|xy)
5193     +1           ^                                      [ab]
5194    +11           ^                                      x
5195     +0            ^                                     ([ab]{,4}c|xy)
5196     +1            ^                                     [ab]
5197    +11            ^                                     x
5198     +0             ^                                    ([ab]{,4}c|xy)
5199     +1             ^                                    [ab]
5200    +11             ^                                    x
5201     +0              ^                                   ([ab]{,4}c|xy)
5202     +1              ^                                   [ab]
5203    +11              ^                                   x
5204     +0               ^                                  ([ab]{,4}c|xy)
5205     +1               ^                                  [ab]
5206    +11               ^                                  x
5207     +0                ^                                 ([ab]{,4}c|xy)
5208     +1                ^                                 [ab]
5209    +11                ^                                 x
5210     +0                 ^                                ([ab]{,4}c|xy)
5211     +1                 ^                                [ab]
5212    +11                 ^                                x
5213     +0                  ^                               ([ab]{,4}c|xy)
5214     +1                  ^                               [ab]
5215    +11                  ^                               x
5216     +0                   ^                              ([ab]{,4}c|xy)
5217     +1                   ^                              [ab]
5218    +11                   ^                              x
5219     +0                    ^                             ([ab]{,4}c|xy)
5220     +1                    ^                             [ab]
5221    +11                    ^                             x
5222     +0                     ^                            ([ab]{,4}c|xy)
5223     +1                     ^                            [ab]
5224    +11                     ^                            x
5225     +0                      ^                           ([ab]{,4}c|xy)
5226     +1                      ^                           [ab]
5227    +11                      ^                           x
5228     +0                       ^                          ([ab]{,4}c|xy)
5229     +1                       ^                          [ab]
5230    +11                       ^                          x
5231     +0                        ^                         ([ab]{,4}c|xy)
5232     +1                        ^                         [ab]
5233    +11                        ^                         x
5234     +0                         ^                        ([ab]{,4}c|xy)
5235     +1                         ^                        [ab]
5236    +11                         ^                        x
5237     +0                          ^                       ([ab]{,4}c|xy)
5238     +1                          ^                       [ab]
5239    +11                          ^                       x
5240     +0                           ^                      ([ab]{,4}c|xy)
5241     +1                           ^                      [ab]
5242    +11                           ^                      x
5243     +0                            ^                     ([ab]{,4}c|xy)
5244     +1                            ^                     [ab]
5245    +11                            ^