/[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 205 by ph10, Fri Aug 3 13:18:33 2007 UTC revision 604 by ph10, Thu Jun 2 19:04:54 2011 UTC
# Line 1  Line 1 
1    /-- This set of tests is not Perl-compatible. It checks on special features
2        of PCRE's API, error diagnostics, and the compiled code of some patterns.
3        It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4        Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5        either because PCRE can't be compatible, or there is a possible Perl
6        bug. --/
7    
8    /-- Originally, the Perl >= 5.10 things were in here too, but now I have
9        separated many (most?) of them out into test 11. However, there may still
10        be some that were overlooked. --/
11    
12  /(a)b|/I  /(a)b|/I
13  Capturing subpattern count = 1  Capturing subpattern count = 1
14  No options  No options
# Line 40  No match Line 51  No match
51    
52  /a+bc/I  /a+bc/I
53  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
54  No options  No options
55  First char = 'a'  First char = 'a'
56  Need char = 'c'  Need char = 'c'
57    
58  /a*bc/I  /a*bc/I
59  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
60  No options  No options
61  No first char  No first char
62  Need char = 'c'  Need char = 'c'
63    
64  /a{3}bc/I  /a{3}bc/I
65  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
66  No options  No options
67  First char = 'a'  First char = 'a'
68  Need char = 'c'  Need char = 'c'
69    
70  /(abc|a+z)/I  /(abc|a+z)/I
71  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
72  No options  No options
73  First char = 'a'  First char = 'a'
74  No need char  No need char
# Line 96  Failed: missing terminating ] for charac Line 103  Failed: missing terminating ] for charac
103  /(?X)[\B]/  /(?X)[\B]/
104  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
105    
106    /(?X)[\R]/
107    Failed: invalid escape sequence in character class at offset 6
108    
109    /(?X)[\X]/
110    Failed: invalid escape sequence in character class at offset 6
111    
112    /[\B]/BZ
113    ------------------------------------------------------------------
114            Bra
115            B
116            Ket
117            End
118    ------------------------------------------------------------------
119    
120    /[\R]/BZ
121    ------------------------------------------------------------------
122            Bra
123            R
124            Ket
125            End
126    ------------------------------------------------------------------
127    
128    /[\X]/BZ
129    ------------------------------------------------------------------
130            Bra
131            X
132            Ket
133            End
134    ------------------------------------------------------------------
135    
136  /[z-a]/  /[z-a]/
137  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
138    
# Line 109  Failed: missing ) at offset 4 Line 146  Failed: missing ) at offset 4
146  Failed: missing ) after comment at offset 7  Failed: missing ) after comment at offset 7
147    
148  /(?z)abc/  /(?z)abc/
149  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? or (?- at offset 2
150    
151  /.*b/I  /.*b/I
152  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
153  No options  No options
154  First char at start or follows newline  First char at start or follows newline
155  Need char = 'b'  Need char = 'b'
156    
157  /.*?b/I  /.*?b/I
158  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
159  No options  No options
160  First char at start or follows newline  First char at start or follows newline
161  Need char = 'b'  Need char = 'b'
# Line 140  Capturing subpattern count = 0 Line 175  Capturing subpattern count = 0
175  No options  No options
176  No first char  No first char
177  No need char  No need char
178    Subject length lower bound = 3
179  Starting byte set: c d e  Starting byte set: c d e
180      this sentence eventually mentions a cat      this sentence eventually mentions a cat
181   0: cat   0: cat
# Line 151  Capturing subpattern count = 0 Line 187  Capturing subpattern count = 0
187  Options: caseless  Options: caseless
188  No first char  No first char
189  No need char  No need char
190    Subject length lower bound = 3
191  Starting byte set: C D E c d e  Starting byte set: C D E c d e
192      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
193   0: CAT   0: CAT
# Line 162  Capturing subpattern count = 0 Line 199  Capturing subpattern count = 0
199  No options  No options
200  No first char  No first char
201  No need char  No need char
202    Subject length lower bound = 1
203  Starting byte set: a b c d  Starting byte set: a b c d
204    
205  /(a|[^\dZ])/IS  /(a|[^\dZ])/IS
# Line 169  Capturing subpattern count = 1 Line 207  Capturing subpattern count = 1
207  No options  No options
208  No first char  No first char
209  No need char  No need char
210    Subject length lower bound = 1
211  Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a  Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
212    \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
213    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
# Line 189  Capturing subpattern count = 1 Line 228  Capturing subpattern count = 1
228  No options  No options
229  No first char  No first char
230  No need char  No need char
231    Subject length lower bound = 1
232  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
233    
234  /(ab\2)/  /(ab\2)/
# Line 310  No match Line 350  No match
350  No match  No match
351    
352  /ab(?z)cd/  /ab(?z)cd/
353  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? or (?- at offset 4
354    
355  /^abc|def/I  /^abc|def/I
356  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 324  No need char Line 364  No need char
364    
365  /.*((abc)$|(def))/I  /.*((abc)$|(def))/I
366  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
367  No options  No options
368  First char at start or follows newline  First char at start or follows newline
369  No need char  No need char
# Line 338  No need char Line 377  No need char
377   2: <unset>   2: <unset>
378   3: def   3: def
379    
380  /abc/IP  /abc/P
381      abc      abc
382   0: abc   0: abc
383      *** Failers      *** Failers
384  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
385    
386  /^abc|def/IP  /^abc|def/P
387      abcdef      abcdef
388   0: abc   0: abc
389      abcdef\B      abcdef\B
390   0: def   0: def
391    
392  /.*((abc)$|(def))/IP  /.*((abc)$|(def))/P
393      defabc      defabc
394   0: defabc   0: defabc
395   1: abc   1: abc
# Line 360  No match: POSIX code 17: match failed Line 399  No match: POSIX code 17: match failed
399   1: def   1: def
400   3: def   3: def
401    
402  /the quick brown fox/IP  /the quick brown fox/P
403      the quick brown fox      the quick brown fox
404   0: the quick brown fox   0: the quick brown fox
405      *** Failers      *** Failers
# Line 368  No match: POSIX code 17: match failed Line 407  No match: POSIX code 17: match failed
407      The Quick Brown Fox      The Quick Brown Fox
408  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
409    
410  /the quick brown fox/IPi  /the quick brown fox/Pi
411      the quick brown fox      the quick brown fox
412   0: the quick brown fox   0: the quick brown fox
413      The Quick Brown Fox      The Quick Brown Fox
414   0: The Quick Brown Fox   0: The Quick Brown Fox
415    
416  /abc.def/IP  /abc.def/P
417      *** Failers      *** Failers
418  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
419      abc\ndef      abc\ndef
420  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
421    
422  /abc$/IP  /abc$/P
423      abc      abc
424   0: abc   0: abc
425      abc\n      abc\n
426   0: abc   0: abc
427    
428  /(abc)\2/IP  /(abc)\2/P
429  Failed: POSIX code 15: bad back reference at offset 7  Failed: POSIX code 15: bad back reference at offset 7
430    
431  /(abc\1)/IP  /(abc\1)/P
432      abc      abc
433  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
434    
# Line 401  Failed: missing terminating ] for charac Line 440  Failed: missing terminating ] for charac
440    
441  /[^aeiou ]{3,}/I  /[^aeiou ]{3,}/I
442  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
443  No options  No options
444  No first char  No first char
445  No need char  No need char
# Line 410  No need char Line 448  No need char
448    
449  /<.*>/I  /<.*>/I
450  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
451  No options  No options
452  First char = '<'  First char = '<'
453  Need char = '>'  Need char = '>'
# Line 419  Need char = '>' Line 456  Need char = '>'
456    
457  /<.*?>/I  /<.*?>/I
458  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
459  No options  No options
460  First char = '<'  First char = '<'
461  Need char = '>'  Need char = '>'
# Line 428  Need char = '>' Line 464  Need char = '>'
464    
465  /<.*>/IU  /<.*>/IU
466  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
467  Options: ungreedy  Options: ungreedy
468  First char = '<'  First char = '<'
469  Need char = '>'  Need char = '>'
# Line 437  Need char = '>' Line 472  Need char = '>'
472    
473  /(?U)<.*>/I  /(?U)<.*>/I
474  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
475  Options: ungreedy  Options: ungreedy
476  First char = '<'  First char = '<'
477  Need char = '>'  Need char = '>'
# Line 446  Need char = '>' Line 480  Need char = '>'
480    
481  /<.*?>/IU  /<.*?>/IU
482  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
483  Options: ungreedy  Options: ungreedy
484  First char = '<'  First char = '<'
485  Need char = '>'  Need char = '>'
# Line 455  Need char = '>' Line 488  Need char = '>'
488    
489  /={3,}/IU  /={3,}/IU
490  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
491  Options: ungreedy  Options: ungreedy
492  First char = '='  First char = '='
493  Need char = '='  Need char = '='
# Line 464  Need char = '=' Line 496  Need char = '='
496    
497  /(?U)={3,}?/I  /(?U)={3,}?/I
498  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
499  Options: ungreedy  Options: ungreedy
500  First char = '='  First char = '='
501  Need char = '='  Need char = '='
# Line 522  No need char Line 553  No need char
553    
554  /(?s).*/I  /(?s).*/I
555  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
556  Options: anchored dotall  Options: anchored dotall
557  No first char  No first char
558  No need char  No need char
# Line 532  Capturing subpattern count = 0 Line 562  Capturing subpattern count = 0
562  No options  No options
563  No first char  No first char
564  No need char  No need char
565    Subject length lower bound = 1
566  Starting byte set: a b c d  Starting byte set: a b c d
567    
568  /(?i)[abcd]/IS  /(?i)[abcd]/IS
# Line 539  Capturing subpattern count = 0 Line 570  Capturing subpattern count = 0
570  Options: caseless  Options: caseless
571  No first char  No first char
572  No need char  No need char
573    Subject length lower bound = 1
574  Starting byte set: A B C D a b c d  Starting byte set: A B C D a b c d
575    
576  /(?m)[xy]|(b|c)/IS  /(?m)[xy]|(b|c)/IS
# Line 546  Capturing subpattern count = 1 Line 578  Capturing subpattern count = 1
578  Options: multiline  Options: multiline
579  No first char  No first char
580  No need char  No need char
581    Subject length lower bound = 1
582  Starting byte set: b c x y  Starting byte set: b c x y
583    
584  /(^a|^b)/Im  /(^a|^b)/Im
# Line 584  Failed: syntax error in subpattern name Line 617  Failed: syntax error in subpattern name
617  /((?s)blah)\s+\1/I  /((?s)blah)\s+\1/I
618  Capturing subpattern count = 1  Capturing subpattern count = 1
619  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
620  No options  No options
621  First char = 'b'  First char = 'b'
622  Need char = 'h'  Need char = 'h'
# Line 592  Need char = 'h' Line 624  Need char = 'h'
624  /((?i)blah)\s+\1/I  /((?i)blah)\s+\1/I
625  Capturing subpattern count = 1  Capturing subpattern count = 1
626  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
627  No options  No options
628  First char = 'b' (caseless)  First char = 'b' (caseless)
629  Need char = 'h' (caseless)  Need char = 'h' (caseless)
# Line 601  Need char = 'h' (caseless) Line 632  Need char = 'h' (caseless)
632  ------------------------------------------------------------------  ------------------------------------------------------------------
633          Bra          Bra
634          CBra 1          CBra 1
635       01 Opt       /i b
      NC b  
636          Ket          Ket
      00 Opt  
637          Ket          Ket
638          End          End
639  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 612  Capturing subpattern count = 1 Line 641  Capturing subpattern count = 1
641  No options  No options
642  First char = 'b' (caseless)  First char = 'b' (caseless)
643  No need char  No need char
644  Study returned NULL  Subject length lower bound = 1
645    No set of starting bytes
646    
647  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
648  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
649  No options  No options
650  No first char  No first char
651  No need char  No need char
652    Subject length lower bound = 1
653  Starting byte set: C a b c d  Starting byte set: C a b c d
654    
655  /a$/I  /a$/I
# Line 668  Need char = 'c' Line 698  Need char = 'c'
698    
699  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
700  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
701  Options: anchored  Options: anchored
702  No first char  No first char
703  No need char  No need char
# Line 685  Capturing subpattern count = 0 Line 714  Capturing subpattern count = 0
714  No options  No options
715  No first char  No first char
716  No need char  No need char
717    Subject length lower bound = 1
718  Starting byte set: a b  Starting byte set: a b
719    
720  /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
# Line 692  Capturing subpattern count = 1 Line 722  Capturing subpattern count = 1
722  No options  No options
723  No first char  No first char
724  Need char = 'a'  Need char = 'a'
725    Subject length lower bound = 5
726  Starting byte set: a o  Starting byte set: a o
727    
728  /(?!alphabet)[ab]/IS  /(?!alphabet)[ab]/IS
# Line 699  Capturing subpattern count = 0 Line 730  Capturing subpattern count = 0
730  No options  No options
731  No first char  No first char
732  No need char  No need char
733    Subject length lower bound = 1
734  Starting byte set: a b  Starting byte set: a b
735    
736  /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
737  Capturing subpattern count = 0  Capturing subpattern count = 0
738    Contains explicit CR or LF match
739  Options: multiline  Options: multiline
740  No first char  No first char
741  Need char = 'r'  Need char = 'r'
# Line 719  No match Line 752  No match
752    
753  /^(?<=foo\n)bar/Im  /^(?<=foo\n)bar/Im
754  Capturing subpattern count = 0  Capturing subpattern count = 0
755    Contains explicit CR or LF match
756  Options: multiline  Options: multiline
757  First char at start or follows newline  First char at start or follows newline
758  Need char = 'r'  Need char = 'r'
# Line 782  No need char Line 816  No need char
816    
817  /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
818  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
819  No options  No options
820  First char at start or follows newline  First char at start or follows newline
821  No need char  No need char
# Line 852  No match Line 885  No match
885      a      a
886  No match  No match
887    
888  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/I  /This one is here because Perl behaves differently; see also the following/I
889  Capturing subpattern count = 0  Capturing subpattern count = 0
890  No options  No options
891  First char = 'T'  First char = 'T'
# Line 864  Max back reference = 1 Line 897  Max back reference = 1
897  Options: anchored  Options: anchored
898  No first char  No first char
899  No need char  No need char
900        aaaa
901    No match
902      aaaaaa      aaaaaa
903   0: aaaaaa  No match
904   1: aa  
905    /Perl does not fail these two for the final subjects. Neither did PCRE until/
906    /release 8.01. The problem is in backtracking into a subpattern that contains/
907    No match
908    /a recursive reference to itself. PCRE has now made these into atomic patterns./
909    No match
910    
911    /^(xa|=?\1a){2}$/
912        xa=xaa
913     0: xa=xaa
914     1: =xaa
915        ** Failers
916    No match
917        xa=xaaa
918    No match
919    
920    /^(xa|=?\1a)+$/
921        xa=xaa
922     0: xa=xaa
923     1: =xaa
924        ** Failers
925    No match
926        xa=xaaa
927    No match
928    
929  /These are syntax tests from Perl 5.005/I  /These are syntax tests from Perl 5.005/I
930  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 944  Failed: missing ) at offset 4 Line 1002  Failed: missing ) at offset 4
1002  Failed: unrecognized character after (?< at offset 3  Failed: unrecognized character after (?< at offset 3
1003    
1004  /a(?{)b/  /a(?{)b/
1005  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1006    
1007  /a(?{{})b/  /a(?{{})b/
1008  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1009    
1010  /a(?{}})b/  /a(?{}})b/
1011  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1012    
1013  /a(?{"{"})b/  /a(?{"{"})b/
1014  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1015    
1016  /a(?{"{"}})b/  /a(?{"{"}})b/
1017  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1018    
1019  /(?(1?)a|b)/  /(?(1?)a|b)/
1020  Failed: malformed number or name after (?( at offset 4  Failed: malformed number or name after (?( at offset 4
1021    
 /(?(1)a|b|c)/  
 Failed: conditional group contains more than two branches at offset 10  
   
1022  /[a[:xyz:/  /[a[:xyz:/
1023  Failed: missing terminating ] for character class at offset 8  Failed: missing terminating ] for character class at offset 8
1024    
# Line 1004  copy substring 5 failed -7 Line 1059  copy substring 5 failed -7
1059    
1060  /(.{20})/I  /(.{20})/I
1061  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1062  No options  No options
1063  No first char  No first char
1064  No need char  No need char
# Line 1022  No need char Line 1076  No need char
1076    
1077  /(.{15})/I  /(.{15})/I
1078  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1079  No options  No options
1080  No first char  No first char
1081  No need char  No need char
# Line 1037  No need char Line 1090  No need char
1090    
1091  /(.{16})/I  /(.{16})/I
1092  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1093  No options  No options
1094  No first char  No first char
1095  No need char  No need char
# Line 1104  No need char Line 1156  No need char
1156  )((?:[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]+
1157  )?)?)?)?)?)?)?)?)?otherword/I  )?)?)?)?)?)?)?)?)?otherword/I
1158  Capturing subpattern count = 8  Capturing subpattern count = 8
1159  Partial matching not supported  Contains explicit CR or LF match
1160  No options  No options
1161  First char = 'w'  First char = 'w'
1162  Need char = 'd'  Need char = 'd'
# Line 1118  Need char = 'd' Line 1170  Need char = 'd'
1170          End          End
1171  ------------------------------------------------------------------  ------------------------------------------------------------------
1172  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1173  No options  No options
1174  First char at start or follows newline  First char at start or follows newline
1175  Need char = 'X'  Need char = 'X'
# Line 1126  Need char = 'X' Line 1177  Need char = 'X'
1177  /.*X/IDZs  /.*X/IDZs
1178  ------------------------------------------------------------------  ------------------------------------------------------------------
1179          Bra          Bra
1180          Any*          AllAny*
1181          X          X
1182          Ket          Ket
1183          End          End
1184  ------------------------------------------------------------------  ------------------------------------------------------------------
1185  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1186  Options: anchored dotall  Options: anchored dotall
1187  No first char  No first char
1188  Need char = 'X'  Need char = 'X'
# Line 1151  Need char = 'X' Line 1201  Need char = 'X'
1201          End          End
1202  ------------------------------------------------------------------  ------------------------------------------------------------------
1203  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1204  No options  No options
1205  First char at start or follows newline  First char at start or follows newline
1206  No need char  No need char
# Line 1160  No need char Line 1209  No need char
1209  ------------------------------------------------------------------  ------------------------------------------------------------------
1210          Bra          Bra
1211          CBra 1          CBra 1
1212          Any*          AllAny*
1213          X          X
1214          Alt          Alt
1215          ^          ^
# Line 1170  No need char Line 1219  No need char
1219          End          End
1220  ------------------------------------------------------------------  ------------------------------------------------------------------
1221  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1222  Options: anchored dotall  Options: anchored dotall
1223  No first char  No first char
1224  No need char  No need char
# Line 1179  No need char Line 1227  No need char
1227  ------------------------------------------------------------------  ------------------------------------------------------------------
1228          Bra          Bra
1229          CBra 1          CBra 1
1230          Any*          AllAny*
1231          X          X
1232          Alt          Alt
1233          ^          ^
# Line 1189  No need char Line 1237  No need char
1237          End          End
1238  ------------------------------------------------------------------  ------------------------------------------------------------------
1239  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1240  Options: anchored dotall  Options: anchored dotall
1241  No first char  No first char
1242  No need char  No need char
# Line 1198  No need char Line 1245  No need char
1245  ------------------------------------------------------------------  ------------------------------------------------------------------
1246          Bra          Bra
1247          Bra          Bra
1248       04 Opt          AllAny*
         Any*  
1249          X          X
1250          Alt          Alt
      04 Opt  
1251          ^          ^
1252          B          B
1253          Ket          Ket
      00 Opt  
1254          Ket          Ket
1255          End          End
1256  ------------------------------------------------------------------  ------------------------------------------------------------------
1257  Capturing subpattern count = 0  Capturing subpattern count = 0
1258  Partial matching not supported  Options: anchored
1259  No options  No first char
 First char at start or follows newline  
1260  No need char  No need char
1261    
1262  /\Biss\B/I+  /\Biss\B/I+
# Line 1296  No need char Line 1339  No need char
1339    
1340  /.*iss/Ig+  /.*iss/Ig+
1341  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1342  No options  No options
1343  First char at start or follows newline  First char at start or follows newline
1344  Need char = 's'  Need char = 's'
# Line 1347  No need char Line 1389  No need char
1389    
1390  /^ab\n/Ig+  /^ab\n/Ig+
1391  Capturing subpattern count = 0  Capturing subpattern count = 0
1392    Contains explicit CR or LF match
1393  Options: anchored  Options: anchored
1394  No first char  No first char
1395  No need char  No need char
# Line 1356  No need char Line 1399  No need char
1399    
1400  /^ab\n/Img+  /^ab\n/Img+
1401  Capturing subpattern count = 0  Capturing subpattern count = 0
1402    Contains explicit CR or LF match
1403  Options: multiline  Options: multiline
1404  First char at start or follows newline  First char at start or follows newline
1405  Need char = 10  Need char = 10
# Line 1397  Need char = 'c' Line 1441  Need char = 'c'
1441    
1442  /a*/I  /a*/I
1443  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1444  No options  No options
1445  No first char  No first char
1446  No need char  No need char
1447    
1448  /a+/I  /a+/I
1449  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1450  No options  No options
1451  First char = 'a'  First char = 'a'
1452  No need char  No need char
1453    
1454  /(baa|a+)/I  /(baa|a+)/I
1455  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1456  No options  No options
1457  No first char  No first char
1458  Need char = 'a'  Need char = 'a'
1459    
1460  /a{0,3}/I  /a{0,3}/I
1461  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1462  No options  No options
1463  No first char  No first char
1464  No need char  No need char
1465    
1466  /baa{3,}/I  /baa{3,}/I
1467  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1468  No options  No options
1469  First char = 'b'  First char = 'b'
1470  Need char = 'a'  Need char = 'a'
1471    
1472  /"([^\\"]+|\\.)*"/I  /"([^\\"]+|\\.)*"/I
1473  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1474  No options  No options
1475  First char = '"'  First char = '"'
1476  Need char = '"'  Need char = '"'
# Line 1487  Need char = 'b' Line 1525  Need char = 'b'
1525    
1526  /abc*/I  /abc*/I
1527  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1528  No options  No options
1529  First char = 'a'  First char = 'a'
1530  Need char = 'b'  Need char = 'b'
1531    
1532  /ab.c*/I  /ab.c*/I
1533  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1534  No options  No options
1535  First char = 'a'  First char = 'a'
1536  Need char = 'b'  Need char = 'b'
1537    
1538  /a.c*/I  /a.c*/I
1539  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1540  No options  No options
1541  First char = 'a'  First char = 'a'
1542  No need char  No need char
1543    
1544  /.c*/I  /.c*/I
1545  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1546  No options  No options
1547  No first char  No first char
1548  No need char  No need char
1549    
1550  /ac*/I  /ac*/I
1551  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1552  No options  No options
1553  First char = 'a'  First char = 'a'
1554  No need char  No need char
1555    
1556  /(a.c*|b.c*)/I  /(a.c*|b.c*)/I
1557  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1558  No options  No options
1559  No first char  No first char
1560  No need char  No need char
1561    
1562  /a.c*|aba/I  /a.c*|aba/I
1563  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1564  No options  No options
1565  First char = 'a'  First char = 'a'
1566  No need char  No need char
1567    
1568  /.+a/I  /.+a/I
1569  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1570  No options  No options
1571  No first char  No first char
1572  Need char = 'a'  Need char = 'a'
1573    
1574  /(?=abcda)a.*/I  /(?=abcda)a.*/I
1575  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1576  No options  No options
1577  First char = 'a'  First char = 'a'
1578  Need char = 'a'  Need char = 'a'
1579    
1580  /(?=a)a.*/I  /(?=a)a.*/I
1581  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1582  No options  No options
1583  First char = 'a'  First char = 'a'
1584  No need char  No need char
# Line 1563  No need char Line 1591  No need char
1591    
1592  /a\d*/I  /a\d*/I
1593  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1594  No options  No options
1595  First char = 'a'  First char = 'a'
1596  No need char  No need char
1597    
1598  /ab\d*/I  /ab\d*/I
1599  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1600  No options  No options
1601  First char = 'a'  First char = 'a'
1602  Need char = 'b'  Need char = 'b'
# Line 1589  Need char = 'd' Line 1615  Need char = 'd'
1615    
1616  /ab\d+/I  /ab\d+/I
1617  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1618  No options  No options
1619  First char = 'a'  First char = 'a'
1620  Need char = 'b'  Need char = 'b'
1621    
1622  /a(?(1)b)/I  /a(?(1)b)(.)/I
1623  Capturing subpattern count = 0  Capturing subpattern count = 1
1624  No options  No options
1625  First char = 'a'  First char = 'a'
1626  No need char  No need char
1627    
1628  /a(?(1)bag|big)/I  /a(?(1)bag|big)(.)/I
1629  Capturing subpattern count = 0  Capturing subpattern count = 1
1630  No options  No options
1631  First char = 'a'  First char = 'a'
1632  Need char = 'g'  Need char = 'g'
1633    
1634  /a(?(1)bag|big)*/I  /a(?(1)bag|big)*(.)/I
1635  Capturing subpattern count = 0  Capturing subpattern count = 1
1636  No options  No options
1637  First char = 'a'  First char = 'a'
1638  No need char  No need char
1639    
1640  /a(?(1)bag|big)+/I  /a(?(1)bag|big)+(.)/I
1641  Capturing subpattern count = 0  Capturing subpattern count = 1
1642  No options  No options
1643  First char = 'a'  First char = 'a'
1644  Need char = 'g'  Need char = 'g'
1645    
1646  /a(?(1)b..|b..)/I  /a(?(1)b..|b..)(.)/I
1647  Capturing subpattern count = 0  Capturing subpattern count = 1
1648  No options  No options
1649  First char = 'a'  First char = 'a'
1650  Need char = 'b'  Need char = 'b'
# Line 1664  No need char Line 1689  No need char
1689      \Nabc      \Nabc
1690  No match  No match
1691    
1692  /a*(b+)(z)(z)/IP  /a*(b+)(z)(z)/P
1693      aaaabbbbzzzz      aaaabbbbzzzz
1694   0: aaaabbbbzz   0: aaaabbbbzz
1695   1: bbbb   1: bbbb
# Line 1696  Capturing subpattern count = 0 Line 1721  Capturing subpattern count = 0
1721  Options: anchored  Options: anchored
1722  No first char  No first char
1723  Need char = 'd'  Need char = 'd'
1724  Study returned NULL  Subject length lower bound = 4
1725    No set of starting bytes
1726    
1727  /\(             # ( at start  /\(             # ( at start
1728    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1707  Study returned NULL Line 1733  Study returned NULL
1733    \)            # Closing )    \)            # Closing )
1734    /Ix    /Ix
1735  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1736  Options: extended  Options: extended
1737  First char = '('  First char = '('
1738  Need char = ')'  Need char = ')'
# Line 1736  No match Line 1761  No match
1761    
1762  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1763  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1764  Options: extended  Options: extended
1765  First char = '('  First char = '('
1766  Need char = ')'  Need char = ')'
# Line 1751  Need char = ')' Line 1775  Need char = ')'
1775    
1776  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1777  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1778  Options: extended  Options: extended
1779  First char = '('  First char = '('
1780  Need char = ')'  Need char = ')'
# Line 1770  No match Line 1793  No match
1793    
1794  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1795  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1796  Options: extended  Options: extended
1797  First char = '('  First char = '('
1798  Need char = ')'  Need char = ')'
# Line 1781  Need char = ')' Line 1803  Need char = ')'
1803    
1804  /\(  ( (?>[^()]+) | (?R) )* \) /Ix  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1805  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1806  Options: extended  Options: extended
1807  First char = '('  First char = '('
1808  Need char = ')'  Need char = ')'
# Line 1791  Need char = ')' Line 1812  Need char = ')'
1812    
1813  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1814  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
1815  Options: extended  Options: extended
1816  First char = '('  First char = '('
1817  Need char = ')'  Need char = ')'
# Line 1802  Need char = ')' Line 1822  Need char = ')'
1822    
1823  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1824  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1825  Options: extended  Options: extended
1826  First char = '('  First char = '('
1827  Need char = ')'  Need char = ')'
# Line 1819  Need char = ')' Line 1838  Need char = ')'
1838    
1839  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1840  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1841  Options: extended  Options: extended
1842  First char = '('  First char = '('
1843  Need char = ')'  Need char = ')'
# Line 1836  Need char = ')' Line 1854  Need char = ')'
1854    
1855  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1856  Capturing subpattern count = 11  Capturing subpattern count = 11
 Partial matching not supported  
1857  Options: extended  Options: extended
1858  First char = '('  First char = '('
1859  Need char = ')'  Need char = ')'
# Line 1856  Need char = ')' Line 1873  Need char = ')'
1873    
1874  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1875  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1876  Options: extended  Options: extended
1877  First char = '('  First char = '('
1878  Need char = ')'  Need char = ')'
# Line 1864  Need char = ')' Line 1880  Need char = ')'
1880   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1881   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1882   2: 123   2: 123
  3: <unset>  
1883    
1884  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1885  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1886  Options: extended  Options: extended
1887  First char = '('  First char = '('
1888  Need char = ')'  Need char = ')'
# Line 1900  No need char Line 1914  No need char
1914  ------------------------------------------------------------------  ------------------------------------------------------------------
1915          Bra          Bra
1916          ^          ^
1917          [\x00-/:-@[-`{-\xff]          [\x00-/:-@[-`{-\xff] (neg)
1918          Ket          Ket
1919          End          End
1920  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1926  No need char Line 1940  No need char
1940  ------------------------------------------------------------------  ------------------------------------------------------------------
1941          Bra          Bra
1942          ^          ^
1943          [\x00-@[-`{-\xff]          [\x00-@[-`{-\xff] (neg)
1944          Ket          Ket
1945          End          End
1946  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1940  Capturing subpattern count = 0 Line 1954  Capturing subpattern count = 0
1954  No options  No options
1955  No first char  No first char
1956  No need char  No need char
1957    Subject length lower bound = 1
1958  Starting byte set: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z  Starting byte set: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
1959    _ a b c d e f g h i j k l m n o p q r s t u v w x y z    _ a b c d e f g h i j k l m n o p q r s t u v w x y z
1960    
# Line 1960  No need char Line 1975  No need char
1975  ------------------------------------------------------------------  ------------------------------------------------------------------
1976          Bra          Bra
1977          ^          ^
1978          [\x80-\xff]          [\x80-\xff] (neg)
1979          Ket          Ket
1980          End          End
1981  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1986  No need char Line 2001  No need char
2001  ------------------------------------------------------------------  ------------------------------------------------------------------
2002          Bra          Bra
2003          ^          ^
2004          [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2005          Ket          Ket
2006          End          End
2007  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1997  No need char Line 2012  No need char
2012    
2013  /[\n\x0b\x0c\x0d[:blank:]]/IS  /[\n\x0b\x0c\x0d[:blank:]]/IS
2014  Capturing subpattern count = 0  Capturing subpattern count = 0
2015    Contains explicit CR or LF match
2016  No options  No options
2017  No first char  No first char
2018  No need char  No need char
2019    Subject length lower bound = 1
2020  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2021    
2022  /^[[:cntrl:]]/DZ  /^[[:cntrl:]]/DZ
# Line 2136  No need char Line 2153  No need char
2153  ------------------------------------------------------------------  ------------------------------------------------------------------
2154          Bra          Bra
2155          ^          ^
2156          [ -~\x80-\xff]          [ -~\x80-\xff] (neg)
2157          Ket          Ket
2158          End          End
2159  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2149  No need char Line 2166  No need char
2166  ------------------------------------------------------------------  ------------------------------------------------------------------
2167          Bra          Bra
2168          ^          ^
2169          [\x00-/12:-\xff]          [\x00-/12:-\xff] (neg)
2170          Ket          Ket
2171          End          End
2172  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2162  No need char Line 2179  No need char
2179  ------------------------------------------------------------------  ------------------------------------------------------------------
2180          Bra          Bra
2181          ^          ^
2182          [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2183          Ket          Ket
2184          End          End
2185  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2246  Need char = 'd' Line 2263  Need char = 'd'
2263  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I
2264  Capturing subpattern count = 271  Capturing subpattern count = 271
2265  Max back reference = 270  Max back reference = 270
 Partial matching not supported  
2266  No options  No options
2267  No first char  No first char
2268  No need char  No need char
# Line 2730  No need char Line 2746  No need char
2746  /[\S]/DZ  /[\S]/DZ
2747  ------------------------------------------------------------------  ------------------------------------------------------------------
2748          Bra          Bra
2749          [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2750          Ket          Ket
2751          End          End
2752  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2743  No need char Line 2759  No need char
2759  ------------------------------------------------------------------  ------------------------------------------------------------------
2760          Bra          Bra
2761          a          a
2762       01 Opt       /i b
      NC b  
2763          Ket          Ket
2764          End          End
2765  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2766  No match Line 2781  No match
2781          Bra          Bra
2782          CBra 1          CBra 1
2783          a          a
2784       01 Opt       /i b
      NC b  
2785          Ket          Ket
      00 Opt  
2786          Ket          Ket
2787          End          End
2788  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2791  No match Line 2804  No match
2804  /   (?i)abc/IxDZ  /   (?i)abc/IxDZ
2805  ------------------------------------------------------------------  ------------------------------------------------------------------
2806          Bra          Bra
2807       NC abc       /i abc
2808          Ket          Ket
2809          End          End
2810  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2804  Need char = 'c' (caseless) Line 2817  Need char = 'c' (caseless)
2817    (?i)abc/IxDZ    (?i)abc/IxDZ
2818  ------------------------------------------------------------------  ------------------------------------------------------------------
2819          Bra          Bra
2820       NC abc       /i abc
2821          Ket          Ket
2822          End          End
2823  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2927  Need char = 'c' Line 2940  Need char = 'c'
2940          End          End
2941  ------------------------------------------------------------------  ------------------------------------------------------------------
2942  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2943  No options  No options
2944  No first char  No first char
2945  No need char  No need char
# Line 2956  No need char Line 2968  No need char
2968          End          End
2969  ------------------------------------------------------------------  ------------------------------------------------------------------
2970  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2971  No options  No options
2972  First char = 'x'  First char = 'x'
2973  No need char  No need char
# Line 2972  No need char Line 2983  No need char
2983          End          End
2984  ------------------------------------------------------------------  ------------------------------------------------------------------
2985  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2986  No options  No options
2987  First char = 'x'  First char = 'x'
2988  No need char  No need char
# Line 2980  No need char Line 2990  No need char
2990  /(x)*+/DZ  /(x)*+/DZ
2991  ------------------------------------------------------------------  ------------------------------------------------------------------
2992          Bra          Bra
2993          Once          Braposzero
2994          Brazero          CBraPos 1
         CBra 1  
2995          x          x
2996          KetRmax          KetRpos
         Ket  
2997          Ket          Ket
2998          End          End
2999  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2996  No need char Line 3004  No need char
3004    
3005  /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
3006  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3007  Options: anchored  Options: anchored
3008  No first char  No first char
3009  No need char  No need char
# Line 3010  No match Line 3017  No match
3017    
3018  /(\d++)(\w)/I  /(\d++)(\w)/I
3019  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3020  No options  No options
3021  No first char  No first char
3022  No need char  No need char
# Line 3025  No match Line 3031  No match
3031    
3032  /a++b/I  /a++b/I
3033  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3034  No options  No options
3035  First char = 'a'  First char = 'a'
3036  Need char = 'b'  Need char = 'b'
# Line 3034  Need char = 'b' Line 3039  Need char = 'b'
3039    
3040  /(a++b)/I  /(a++b)/I
3041  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3042  No options  No options
3043  First char = 'a'  First char = 'a'
3044  Need char = 'b'  Need char = 'b'
# Line 3044  Need char = 'b' Line 3048  Need char = 'b'
3048    
3049  /(a++)b/I  /(a++)b/I
3050  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3051  No options  No options
3052  First char = 'a'  First char = 'a'
3053  Need char = 'b'  Need char = 'b'
# Line 3054  Need char = 'b' Line 3057  Need char = 'b'
3057    
3058  /([^()]++|\([^()]*\))+/I  /([^()]++|\([^()]*\))+/I
3059  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3060  No options  No options
3061  No first char  No first char
3062  No need char  No need char
# Line 3064  No need char Line 3066  No need char
3066    
3067  /\(([^()]++|\([^()]+\))+\)/I  /\(([^()]++|\([^()]+\))+\)/I
3068  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3069  No options  No options
3070  First char = '('  First char = '('
3071  Need char = ')'  Need char = ')'
# Line 3127  Failed: nothing to repeat at offset 7 Line 3128  Failed: nothing to repeat at offset 7
3128          End          End
3129  ------------------------------------------------------------------  ------------------------------------------------------------------
3130  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3131  No options  No options
3132  First char = 'x'  First char = 'x'
3133  Need char = 'b'  Need char = 'b'
# Line 3144  Need char = 'b' Line 3144  Need char = 'b'
3144          End          End
3145  ------------------------------------------------------------------  ------------------------------------------------------------------
3146  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3147  Options: ungreedy  Options: ungreedy
3148  First char = 'x'  First char = 'x'
3149  Need char = 'b'  Need char = 'b'
# Line 3173  Need char = 'b' Line 3172  Need char = 'b'
3172          End          End
3173  ------------------------------------------------------------------  ------------------------------------------------------------------
3174  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3175  Options: anchored  Options: anchored
3176  No first char  No first char
3177  No need char  No need char
# Line 3189  No need char Line 3187  No need char
3187          End          End
3188  ------------------------------------------------------------------  ------------------------------------------------------------------
3189  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3190  Options: anchored  Options: anchored
3191  No first char  No first char
3192  Need char = 'b'  Need char = 'b'
# Line 3207  Need char = 'b' Line 3204  Need char = 'b'
3204          End          End
3205  ------------------------------------------------------------------  ------------------------------------------------------------------
3206  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3207  Options: anchored  Options: anchored
3208  No first char  No first char
3209  Need char = 'b'  Need char = 'b'
# Line 3222  Failed: POSIX collating elements are not Line 3218  Failed: POSIX collating elements are not
3218  Failed: POSIX named classes are supported only within a class at offset 0  Failed: POSIX named classes are supported only within a class at offset 0
3219    
3220  /\l/I  /\l/I
3221  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3222    
3223  /\L/I  /\L/I
3224  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3225    
3226  /\N{name}/I  /\N{name}/I
3227  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3228    
3229  /\u/I  /\u/I
3230  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3231    
3232  /\U/I  /\U/I
3233  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3234    
3235  /[/I  /[/I
3236  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 3283  No need char Line 3279  No need char
3279    
3280  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3281  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3282  Options: extended  Options: extended
3283  First char = '<'  First char = '<'
3284  Need char = '>'  Need char = '>'
# Line 3333  Need char = 'X' Line 3328  Need char = 'X'
3328  /(.*)\d+\1/I  /(.*)\d+\1/I
3329  Capturing subpattern count = 1  Capturing subpattern count = 1
3330  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3331  No options  No options
3332  No first char  No first char
3333  No need char  No need char
3334    
3335  /(.*)\d+/I  /(.*)\d+/I
3336  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3337  No options  No options
3338  First char at start or follows newline  First char at start or follows newline
3339  No need char  No need char
# Line 3348  No need char Line 3341  No need char
3341  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3342  Capturing subpattern count = 1  Capturing subpattern count = 1
3343  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3344  Options: dotall  Options: dotall
3345  No first char  No first char
3346  No need char  No need char
3347    
3348  /(.*)\d+/Is  /(.*)\d+/Is
3349  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3350  Options: anchored dotall  Options: anchored dotall
3351  No first char  No first char
3352  No need char  No need char
# Line 3363  No need char Line 3354  No need char
3354  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3355  Capturing subpattern count = 2  Capturing subpattern count = 2
3356  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3357  No options  No options
3358  First char at start or follows newline  First char at start or follows newline
3359  Need char = 'z'  Need char = 'z'
# Line 3371  Need char = 'z' Line 3361  Need char = 'z'
3361  /((.*))\d+\1/I  /((.*))\d+\1/I
3362  Capturing subpattern count = 2  Capturing subpattern count = 2
3363  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3364  No options  No options
3365  No first char  No first char
3366  No need char  No need char
# Line 3388  Need char = 'b' Line 3377  Need char = 'b'
3377    
3378  /(?=a).*/I  /(?=a).*/I
3379  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3380  No options  No options
3381  First char = 'a'  First char = 'a'
3382  No need char  No need char
# Line 3435  No options Line 3423  No options
3423  No first char  No first char
3424  Need char = 'a'  Need char = 'a'
3425    
3426  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3427  Capturing subpattern count = 0  Capturing subpattern count = 1
3428  No options  No options
3429  First char = 'a'  First char = 'a'
3430  No need char  No need char
3431    
3432  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3433  Capturing subpattern count = 0  Capturing subpattern count = 1
3434  No options  No options
3435  First char = 'a'  First char = 'a'
3436  Need char = 'z'  Need char = 'z'
3437    
3438  /(?(1)abz)/I  /(?(1)abz)(.)/I
3439  Capturing subpattern count = 0  Capturing subpattern count = 1
3440  No options  No options
3441  No first char  No first char
3442  No need char  No need char
3443    
3444  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3445  Capturing subpattern count = 0  Capturing subpattern count = 1
3446  No options  No options
3447  No first char  No first char
3448  Need char = '3'  Need char = '3'
# Line 3494  Capturing subpattern count = 0 Line 3482  Capturing subpattern count = 0
3482  No options  No options
3483  No first char  No first char
3484  No need char  No need char
3485    Subject length lower bound = 1
3486  Starting byte set: a b  Starting byte set: a b
3487    
3488  /[^a]/I  /[^a]/I
# Line 3513  Capturing subpattern count = 0 Line 3502  Capturing subpattern count = 0
3502  No options  No options
3503  No first char  No first char
3504  Need char = '6'  Need char = '6'
3505    Subject length lower bound = 4
3506  Starting byte set: 0 1 2 3 4 5 6 7 8 9  Starting byte set: 0 1 2 3 4 5 6 7 8 9
3507    
3508  /a^b/I  /a^b/I
# Line 3546  Capturing subpattern count = 0 Line 3536  Capturing subpattern count = 0
3536  Options: caseless  Options: caseless
3537  No first char  No first char
3538  No need char  No need char
3539    Subject length lower bound = 1
3540  Starting byte set: A B a b  Starting byte set: A B a b
3541    
3542  /[ab](?i)cd/IS  /[ab](?i)cd/IS
# Line 3553  Capturing subpattern count = 0 Line 3544  Capturing subpattern count = 0
3544  No options  No options
3545  No first char  No first char
3546  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3547    Subject length lower bound = 3
3548  Starting byte set: a b  Starting byte set: a b
3549    
3550  /abc(?C)def/I  /abc(?C)def/I
# Line 3710  No need char Line 3702  No need char
3702    
3703  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3704  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3705  No options  No options
3706  No first char  No first char
3707  No need char  No need char
# Line 3839  Callout 0: last capture = 1 Line 3830  Callout 0: last capture = 1
3830    
3831  /a(b+)(c*)(?C1)/I  /a(b+)(c*)(?C1)/I
3832  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3833  No options  No options
3834  First char = 'a'  First char = 'a'
3835  Need char = 'b'  Need char = 'b'
# Line 3865  No match Line 3855  No match
3855    
3856  /a(b+?)(c*?)(?C1)/I  /a(b+?)(c*?)(?C1)/I
3857  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3858  No options  No options
3859  First char = 'a'  First char = 'a'
3860  Need char = 'b'  Need char = 'b'
# Line 3906  Capturing subpattern count = 0 Line 3895  Capturing subpattern count = 0
3895  No options  No options
3896  No first char  No first char
3897  No need char  No need char
3898    Subject length lower bound = 1
3899  Starting byte set: a b  Starting byte set: a b
3900    
3901  /(?R)/I  /(?R)/I
# Line 4025  No options Line 4015  No options
4015  First char = 'a'  First char = 'a'
4016  Need char = 'b'  Need char = 'b'
4017    
 /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii  
 Capturing subpattern count = 4  
 Max back reference = 4  
 Partial matching not supported  
 Options: anchored caseless  
 No first char  
 No need char  
     1221  
  0: 1221  
  1: 1221  
  2: 1  
     Satan, oscillate my metallic sonatas!  
  0: Satan, oscillate my metallic sonatas!  
  1: <unset>  
  2: <unset>  
  3: Satan, oscillate my metallic sonatas  
  4: S  
     A man, a plan, a canal: Panama!  
  0: A man, a plan, a canal: Panama!  
  1: <unset>  
  2: <unset>  
  3: A man, a plan, a canal: Panama  
  4: A  
     Able was I ere I saw Elba.  
  0: Able was I ere I saw Elba.  
  1: <unset>  
  2: <unset>  
  3: Able was I ere I saw Elba  
  4: A  
     *** Failers  
 No match  
     The quick brown fox  
 No match  
   
4018  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
4019  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4020  Options: anchored  Options: anchored
4021  No first char  No first char
4022  No need char  No need char
# Line 4102  No match Line 4057  No match
4057    
4058  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4059  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4060  Options: extended  Options: extended
4061  First char = '<'  First char = '<'
4062  Need char = '>'  Need char = '>'
# Line 4276  Named capturing subpatterns: Line 4230  Named capturing subpatterns:
4230    one     1    one     1
4231    three   3    three   3
4232    two     2    two     2
 Partial matching not supported  
4233  Options: anchored caseless  Options: anchored caseless
4234  No first char  No first char
4235  No need char  No need char
# Line 4322  No need char Line 4275  No need char
4275    
4276  /(.*)a/Is  /(.*)a/Is
4277  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4278  Options: anchored dotall  Options: anchored dotall
4279  No first char  No first char
4280  Need char = 'a'  Need char = 'a'
# Line 4330  Need char = 'a' Line 4282  Need char = 'a'
4282  /(.*)a\1/Is  /(.*)a\1/Is
4283  Capturing subpattern count = 1  Capturing subpattern count = 1
4284  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4285  Options: dotall  Options: dotall
4286  No first char  No first char
4287  Need char = 'a'  Need char = 'a'
# Line 4338  Need char = 'a' Line 4289  Need char = 'a'
4289  /(.*)a(b)\2/Is  /(.*)a(b)\2/Is
4290  Capturing subpattern count = 2  Capturing subpattern count = 2
4291  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4292  Options: anchored dotall  Options: anchored dotall
4293  No first char  No first char
4294  Need char = 'b'  Need char = 'b'
4295    
4296  /((.*)a|(.*)b)z/Is  /((.*)a|(.*)b)z/Is
4297  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4298  Options: anchored dotall  Options: anchored dotall
4299  No first char  No first char
4300  Need char = 'z'  Need char = 'z'
# Line 4353  Need char = 'z' Line 4302  Need char = 'z'
4302  /((.*)a|(.*)b)z\1/Is  /((.*)a|(.*)b)z\1/Is
4303  Capturing subpattern count = 3  Capturing subpattern count = 3
4304  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4305  Options: dotall  Options: dotall
4306  No first char  No first char
4307  Need char = 'z'  Need char = 'z'
# Line 4361  Need char = 'z' Line 4309  Need char = 'z'
4309  /((.*)a|(.*)b)z\2/Is  /((.*)a|(.*)b)z\2/Is
4310  Capturing subpattern count = 3  Capturing subpattern count = 3
4311  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4312  Options: dotall  Options: dotall
4313  No first char  No first char
4314  Need char = 'z'  Need char = 'z'
# Line 4369  Need char = 'z' Line 4316  Need char = 'z'
4316  /((.*)a|(.*)b)z\3/Is  /((.*)a|(.*)b)z\3/Is
4317  Capturing subpattern count = 3  Capturing subpattern count = 3
4318  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4319  Options: dotall  Options: dotall
4320  No first char  No first char
4321  Need char = 'z'  Need char = 'z'
# Line 4377  Need char = 'z' Line 4323  Need char = 'z'
4323  /((.*)a|^(.*)b)z\3/Is  /((.*)a|^(.*)b)z\3/Is
4324  Capturing subpattern count = 3  Capturing subpattern count = 3
4325  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4326  Options: anchored dotall  Options: anchored dotall
4327  No first char  No first char
4328  Need char = 'z'  Need char = 'z'
4329    
4330  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4331  Capturing subpattern count = 31  Capturing subpattern count = 31
 Partial matching not supported  
4332  Options: anchored dotall  Options: anchored dotall
4333  No first char  No first char
4334  No need char  No need char
# Line 4392  No need char Line 4336  No need char
4336  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4337  Capturing subpattern count = 31  Capturing subpattern count = 31
4338  Max back reference = 31  Max back reference = 31
 Partial matching not supported  
4339  Options: dotall  Options: dotall
4340  No first char  No first char
4341  No need char  No need char
# Line 4400  No need char Line 4343  No need char
4343  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4344  Capturing subpattern count = 32  Capturing subpattern count = 32
4345  Max back reference = 32  Max back reference = 32
 Partial matching not supported  
4346  Options: dotall  Options: dotall
4347  No first char  No first char
4348  No need char  No need char
# Line 4467  Need char = 'c' Line 4409  Need char = 'c'
4409    
4410  /(a+)*zz/I  /(a+)*zz/I
4411  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4412  No options  No options
4413  No first char  No first char
4414  Need char = 'z'  Need char = 'z'
# Line 4604  Failed: two named subpatterns have the s Line 4545  Failed: two named subpatterns have the s
4545  Capturing subpattern count = 3  Capturing subpattern count = 3
4546  Named capturing subpatterns:  Named capturing subpatterns:
4547    elem   2    elem   2
 Partial matching not supported  
4548  No options  No options
4549  First char = '['  First char = '['
4550  Need char = ']'  Need char = ']'
# Line 4622  No match Line 4562  No match
4562  Capturing subpattern count = 3  Capturing subpattern count = 3
4563  Named capturing subpatterns:  Named capturing subpatterns:
4564    elem   2    elem   2
 Partial matching not supported  
4565  No options  No options
4566  First char = '['  First char = '['
4567  Need char = ']'  Need char = ']'
# Line 4729  No need char Line 4668  No need char
4668    
4669  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4670  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4671  Options: caseless  Options: caseless
4672  No first char  No first char
4673  Need char = 'g' (caseless)  Need char = 'g' (caseless)
# Line 4739  Need char = 'g' (caseless) Line 4677  Need char = 'g' (caseless)
4677    
4678  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4679  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4680  Options: caseless  Options: caseless
4681  No first char  No first char
4682  Need char = 'g' (caseless)  Need char = 'g' (caseless)
4683  Study returned NULL  Subject length lower bound = 8
4684    No set of starting bytes
4685       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
4686   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4687   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 4758  Study returned NULL Line 4696  Study returned NULL
4696          End          End
4697  ------------------------------------------------------------------  ------------------------------------------------------------------
4698  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4699  No options  No options
4700  No first char  No first char
4701  Need char = 'b'  Need char = 'b'
4702  Study returned NULL  Subject length lower bound = 1
4703    No set of starting bytes
4704    
4705  /(a|b)*.?c/ISDZ  /(a|b)*.?c/ISDZ
4706  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4782  Capturing subpattern count = 1 Line 4720  Capturing subpattern count = 1
4720  No options  No options
4721  No first char  No first char
4722  Need char = 'c'  Need char = 'c'
4723  Study returned NULL  Subject length lower bound = 1
4724    No set of starting bytes
4725    
4726  /abc(?C255)de(?C)f/DZ  /abc(?C255)de(?C)f/DZ
4727  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4851  No match Line 4790  No match
4790          End          End
4791  ------------------------------------------------------------------  ------------------------------------------------------------------
4792  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4793  Options:  Options:
4794  No first char  No first char
4795  Need char = 'b'  Need char = 'b'
# Line 4896  Need char = 'b' Line 4834  Need char = 'b'
4834          End          End
4835  ------------------------------------------------------------------  ------------------------------------------------------------------
4836  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4837  Options:  Options:
4838  First char = 'a'  First char = 'a'
4839  Need char = 'b'  Need char = 'b'
# Line 5334  No match Line 5271  No match
5271          End          End
5272  ------------------------------------------------------------------  ------------------------------------------------------------------
5273  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
5274  Options:  Options:
5275  No first char  No first char
5276  Need char = '3'  Need char = '3'
# Line 5366  Need char = '3' Line 5302  Need char = '3'
5302    
5303  /\b.*/I  /\b.*/I
5304  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5305  No options  No options
5306  No first char  No first char
5307  No need char  No need char
# Line 5375  No need char Line 5310  No need char
5310    
5311  /\b.*/Is  /\b.*/Is
5312  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5313  Options: dotall  Options: dotall
5314  No first char  No first char
5315  No need char  No need char
# Line 5384  No need char Line 5318  No need char
5318    
5319  /(?!.bcd).*/I  /(?!.bcd).*/I
5320  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5321  No options  No options
5322  No first char  No first char
5323  No need char  No need char
# Line 5397  No options Line 5330  No options
5330  First char = 'a'  First char = 'a'
5331  Need char = 'e'  Need char = 'e'
5332      ab\P      ab\P
5333  Partial match  Partial match: ab
5334      abc\P      abc\P
5335  Partial match  Partial match: abc
5336      abcd\P      abcd\P
5337  Partial match  Partial match: abcd
5338      abcde\P      abcde\P
5339   0: abcde   0: abcde
5340      the quick brown abc\P      the quick brown abc\P
5341  Partial match  Partial match: abc
5342      ** Failers\P      ** Failers\P
5343  No match  No match
5344      the quick brown abxyz fox\P      the quick brown abxyz fox\P
# Line 5430  Need char = '/' Line 5363  Need char = '/'
5363   1: 02   1: 02
5364   2: 05   2: 05
5365      1\P      1\P
5366  Partial match  Partial match: 1
5367      1/2\P      1/2\P
5368  Partial match  Partial match: 1/2
5369      1/2/0\P      1/2/0\P
5370  Partial match  Partial match: 1/2/0
5371      1/2/04\P      1/2/04\P
5372   0: 1/2/04   0: 1/2/04
5373   1: 1   1: 1
5374   2: 2   2: 2
5375      0\P      0\P
5376  Partial match  Partial match: 0
5377      02/\P      02/\P
5378  Partial match  Partial match: 02/
5379      02/0\P      02/0\P
5380  Partial match  Partial match: 02/0
5381      02/1\P      02/1\P
5382  Partial match  Partial match: 02/1
5383      ** Failers\P      ** Failers\P
5384  No match  No match
5385      \P      \P
# Line 5468  No match Line 5401  No match
5401    
5402  /0{0,2}ABC/I  /0{0,2}ABC/I
5403  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5404  No options  No options
5405  No first char  No first char
5406  Need char = 'C'  Need char = 'C'
5407    
5408  /\d{3,}ABC/I  /\d{3,}ABC/I
5409  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5410  No options  No options
5411  No first char  No first char
5412  Need char = 'C'  Need char = 'C'
5413    
5414  /\d*ABC/I  /\d*ABC/I
5415  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5416  No options  No options
5417  No first char  No first char
5418  Need char = 'C'  Need char = 'C'
5419    
5420  /[abc]+DE/I  /[abc]+DE/I
5421  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5422  No options  No options
5423  No first char  No first char
5424  Need char = 'E'  Need char = 'E'
# Line 5502  Need char = '3' Line 5431  Need char = '3'
5431      123\P      123\P
5432   0: 123   0: 123
5433      a\P      a\P
5434  Partial match  Partial match: a
5435      b\P      b\P
5436  Partial match  Partial match: b
5437      c\P      c\P
5438  Partial match  Partial match: c
5439      c12\P      c12\P
5440  Partial match  Partial match: c12
5441      c123\P      c123\P
5442   0: c123   0: c123
5443    
# Line 5518  Options: anchored Line 5447  Options: anchored
5447  No first char  No first char
5448  Need char = 'X'  Need char = 'X'
5449      1\P      1\P
5450  Partial match  Partial match: 1
5451      123\P      123\P
5452  Partial match  Partial match: 123
5453      123X      123X
5454   0: 123X   0: 123X
5455      1234\P      1234\P
5456  Partial match  Partial match: 1234
5457      1234X      1234X
5458   0: 1234X   0: 1234X
5459      12345\P      12345\P
5460  Partial match  Partial match: 12345
5461      12345X      12345X
5462   0: 12345X   0: 12345X
5463      *** Failers      *** Failers
# Line 5575  Capturing subpattern count = 1 Line 5504  Capturing subpattern count = 1
5504  No options  No options
5505  No first char  No first char
5506  No need char  No need char
5507    Subject length lower bound = 1
5508  Starting byte set: a b  Starting byte set: a b
5509  Compiled regex written to testsavedregex  Compiled regex written to testsavedregex
5510  Study data written to testsavedregex  Study data written to testsavedregex
# Line 5595  Capturing subpattern count = 1 Line 5525  Capturing subpattern count = 1
5525  No options  No options
5526  No first char  No first char
5527  No need char  No need char
5528    Subject length lower bound = 1
5529  Starting byte set: a b  Starting byte set: a b
5530  Compiled regex written to testsavedregex  Compiled regex written to testsavedregex
5531  Study data written to testsavedregex  Study data written to testsavedregex
# Line 5613  No match Line 5544  No match
5544  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5545  Capturing subpattern count = 3  Capturing subpattern count = 3
5546  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
5547  Options: multiline dotall  Options: multiline dotall
5548  First char = '<'  First char = '<'
5549  Need char = '>'  Need char = '>'
# Line 5631  No need char Line 5561  No need char
5561    
5562  /line\nbreak/I  /line\nbreak/I
5563  Capturing subpattern count = 0  Capturing subpattern count = 0
5564    Contains explicit CR or LF match
5565  No options  No options
5566  First char = 'l'  First char = 'l'
5567  Need char = 'k'  Need char = 'k'
# Line 5641  Need char = 'k' Line 5572  Need char = 'k'
5572    
5573  /line\nbreak/If  /line\nbreak/If
5574  Capturing subpattern count = 0  Capturing subpattern count = 0
5575    Contains explicit CR or LF match
5576  Options: firstline  Options: firstline
5577  First char = 'l'  First char = 'l'
5578  Need char = 'k'  Need char = 'k'
# Line 5653  No match Line 5585  No match
5585    
5586  /line\nbreak/Imf  /line\nbreak/Imf
5587  Capturing subpattern count = 0  Capturing subpattern count = 0
5588    Contains explicit CR or LF match
5589  Options: multiline firstline  Options: multiline firstline
5590  First char = 'l'  First char = 'l'
5591  Need char = 'k'  Need char = 'k'
# Line 5663  No match Line 5596  No match
5596      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5597  No match  No match
5598    
5599  /ab.cd/IP  /ab.cd/P
5600      ab-cd      ab-cd
5601   0: ab-cd   0: ab-cd
5602      ab=cd      ab=cd
# Line 5673  No match: POSIX code 17: match failed Line 5606  No match: POSIX code 17: match failed
5606      ab\ncd      ab\ncd
5607  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
5608    
5609  /ab.cd/IPs  /ab.cd/Ps
5610      ab-cd      ab-cd
5611   0: ab-cd   0: ab-cd
5612      ab=cd      ab=cd
# Line 5917  Matched, but too many substrings Line 5850  Matched, but too many substrings
5850    
5851  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
5852  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5853  No options  No options
5854  No first char  No first char
5855  No need char  No need char
# Line 5930  No need char Line 5862  No need char
5862    
5863  /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
5864  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5865  No options  No options
5866  No first char  No first char
5867  No need char  No need char
# Line 5941  No need char Line 5872  No need char
5872    
5873  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
5874  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5875  No options  No options
5876  No first char  No first char
5877  No need char  No need char
# Line 5952  No need char Line 5882  No need char
5882    
5883  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
5884  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5885  No options  No options
5886  No first char  No first char
5887  No need char  No need char
# Line 5965  No need char Line 5894  No need char
5894    
5895  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
5896  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5897  No options  No options
5898  No first char  No first char
5899  No need char  No need char
# Line 5978  No need char Line 5906  No need char
5906      ((this))      ((this))
5907   0: ((this))   0: ((this))
5908    
5909  /a(b)c/IPN  /a(b)c/PN
5910      abc      abc
5911  Matched with REG_NOSUB  Matched with REG_NOSUB
5912    
5913  /a(?P<name>b)c/IPN  /a(?P<name>b)c/PN
5914      abc      abc
5915  Matched with REG_NOSUB  Matched with REG_NOSUB
5916    
# Line 6160  Named capturing subpatterns: Line 6088  Named capturing subpatterns:
6088    A   2    A   2
6089    A   3    A   3
6090  Options: anchored dupnames  Options: anchored dupnames
6091    Duplicate name status changes
6092  No first char  No first char
6093  No need char  No need char
6094      a1b\CA      a1b\CA
# Line 6306  Failed: octal value is greater than \377 Line 6235  Failed: octal value is greater than \377
6235    
6236  /\s*,\s*/IS  /\s*,\s*/IS
6237  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6238  No options  No options
6239  No first char  No first char
6240  Need char = ','  Need char = ','
6241    Subject length lower bound = 1
6242  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6243      \x0b,\x0b      \x0b,\x0b
6244   0: ,   0: ,
# Line 6436  Unknown newline type at: Line 6365  Unknown newline type at:
6365    
6366  /.*/I<lf>  /.*/I<lf>
6367  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6368  Options:  Options:
6369  Forced newline sequence: LF  Forced newline sequence: LF
6370  First char at start or follows newline  First char at start or follows newline
# Line 6462  No need char Line 6390  No need char
6390    
6391  /\w+(.)(.)?def/Is  /\w+(.)(.)?def/Is
6392  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
6393  Options: dotall  Options: dotall
6394  No first char  No first char
6395  Need char = 'f'  Need char = 'f'
# Line 6479  Need char = 'f' Line 6406  Need char = 'f'
6406    
6407  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6408  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6409  No options  No options
6410  No first char  No first char
6411  No need char  No need char
# Line 6614  No need char Line 6540  No need char
6540    
6541  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
6542  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6543  No options  No options
6544  No first char  No first char
6545  No need char  No need char
6546    Subject length lower bound = 1
6547  Starting byte set: C a b c d  Starting byte set: C a b c d
6548    
6549  /()[ab]xyz/IS  /()[ab]xyz/IS
# Line 6625  Capturing subpattern count = 1 Line 6551  Capturing subpattern count = 1
6551  No options  No options
6552  No first char  No first char
6553  Need char = 'z'  Need char = 'z'
6554    Subject length lower bound = 4
6555  Starting byte set: a b  Starting byte set: a b
6556    
6557  /(|)[ab]xyz/IS  /(|)[ab]xyz/IS
# Line 6632  Capturing subpattern count = 1 Line 6559  Capturing subpattern count = 1
6559  No options  No options
6560  No first char  No first char
6561  Need char = 'z'  Need char = 'z'
6562    Subject length lower bound = 4
6563  Starting byte set: a b  Starting byte set: a b
6564    
6565  /(|c)[ab]xyz/IS  /(|c)[ab]xyz/IS
# Line 6639  Capturing subpattern count = 1 Line 6567  Capturing subpattern count = 1
6567  No options  No options
6568  No first char  No first char
6569  Need char = 'z'  Need char = 'z'
6570    Subject length lower bound = 4
6571  Starting byte set: a b c  Starting byte set: a b c
6572    
6573  /(|c?)[ab]xyz/IS  /(|c?)[ab]xyz/IS
# Line 6646  Capturing subpattern count = 1 Line 6575  Capturing subpattern count = 1
6575  No options  No options
6576  No first char  No first char
6577  Need char = 'z'  Need char = 'z'
6578    Subject length lower bound = 4
6579  Starting byte set: a b c  Starting byte set: a b c
6580    
6581  /(d?|c?)[ab]xyz/IS  /(d?|c?)[ab]xyz/IS
# Line 6653  Capturing subpattern count = 1 Line 6583  Capturing subpattern count = 1
6583  No options  No options
6584  No first char  No first char
6585  Need char = 'z'  Need char = 'z'
6586    Subject length lower bound = 4
6587  Starting byte set: a b c d  Starting byte set: a b c d
6588    
6589  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
# Line 6660  Capturing subpattern count = 1 Line 6591  Capturing subpattern count = 1
6591  No options  No options
6592  No first char  No first char
6593  Need char = 'z'  Need char = 'z'
6594    Subject length lower bound = 4
6595  Starting byte set: a b c d  Starting byte set: a b c d
6596    
6597  /^a*b\d/DZ  /^a*b\d/DZ
# Line 6673  Starting byte set: a b c d Line 6605  Starting byte set: a b c d
6605          End          End
6606  ------------------------------------------------------------------  ------------------------------------------------------------------
6607  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6608  Options: anchored  Options: anchored
6609  No first char  No first char
6610  Need char = 'b'  Need char = 'b'
# Line 6689  Need char = 'b' Line 6620  Need char = 'b'
6620          End          End
6621  ------------------------------------------------------------------  ------------------------------------------------------------------
6622  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6623  Options: anchored  Options: anchored
6624  No first char  No first char
6625  Need char = 'b'  Need char = 'b'
# Line 6705  Need char = 'b' Line 6635  Need char = 'b'
6635          End          End
6636  ------------------------------------------------------------------  ------------------------------------------------------------------
6637  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6638  Options: anchored  Options: anchored
6639  No first char  No first char
6640  Need char = 'b'  Need char = 'b'
# Line 6721  Need char = 'b' Line 6650  Need char = 'b'
6650          End          End
6651  ------------------------------------------------------------------  ------------------------------------------------------------------
6652  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6653  Options: anchored  Options: anchored
6654  No first char  No first char
6655  Need char = 'A'  Need char = 'A'
# Line 6736  No match Line 6664  No match
6664  ------------------------------------------------------------------  ------------------------------------------------------------------
6665          Bra          Bra
6666          ^          ^
6667          a*       /i a*
6668       NC A       /i A
6669          \d          \d
6670          Ket          Ket
6671          End          End
6672  ------------------------------------------------------------------  ------------------------------------------------------------------
6673  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6674  Options: anchored caseless  Options: anchored caseless
6675  No first char  No first char
6676  Need char = 'A' (caseless)  Need char = 'A' (caseless)
# Line 6754  Need char = 'A' (caseless) Line 6681  Need char = 'A' (caseless)
6681    
6682  /(a*|b*)[cd]/IS  /(a*|b*)[cd]/IS
6683  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6684  No options  No options
6685  No first char  No first char
6686  No need char  No need char
6687    Subject length lower bound = 1
6688  Starting byte set: a b c d  Starting byte set: a b c d
6689    
6690  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
6691  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6692  No options  No options
6693  No first char  No first char
6694  No need char  No need char
6695    Subject length lower bound = 1
6696  Starting byte set: a b c d  Starting byte set: a b c d
6697    
6698  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
6699  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6700  No options  No options
6701  No first char  No first char
6702  No need char  No need char
6703    Subject length lower bound = 1
6704  Starting byte set: a b c d  Starting byte set: a b c d
6705    
6706  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
6707  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6708  No options  No options
6709  No first char  No first char
6710  No need char  No need char
6711    Subject length lower bound = 2
6712  Starting byte set: a b  Starting byte set: a b
6713    
6714  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
# Line 7366  Matched, but too many substrings Line 7293  Matched, but too many substrings
7293  /[^a]+a/BZi  /[^a]+a/BZi
7294  ------------------------------------------------------------------  ------------------------------------------------------------------
7295          Bra          Bra
7296          [^A]++       /i [^A]++
7297       NC a       /i a
7298          Ket          Ket
7299          End          End
7300  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7375  Matched, but too many substrings Line 7302  Matched, but too many substrings
7302  /[^a]+A/BZi  /[^a]+A/BZi
7303  ------------------------------------------------------------------  ------------------------------------------------------------------
7304          Bra          Bra
7305          [^A]++       /i [^A]++
7306       NC A       /i A
7307          Ket          Ket
7308          End          End
7309  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7587  No match Line 7514  No match
7514          ^          ^
7515          CBra 1          CBra 1
7516          Cond          Cond
7517        2 Cond ref        2 Cond nref
7518          y          y
7519          Ket          Ket
7520          [()]          [()]
# Line 7653  Named capturing subpatterns: Line 7580  Named capturing subpatterns:
7580    one     1    one     1
7581    three   3    three   3
7582    two     2    two     2
 Partial matching not supported  
7583  Options: anchored caseless  Options: anchored caseless
7584  No first char  No first char
7585  No need char  No need char
# Line 7687  No match Line 7613  No match
7613  /(?=(\w+))\1:/I  /(?=(\w+))\1:/I
7614  Capturing subpattern count = 1  Capturing subpattern count = 1
7615  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
7616  No options  No options
7617  No first char  No first char
7618  Need char = ':'  Need char = ':'
# Line 7700  Capturing subpattern count = 1 Line 7625  Capturing subpattern count = 1
7625  Max back reference = 1  Max back reference = 1
7626  Named capturing subpatterns:  Named capturing subpatterns:
7627    abc   1    abc   1
 Partial matching not supported  
7628  No options  No options
7629  No first char  No first char
7630  Need char = ':'  Need char = ':'
# Line 7708  Need char = ':' Line 7632  Need char = ':'
7632   0: abcd:   0: abcd:
7633   1: abcd   1: abcd
7634    
 /(?'abc'\w+):\k<abc>{2}/  
     a:aaxyz  
  0: a:aa  
  1: a  
     ab:ababxyz  
  0: ab:abab  
  1: ab  
     ** Failers  
 No match  
     a:axyz  
 No match  
     ab:abxyz  
 No match  
   
7635  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7636      adaa      adaa
7637   0: adaa   0: adaa
# Line 7748  No match Line 7658  No match
7658      bddd      bddd
7659  No match  No match
7660    
 /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x  
     abd  
  0: abd  
  1: a  
     ce  
  0: ce  
   
7661  /(?(<bc))/  /(?(<bc))/
7662  Failed: malformed number or name after (?( at offset 6  Failed: malformed number or name after (?( at offset 6
7663    
# Line 7785  Failed: reference to non-existent subpat Line 7688  Failed: reference to non-existent subpat
7688   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7689   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7690    
 /^(?(DEFINE) (?<A> a) (?<B> b) )  (?&A) (?&B) /x  
     abcd  
  0: ab  
  1: <unset>  
  2: <unset>  
   
 /(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT))  
   (?(DEFINE)  
   (?<NAME_PAT>[a-z]+)  
   (?<ADDRESS_PAT>\d+)  
   )/x  
     metcalfe 33  
  0: metcalfe 33  
  1: metcalfe  
  2: 33  
  3: <unset>  
  4: <unset>  
   
7691  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7692  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7693    
# Line 7844  No match Line 7729  No match
7729  No match  No match
7730    
7731  /^abc./mgx<any>  /^abc./mgx<any>
7732      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
7733   0: abc1   0: abc1
7734   0: abc2   0: abc2
7735   0: abc3   0: abc3
# Line 7854  No match Line 7739  No match
7739   0: abc7   0: abc7
7740    
7741  /abc.$/mgx<any>  /abc.$/mgx<any>
7742      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
7743   0: abc1   0: abc1
7744   0: abc2   0: abc2
7745   0: abc3   0: abc3
# Line 7868  No match Line 7753  No match
7753  /a/<any><crlf>  /a/<any><crlf>
7754  Failed: inconsistent NEWLINE options at offset 0  Failed: inconsistent NEWLINE options at offset 0
7755    
7756  /^a\Rb/  /^a\Rb/<bsr_unicode>
7757      a\nb      a\nb
7758   0: a\x0ab   0: a\x0ab
7759      a\rb      a\rb
# Line 7886  No match Line 7771  No match
7771      a\n\rb      a\n\rb
7772  No match  No match
7773    
7774  /^a\R*b/  /^a\R*b/<bsr_unicode>
7775      ab      ab
7776   0: ab   0: ab
7777      a\nb      a\nb
# Line 7906  No match Line 7791  No match
7791      a\n\r\x85\x0cb      a\n\r\x85\x0cb
7792   0: a\x0a\x0d\x85\x0cb   0: a\x0a\x0d\x85\x0cb
7793    
7794  /^a\R+b/  /^a\R+b/<bsr_unicode>
7795      a\nb      a\nb
7796   0: a\x0ab   0: a\x0ab
7797      a\rb      a\rb
# Line 7928  No match Line 7813  No match
7813      ab      ab
7814  No match  No match
7815    
7816  /^a\R{1,3}b/  /^a\R{1,3}b/<bsr_unicode>
7817      a\nb      a\nb
7818   0: a\x0ab   0: a\x0ab
7819      a\n\rb      a\n\rb
# Line 7950  No match Line 7835  No match
7835      a\r      a\r
7836  No match  No match
7837    
7838  /^a[\R]b/  /^a[\R]b/<bsr_unicode>
7839      aRb      aRb
7840   0: aRb   0: aRb
7841      ** Failers      ** Failers
# Line 7980  Need char = 'P' Line 7865  Need char = 'P'
7865   0: PXP   0: PXP
7866   1: P   1: P
7867    
 /(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/  
     1.2.3.4  
  0: 1.2.3.4  
  1: <unset>  
  2: .4  
     131.111.10.206  
  0: 131.111.10.206  
  1: <unset>  
  2: .206  
     10.0.0.0  
  0: 10.0.0.0  
  1: <unset>  
  2: .0  
     ** Failers  
 No match  
     10.6  
 No match  
     455.3.4.5  
 No match  
   
 /\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/  
     1.2.3.4  
  0: 1.2.3.4  
  1: .4  
  2: <unset>  
     131.111.10.206  
  0: 131.111.10.206  
  1: .206  
  2: <unset>  
     10.0.0.0  
  0: 10.0.0.0  
  1: .0  
  2: <unset>  
     ** Failers  
 No match  
     10.6  
 No match  
     455.3.4.5  
 No match  
   
7868  /(?:a(?&abc)b)*(?<abc>x)/  /(?:a(?&abc)b)*(?<abc>x)/
7869      123axbaxbaxbx456      123axbaxbaxbx456
7870   0: axbaxbaxbx   0: axbaxbaxbx
# Line 8057  No match Line 7902  No match
7902     DEFabcABCXYZ     DEFabcABCXYZ
7903  No match  No match
7904    
 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/  
     ababababbbabZXXXX  
  0: ababababbbabZ  
  1: ab  
  2: b  
   
7905  /^(a)\g-2/  /^(a)\g-2/
7906  Failed: reference to non-existent subpattern at offset 4  Failed: reference to non-existent subpattern at offset 7
7907    
7908  /^(a)\g/  /^(a)\g/
7909  Failed: \g is not followed by a braced name or an optionally braced non-zero number at offset 4  Failed: a numbered reference must not be zero at offset 5
7910    
7911  /^(a)\g{0}/  /^(a)\g{0}/
7912  Failed: \g is not followed by a braced name or an optionally braced non-zero number at offset 4  Failed: a numbered reference must not be zero at offset 8
7913    
7914  /^(a)\g{3/  /^(a)\g{3/
7915  Failed: \g is not followed by a braced name or an optionally braced non-zero number at offset 4  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
7916    
7917  /^(a)\g{4a}/  /^(a)\g{4a}/
7918  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
# Line 8156  No match Line 7995  No match
7995   0+   0+
7996    
7997  /abc.$/mgx<anycrlf>  /abc.$/mgx<anycrlf>
7998      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
7999   0: abc1   0: abc1
8000   0: abc4   0: abc4
8001   0: abc5   0: abc5
# Line 8210  No match Line 8049  No match
8049  No match  No match
8050    
8051  /x(?-0)y/  /x(?-0)y/
8052  Failed: (?+ or (?- or (?(+ or (?(- must be followed by a non-zero number at offset 5  Failed: a numbered reference must not be zero at offset 5
8053    
8054  /x(?-1)y/  /x(?-1)y/
8055  Failed: reference to non-existent subpattern at offset 5  Failed: reference to non-existent subpattern at offset 5
8056    
8057  /x(?+0)y/  /x(?+0)y/
8058  Failed: (?+ or (?- or (?(+ or (?(- must be followed by a non-zero number at offset 5  Failed: a numbered reference must not be zero at offset 5
8059    
8060  /x(?+1)y/  /x(?+1)y/
8061  Failed: reference to non-existent subpattern at offset 5  Failed: reference to non-existent subpattern at offset 5
# Line 8298  Failed: reference to non-existent subpat Line 8137  Failed: reference to non-existent subpat
8137  /((?(-2)a))/BZ  /((?(-2)a))/BZ
8138  Failed: reference to non-existent subpattern at offset 7  Failed: reference to non-existent subpattern at offset 7
8139    
8140  /^(?(+1)X|Y)/BZ  /^(?(+1)X|Y)(.)/BZ
8141  ------------------------------------------------------------------  ------------------------------------------------------------------
8142          Bra          Bra
8143          ^          ^
# Line 8308  Failed: reference to non-existent subpat Line 8147  Failed: reference to non-existent subpat
8147          Alt          Alt
8148          Y          Y
8149          Ket          Ket
8150            CBra 1
8151            Any
8152            Ket
8153          Ket          Ket
8154          End          End
8155  ------------------------------------------------------------------  ------------------------------------------------------------------
8156      Y      Y!
8157   0: Y   0: Y!
8158     1: !
 /(foo)\Kbar/  
     foobar  
  0: bar  
  1: foo  
   
 /(foo)(\Kbar|baz)/  
     foobar  
  0: bar  
  1: foo  
  2: bar  
     foobaz  
  0: foobaz  
  1: foo  
  2: baz  
   
 /(foo\Kbar)baz/  
     foobarbaz  
  0: barbaz  
  1: foobar  
8159    
8160  /(?<A>tom|bon)-\k{A}/  /(?<A>tom|bon)-\k{A}/
8161      tom-tom      tom-tom
# Line 8346  No match Line 8169  No match
8169      tom-bon      tom-bon
8170  No match  No match
8171    
 /(?<A>tom|bon)-\g{A}/  
     tom-tom  
  0: tom-tom  
  1: tom  
     bon-bon  
  0: bon-bon  
  1: bon  
   
8172  /\g{A/  /\g{A/
8173  Failed: syntax error in subpattern name (missing terminator) at offset 4  Failed: syntax error in subpattern name (missing terminator) at offset 4
8174    
# Line 8448  Failed: syntax error in subpattern name Line 8263  Failed: syntax error in subpattern name
8263   3: <unset>   3: <unset>
8264   4: x   4: x
8265    
 /(?|(abc)|(xyz))\1/  
     abcabc  
  0: abcabc  
  1: abc  
     xyzxyz  
  0: xyzxyz  
  1: xyz  
     ** Failers  
 No match  
     abcxyz  
 No match  
     xyzabc  
 No match  
   
 /(?|(abc)|(xyz))(?1)/  
     abcabc  
  0: abcabc  
  1: abc  
     xyzabc  
  0: xyzabc  
  1: xyz  
     ** Failers  
 No match  
     xyzxyz  
 No match  
   
 /\H\h\V\v/  
     X X\x0a  
  0: X X\x0a  
     X\x09X\x0b  
  0: X\x09X\x0b  
     ** Failers  
 No match  
     \xa0 X\x0a  
 No match  
   
 /\H*\h+\V?\v{3,4}/  
     \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a  
  0: \x09 \xa0X\x0a\x0b\x0c\x0d  
     \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a  
  0: \x09 \xa0\x0a\x0b\x0c\x0d  
     \x09\x20\xa0\x0a\x0b\x0c  
  0: \x09 \xa0\x0a\x0b\x0c  
     ** Failers  
 No match  
     \x09\x20\xa0\x0a\x0b  
 No match  
   
 /\H{3,4}/  
     XY  ABCDE  
  0: ABCD  
     XY  PQR ST  
  0: PQR  
   
 /.\h{3,4}./  
     XY  AB    PQRS  
  0: B    P  
   
 /\h*X\h?\H+Y\H?Z/  
     >XNNNYZ  
  0: XNNNYZ  
     >  X NYQZ  
  0:   X NYQZ  
     ** Failers  
 No match  
     >XYZ  
 No match  
     >  X NY Z  
 No match  
   
 /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/  
     >XY\x0aZ\x0aA\x0bNN\x0c  
  0: XY\x0aZ\x0aA\x0bNN\x0c  
     >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c  
  0: \x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c  
   
8266  /[\h]/BZ  /[\h]/BZ
8267  ------------------------------------------------------------------  ------------------------------------------------------------------
8268          Bra          Bra
# Line 8796  Failed: missing terminating ] for charac Line 8535  Failed: missing terminating ] for charac
8535  /[\Q\E^]AAA/  /[\Q\E^]AAA/
8536  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
8537    
8538  / End of testinput2 /  /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
8539    ------------------------------------------------------------------
8540            Bra
8541            A
8542            *PRUNE
8543            B
8544            *SKIP
8545            C
8546            *THEN
8547            D
8548            *COMMIT
8549            E
8550            *FAIL
8551            F
8552            *FAIL
8553            G
8554            *FAIL
8555            H
8556            *ACCEPT
8557            I
8558            Ket
8559            End
8560    ------------------------------------------------------------------
8561    
8562    /^a+(*FAIL)/C
8563        aaaaaa
8564    --->aaaaaa
8565     +0 ^          ^
8566     +1 ^          a+
8567     +3 ^     ^    (*FAIL)
8568     +3 ^    ^     (*FAIL)
8569     +3 ^   ^      (*FAIL)
8570     +3 ^  ^       (*FAIL)
8571     +3 ^ ^        (*FAIL)
8572     +3 ^^         (*FAIL)
8573    No match
8574    
8575    /a+b?c+(*FAIL)/C
8576        aaabccc
8577    --->aaabccc
8578     +0 ^           a+
8579     +2 ^  ^        b?
8580     +4 ^   ^       c+
8581     +6 ^      ^    (*FAIL)
8582     +6 ^     ^     (*FAIL)
8583     +6 ^    ^      (*FAIL)
8584     +4 ^  ^        c+
8585     +2 ^ ^         b?
8586     +4 ^ ^         c+
8587     +2 ^^          b?
8588     +4 ^^          c+
8589     +0  ^          a+
8590     +2  ^ ^        b?
8591     +4  ^  ^       c+
8592     +6  ^     ^    (*FAIL)
8593     +6  ^    ^     (*FAIL)
8594     +6  ^   ^      (*FAIL)
8595     +4  ^ ^        c+
8596     +2  ^^         b?
8597     +4  ^^         c+
8598     +0   ^         a+
8599     +2   ^^        b?
8600     +4   ^ ^       c+
8601     +6   ^    ^    (*FAIL)
8602     +6   ^   ^     (*FAIL)
8603     +6   ^  ^      (*FAIL)
8604     +4   ^^        c+
8605    No match
8606    
8607    /a+b?(*PRUNE)c+(*FAIL)/C
8608        aaabccc
8609    --->aaabccc
8610     +0 ^           a+
8611     +2 ^  ^        b?
8612     +4 ^   ^       (*PRUNE)
8613    +12 ^   ^       c+
8614    +14 ^      ^    (*FAIL)
8615    +14 ^     ^     (*FAIL)
8616    +14 ^    ^      (*FAIL)
8617     +0  ^          a+
8618     +2  ^ ^        b?
8619     +4  ^  ^       (*PRUNE)
8620    +12  ^  ^       c+
8621    +14  ^     ^    (*FAIL)
8622    +14  ^    ^     (*FAIL)
8623    +14  ^   ^      (*FAIL)
8624     +0   ^         a+
8625     +2   ^^        b?
8626     +4   ^ ^       (*PRUNE)
8627    +12   ^ ^       c+
8628    +14   ^    ^    (*FAIL)
8629    +14   ^   ^     (*FAIL)
8630    +14   ^  ^      (*FAIL)
8631    No match
8632    
8633    /a+b?(*COMMIT)c+(*FAIL)/C
8634        aaabccc
8635    --->aaabccc
8636     +0 ^           a+
8637     +2 ^  ^        b?
8638     +4 ^   ^       (*COMMIT)
8639    +13 ^   ^       c+
8640    +15 ^      ^    (*FAIL)
8641    +15 ^     ^     (*FAIL)
8642    +15 ^    ^      (*FAIL)
8643    No match
8644    
8645    /a+b?(*SKIP)c+(*FAIL)/C
8646        aaabcccaaabccc
8647    --->aaabcccaaabccc
8648     +0 ^                  a+
8649     +2 ^  ^               b?
8650     +4 ^   ^              (*SKIP)
8651    +11 ^   ^              c+
8652    +13 ^      ^           (*FAIL)
8653    +13 ^     ^            (*FAIL)
8654    +13 ^    ^             (*FAIL)
8655     +0        ^           a+
8656     +2        ^  ^        b?
8657     +4        ^   ^       (*SKIP)
8658    +11        ^   ^       c+
8659    +13        ^      ^    (*FAIL)
8660    +13        ^     ^     (*FAIL)
8661    +13        ^    ^      (*FAIL)
8662    No match
8663    
8664    /a+b?(*THEN)c+(*FAIL)/C
8665        aaabccc
8666    --->aaabccc
8667     +0 ^           a+
8668     +2 ^  ^        b?
8669     +4 ^   ^       (*THEN)
8670    +11 ^   ^       c+
8671    +13 ^      ^    (*FAIL)
8672    +13 ^     ^     (*FAIL)
8673    +13 ^    ^      (*FAIL)
8674     +0  ^          a+
8675     +2  ^ ^        b?
8676     +4  ^  ^       (*THEN)
8677    +11  ^  ^       c+
8678    +13  ^     ^    (*FAIL)
8679    +13  ^    ^     (*FAIL)
8680    +13  ^   ^      (*FAIL)
8681     +0   ^         a+
8682     +2   ^^        b?
8683     +4   ^ ^       (*THEN)
8684    +11   ^ ^       c+
8685    +13   ^    ^    (*FAIL)
8686    +13   ^   ^     (*FAIL)
8687    +13   ^  ^      (*FAIL)
8688    No match
8689    
8690    /a(*MARK)b/
8691    Failed: (*MARK) must have an argument at offset 7
8692    
8693    /(?i:A{1,}\6666666666)/
8694    Failed: number is too big at offset 19
8695    
8696    /\g6666666666/
8697    Failed: number is too big at offset 11
8698    
8699    /[\g6666666666]/
8700    Failed: number is too big at offset 12
8701    
8702    /(?1)\c[/
8703    Failed: reference to non-existent subpattern at offset 3
8704    
8705    /.+A/<crlf>
8706        \r\nA
8707    No match
8708    
8709    /\nA/<crlf>
8710        \r\nA
8711     0: \x0aA
8712    
8713    /[\r\n]A/<crlf>
8714        \r\nA
8715     0: \x0aA
8716    
8717    /(\r|\n)A/<crlf>
8718        \r\nA
8719     0: \x0aA
8720     1: \x0a
8721    
8722    /a(*CR)b/
8723    Failed: (*VERB) not recognized at offset 5
8724    
8725    /(*CR)a.b/
8726        a\nb
8727     0: a\x0ab
8728        ** Failers
8729    No match
8730        a\rb
8731    No match
8732    
8733    /(*CR)a.b/<lf>
8734        a\nb
8735     0: a\x0ab
8736        ** Failers
8737    No match
8738        a\rb
8739    No match
8740    
8741    /(*LF)a.b/<CRLF>
8742        a\rb
8743     0: a\x0db
8744        ** Failers
8745    No match
8746        a\nb
8747    No match
8748    
8749    /(*CRLF)a.b/
8750        a\rb
8751     0: a\x0db
8752        a\nb
8753     0: a\x0ab
8754        ** Failers
8755    No match
8756        a\r\nb
8757    No match
8758    
8759    /(*ANYCRLF)a.b/<CR>
8760        ** Failers
8761    No match
8762        a\rb
8763    No match
8764        a\nb
8765    No match
8766        a\r\nb
8767    No match
8768    
8769    /(*ANY)a.b/<cr>
8770        ** Failers
8771    No match
8772        a\rb
8773    No match
8774        a\nb
8775    No match
8776        a\r\nb
8777    No match
8778        a\x85b
8779    No match
8780    
8781    /(*ANY).*/g
8782        abc\r\ndef
8783     0: abc
8784     0:
8785     0: def
8786     0:
8787    
8788    /(*ANYCRLF).*/g
8789        abc\r\ndef
8790     0: abc
8791     0:
8792     0: def
8793     0:
8794    
8795    /(*CRLF).*/g
8796        abc\r\ndef
8797     0: abc
8798     0:
8799     0: def
8800     0:
8801    
8802    /a\Rb/I<bsr_anycrlf>
8803    Capturing subpattern count = 0
8804    Options: bsr_anycrlf
8805    First char = 'a'
8806    Need char = 'b'
8807        a\rb
8808     0: a\x0db
8809        a\nb
8810     0: a\x0ab
8811        a\r\nb
8812     0: a\x0d\x0ab
8813        ** Failers
8814    No match
8815        a\x85b
8816    No match
8817        a\x0bb
8818    No match
8819    
8820    /a\Rb/I<bsr_unicode>
8821    Capturing subpattern count = 0
8822    Options: bsr_unicode
8823    First char = 'a'
8824    Need char = 'b'
8825        a\rb
8826     0: a\x0db
8827        a\nb
8828     0: a\x0ab
8829        a\r\nb
8830     0: a\x0d\x0ab
8831        a\x85b
8832     0: a\x85b
8833        a\x0bb
8834     0: a\x0bb
8835        ** Failers
8836    No match
8837        a\x85b\<bsr_anycrlf>
8838    No match
8839        a\x0bb\<bsr_anycrlf>
8840    No match
8841    
8842    /a\R?b/I<bsr_anycrlf>
8843    Capturing subpattern count = 0
8844    Options: bsr_anycrlf
8845    First char = 'a'
8846    Need char = 'b'
8847        a\rb
8848     0: a\x0db
8849        a\nb
8850     0: a\x0ab
8851        a\r\nb
8852     0: a\x0d\x0ab
8853        ** Failers
8854    No match
8855        a\x85b
8856    No match
8857        a\x0bb
8858    No match
8859    
8860    /a\R?b/I<bsr_unicode>
8861    Capturing subpattern count = 0
8862    Options: bsr_unicode
8863    First char = 'a'
8864    Need char = 'b'
8865        a\rb
8866     0: a\x0db
8867        a\nb
8868     0: a\x0ab
8869        a\r\nb
8870     0: a\x0d\x0ab
8871        a\x85b
8872     0: a\x85b
8873        a\x0bb
8874     0: a\x0bb
8875        ** Failers
8876    No match
8877        a\x85b\<bsr_anycrlf>
8878    No match
8879        a\x0bb\<bsr_anycrlf>
8880    No match
8881    
8882    /a\R{2,4}b/I<bsr_anycrlf>
8883    Capturing subpattern count = 0
8884    Options: bsr_anycrlf
8885    First char = 'a'
8886    Need char = 'b'
8887        a\r\n\nb
8888     0: a\x0d\x0a\x0ab
8889        a\n\r\rb
8890     0: a\x0a\x0d\x0db
8891        a\r\n\r\n\r\n\r\nb
8892     0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
8893        ** Failers
8894    No match
8895        a\x85\85b
8896    No match
8897        a\x0b\0bb
8898    No match
8899    
8900    /a\R{2,4}b/I<bsr_unicode>
8901    Capturing subpattern count = 0
8902    Options: bsr_unicode
8903    First char = 'a'
8904    Need char = 'b'
8905        a\r\rb
8906     0: a\x0d\x0db
8907        a\n\n\nb
8908     0: a\x0a\x0a\x0ab
8909        a\r\n\n\r\rb
8910     0: a\x0d\x0a\x0a\x0d\x0db
8911        a\x85\85b
8912    No match
8913        a\x0b\0bb
8914    No match
8915        ** Failers
8916    No match
8917        a\r\r\r\r\rb
8918    No match
8919        a\x85\85b\<bsr_anycrlf>
8920    No match
8921        a\x0b\0bb\<bsr_anycrlf>
8922    No match
8923    
8924    /(*BSR_ANYCRLF)a\Rb/I
8925    Capturing subpattern count = 0
8926    Options: bsr_anycrlf
8927    First char = 'a'
8928    Need char = 'b'
8929        a\nb
8930     0: a\x0ab
8931        a\rb
8932     0: a\x0db
8933    
8934    /(*BSR_UNICODE)a\Rb/I
8935    Capturing subpattern count = 0
8936    Options: bsr_unicode
8937    First char = 'a'
8938    Need char = 'b'
8939        a\x85b
8940     0: a\x85b
8941    
8942    /(*BSR_ANYCRLF)(*CRLF)a\Rb/I
8943    Capturing subpattern count = 0
8944    Options: bsr_anycrlf
8945    Forced newline sequence: CRLF
8946    First char = 'a'
8947    Need char = 'b'
8948        a\nb
8949     0: a\x0ab
8950        a\rb
8951     0: a\x0db
8952    
8953    /(*CRLF)(*BSR_UNICODE)a\Rb/I
8954    Capturing subpattern count = 0
8955    Options: bsr_unicode
8956    Forced newline sequence: CRLF
8957    First char = 'a'
8958    Need char = 'b'
8959        a\x85b
8960     0: a\x85b
8961    
8962    /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
8963    Capturing subpattern count = 0
8964    Options: bsr_anycrlf
8965    Forced newline sequence: CR
8966    First char = 'a'
8967    Need char = 'b'
8968    
8969    /(?<a>)(?&)/
8970    Failed: subpattern name expected at offset 9
8971    
8972    /(?<abc>)(?&a)/
8973    Failed: reference to non-existent subpattern at offset 12
8974    
8975    /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
8976    Failed: reference to non-existent subpattern at offset 32
8977    
8978    /(?+-a)/
8979    Failed: digit expected after (?+ at offset 3
8980    
8981    /(?-+a)/
8982    Failed: unrecognized character after (? or (?- at offset 3
8983    
8984    /(?(-1))/
8985    Failed: reference to non-existent subpattern at offset 6
8986    
8987    /(?(+10))/
8988    Failed: reference to non-existent subpattern at offset 7
8989    
8990    /(?(10))/
8991    Failed: reference to non-existent subpattern at offset 6
8992    
8993    /(?(+2))()()/
8994    
8995    /(?(2))()()/
8996    
8997    /\k''/
8998    Failed: subpattern name expected at offset 3
8999    
9000    /\k<>/
9001    Failed: subpattern name expected at offset 3
9002    
9003    /\k{}/
9004    Failed: subpattern name expected at offset 3
9005    
9006    /(?P=)/
9007    Failed: subpattern name expected at offset 4
9008    
9009    /(?P>)/
9010    Failed: subpattern name expected at offset 4
9011    
9012    /(?!\w)(?R)/
9013    Failed: recursive call could loop indefinitely at offset 9
9014    
9015    /(?=\w)(?R)/
9016    Failed: recursive call could loop indefinitely at offset 9
9017    
9018    /(?<!\w)(?R)/
9019    Failed: recursive call could loop indefinitely at offset 10
9020    
9021    /(?<=\w)(?R)/
9022    Failed: recursive call could loop indefinitely at offset 10
9023    
9024    /[[:foo:]]/
9025    Failed: unknown POSIX class name at offset 3
9026    
9027    /[[:1234:]]/
9028    Failed: unknown POSIX class name at offset 3
9029    
9030    /[[:f\oo:]]/
9031    Failed: unknown POSIX class name at offset 3
9032    
9033    /[[: :]]/
9034    Failed: unknown POSIX class name at offset 3
9035    
9036    /[[:...:]]/
9037    Failed: unknown POSIX class name at offset 3
9038    
9039    /[[:l\ower:]]/
9040    Failed: unknown POSIX class name at offset 3
9041    
9042    /[[:abc\:]]/
9043    Failed: unknown POSIX class name at offset 3
9044    
9045    /[abc[:x\]pqr:]]/
9046    Failed: unknown POSIX class name at offset 6
9047    
9048    /[[:a\dz:]]/
9049    Failed: unknown POSIX class name at offset 3
9050    
9051    /(^(a|b\g<-1'c))/
9052    Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
9053    
9054    /^(?+1)(?<a>x|y){0}z/
9055        xzxx
9056     0: xz
9057        yzyy
9058     0: yz
9059        ** Failers
9060    No match
9061        xxz
9062    No match
9063    
9064    /(\3)(\1)(a)/
9065        cat
9066    No match
9067    
9068    /(\3)(\1)(a)/<JS>
9069        cat
9070     0: a
9071     1:
9072     2:
9073     3: a
9074    
9075    /TA]/
9076        The ACTA] comes
9077     0: TA]
9078    
9079    /TA]/<JS>
9080    Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
9081    
9082    /(?2)[]a()b](abc)/
9083    Failed: reference to non-existent subpattern at offset 3
9084    
9085    /(?2)[^]a()b](abc)/
9086    Failed: reference to non-existent subpattern at offset 3
9087    
9088    /(?1)[]a()b](abc)/
9089        abcbabc
9090     0: abcbabc
9091     1: abc
9092        ** Failers
9093    No match
9094        abcXabc
9095    No match
9096    
9097    /(?1)[^]a()b](abc)/
9098        abcXabc
9099     0: abcXabc
9100     1: abc
9101        ** Failers
9102    No match
9103        abcbabc
9104    No match
9105    
9106    /(?2)[]a()b](abc)(xyz)/
9107        xyzbabcxyz
9108     0: xyzbabcxyz
9109     1: abc
9110     2: xyz
9111    
9112    /(?&N)[]a(?<N>)](?<M>abc)/
9113    Failed: reference to non-existent subpattern at offset 4
9114    
9115    /(?&N)[]a(?<N>)](abc)/
9116    Failed: reference to non-existent subpattern at offset 4
9117    
9118    /a[]b/
9119    Failed: missing terminating ] for character class at offset 4
9120    
9121    /a[^]b/
9122    Failed: missing terminating ] for character class at offset 5
9123    
9124    /a[]b/<JS>
9125        ** Failers
9126    No match
9127        ab
9128    No match
9129    
9130    /a[]+b/<JS>
9131        ** Failers
9132    No match
9133        ab
9134    No match
9135    
9136    /a[]*+b/<JS>
9137        ** Failers
9138    No match
9139        ab
9140    No match
9141    
9142    /a[^]b/<JS>
9143        aXb
9144     0: aXb
9145        a\nb
9146     0: a\x0ab
9147        ** Failers
9148    No match
9149        ab
9150    No match
9151    
9152    /a[^]+b/<JS>
9153        aXb
9154     0: aXb
9155        a\nX\nXb
9156     0: a\x0aX\x0aXb
9157        ** Failers
9158    No match
9159        ab
9160    No match
9161    
9162    /a(?!)+b/
9163    Failed: nothing to repeat at offset 5
9164    
9165    /a(*FAIL)+b/
9166    Failed: nothing to repeat at offset 8
9167    
9168    /(abc|pqr|123){0}[xyz]/SI
9169    Capturing subpattern count = 1
9170    No options
9171    No first char
9172    No need char
9173    Subject length lower bound = 1
9174    Starting byte set: x y z
9175    
9176    /(?(?=.*b)b|^)/CI
9177    Capturing subpattern count = 0
9178    Options:
9179    No first char
9180    No need char
9181       adc
9182    --->adc
9183     +0 ^       (?(?=.*b)b|^)
9184     +2 ^       (?=.*b)
9185     +5 ^       .*
9186     +7 ^  ^    b
9187     +7 ^ ^     b
9188     +7 ^^      b
9189     +7 ^       b
9190    +12 ^       )
9191    +13 ^
9192     0:
9193       abc
9194    --->abc
9195     +0 ^       (?(?=.*b)b|^)
9196     +2 ^       (?=.*b)
9197     +5 ^       .*
9198     +7 ^  ^    b
9199     +7 ^ ^     b
9200     +7 ^^      b
9201     +8 ^ ^     )
9202     +9 ^       b
9203     +0  ^      (?(?=.*b)b|^)
9204     +2  ^      (?=.*b)
9205     +5  ^      .*
9206     +7  ^ ^    b
9207     +7  ^^     b
9208     +7  ^      b
9209     +8  ^^     )
9210     +9  ^      b
9211    +10  ^^     |
9212    +13  ^^
9213     0: b
9214    
9215    /(?(?=b).*b|^d)/I
9216    Capturing subpattern count = 0
9217    No options
9218    No first char
9219    No need char
9220    
9221    /(?(?=.*b).*b|^d)/I
9222    Capturing subpattern count = 0
9223    No options
9224    First char at start or follows newline
9225    No need char
9226    
9227    /a?|b?/P
9228        abc
9229     0: a
9230        ** Failers
9231     0:
9232        ddd\N
9233    No match: POSIX code 17: match failed
9234    
9235    /xyz/C
9236      xyz
9237    --->xyz
9238     +0 ^       x
9239     +1 ^^      y
9240     +2 ^ ^     z
9241     +3 ^  ^
9242     0: xyz
9243      abcxyz
9244    --->abcxyz
9245     +0    ^       x
9246     +1    ^^      y
9247     +2    ^ ^     z
9248     +3    ^  ^
9249     0: xyz
9250      abcxyz\Y
9251    --->abcxyz
9252     +0 ^          x
9253     +0  ^         x
9254     +0   ^        x
9255     +0    ^       x
9256     +1    ^^      y
9257     +2    ^ ^     z
9258     +3    ^  ^
9259     0: xyz
9260      ** Failers
9261    No match
9262      abc
9263    No match
9264      abc\Y
9265    --->abc
9266     +0 ^       x
9267     +0  ^      x
9268     +0   ^     x
9269     +0    ^    x
9270    No match
9271      abcxypqr
9272    No match
9273      abcxypqr\Y
9274    --->abcxypqr
9275     +0 ^            x
9276     +0  ^           x
9277     +0   ^          x
9278     +0    ^         x
9279     +1    ^^        y
9280     +2    ^ ^       z
9281     +0     ^        x
9282     +0      ^       x
9283     +0       ^      x
9284     +0        ^     x
9285     +0         ^    x
9286    No match
9287    
9288    /(*NO_START_OPT)xyz/C
9289      abcxyz
9290    --->abcxyz
9291    +15 ^          x
9292    +15  ^         x
9293    +15   ^        x
9294    +15    ^       x
9295    +16    ^^      y
9296    +17    ^ ^     z
9297    +18    ^  ^
9298     0: xyz
9299    
9300    /xyz/CY
9301      abcxyz
9302    --->abcxyz
9303     +0 ^          x
9304     +0  ^         x
9305     +0   ^        x
9306     +0    ^       x
9307     +1    ^^      y
9308     +2    ^ ^     z
9309     +3    ^  ^
9310     0: xyz
9311    
9312    /^"((?(?=[a])[^"])|b)*"$/C
9313        "ab"
9314    --->"ab"
9315     +0 ^        ^
9316     +1 ^        "
9317     +2 ^^       ((?(?=[a])[^"])|b)*
9318     +3 ^^       (?(?=[a])[^"])
9319     +5 ^^       (?=[a])
9320     +8 ^^       [a]
9321    +11 ^ ^      )
9322    +12 ^^       [^"]
9323    +16 ^ ^      )
9324    +17 ^ ^      |
9325     +3 ^ ^      (?(?=[a])[^"])
9326     +5 ^ ^      (?=[a])
9327     +8 ^ ^      [a]
9328    +21 ^ ^      "
9329    +18 ^ ^      b
9330    +19 ^  ^     )
9331     +3 ^  ^     (?(?=[a])[^"])
9332     +5 ^  ^     (?=[a])
9333     +8 ^  ^     [a]
9334    +21 ^  ^     "
9335    +22 ^   ^    $
9336    +23 ^   ^
9337     0: "ab"
9338     1:
9339    
9340    /^"((?(?=[a])[^"])|b)*"$/
9341        "ab"
9342     0: "ab"
9343     1:
9344    
9345    /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9346    Failed: reference to non-existent subpattern at offset 5
9347    
9348    /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9349        XYabcdY
9350     0: XYabcdY
9351     1: a
9352     2: b
9353     3: c
9354     4: d
9355     5: Y
9356    
9357    /Xa{2,4}b/
9358        X\P
9359    Partial match: X
9360        Xa\P
9361    Partial match: Xa
9362        Xaa\P
9363    Partial match: Xaa
9364        Xaaa\P
9365    Partial match: Xaaa
9366        Xaaaa\P
9367    Partial match: Xaaaa
9368    
9369    /Xa{2,4}?b/
9370        X\P
9371    Partial match: X
9372        Xa\P
9373    Partial match: Xa
9374        Xaa\P
9375    Partial match: Xaa
9376        Xaaa\P
9377    Partial match: Xaaa
9378        Xaaaa\P
9379    Partial match: Xaaaa
9380    
9381    /Xa{2,4}+b/
9382        X\P
9383    Partial match: X
9384        Xa\P
9385    Partial match: Xa
9386        Xaa\P
9387    Partial match: Xaa
9388        Xaaa\P
9389    Partial match: Xaaa
9390        Xaaaa\P
9391    Partial match: Xaaaa
9392    
9393    /X\d{2,4}b/
9394        X\P
9395    Partial match: X
9396        X3\P
9397    Partial match: X3
9398        X33\P
9399    Partial match: X33
9400        X333\P
9401    Partial match: X333
9402        X3333\P
9403    Partial match: X3333
9404    
9405    /X\d{2,4}?b/
9406        X\P
9407    Partial match: X
9408        X3\P
9409    Partial match: X3
9410        X33\P
9411    Partial match: X33
9412        X333\P
9413    Partial match: X333
9414        X3333\P
9415    Partial match: X3333
9416    
9417    /X\d{2,4}+b/
9418        X\P
9419    Partial match: X
9420        X3\P
9421    Partial match: X3
9422        X33\P
9423    Partial match: X33
9424        X333\P
9425    Partial match: X333
9426        X3333\P
9427    Partial match: X3333
9428    
9429    /X\D{2,4}b/
9430        X\P
9431    Partial match: X
9432        Xa\P
9433    Partial match: Xa
9434        Xaa\P
9435    Partial match: Xaa
9436        Xaaa\P
9437    Partial match: Xaaa
9438        Xaaaa\P
9439    Partial match: Xaaaa
9440    
9441    /X\D{2,4}?b/
9442        X\P
9443    Partial match: X
9444        Xa\P
9445    Partial match: Xa
9446        Xaa\P
9447    Partial match: Xaa
9448        Xaaa\P
9449    Partial match: Xaaa
9450        Xaaaa\P
9451    Partial match: Xaaaa
9452    
9453    /X\D{2,4}+b/
9454        X\P
9455    Partial match: X
9456        Xa\P
9457    Partial match: Xa
9458        Xaa\P
9459    Partial match: Xaa
9460        Xaaa\P
9461    Partial match: Xaaa
9462        Xaaaa\P
9463    Partial match: Xaaaa
9464    
9465    /X[abc]{2,4}b/
9466        X\P
9467    Partial match: X
9468        Xa\P
9469    Partial match: Xa
9470        Xaa\P
9471    Partial match: Xaa
9472        Xaaa\P
9473    Partial match: Xaaa
9474        Xaaaa\P
9475    Partial match: Xaaaa
9476    
9477    /X[abc]{2,4}?b/
9478        X\P
9479    Partial match: X
9480        Xa\P
9481    Partial match: Xa
9482        Xaa\P
9483    Partial match: Xaa
9484        Xaaa\P
9485    Partial match: Xaaa
9486        Xaaaa\P
9487    Partial match: Xaaaa
9488    
9489    /X[abc]{2,4}+b/
9490        X\P
9491    Partial match: X
9492        Xa\P
9493    Partial match: Xa
9494        Xaa\P
9495    Partial match: Xaa
9496        Xaaa\P
9497    Partial match: Xaaa
9498        Xaaaa\P
9499    Partial match: Xaaaa
9500    
9501    /X[^a]{2,4}b/
9502        X\P
9503    Partial match: X
9504        Xz\P
9505    Partial match: Xz
9506        Xzz\P
9507    Partial match: Xzz
9508        Xzzz\P
9509    Partial match: Xzzz
9510        Xzzzz\P
9511    Partial match: Xzzzz
9512    
9513    /X[^a]{2,4}?b/
9514        X\P
9515    Partial match: X
9516        Xz\P
9517    Partial match: Xz
9518        Xzz\P
9519    Partial match: Xzz
9520        Xzzz\P
9521    Partial match: Xzzz
9522        Xzzzz\P
9523    Partial match: Xzzzz
9524    
9525    /X[^a]{2,4}+b/
9526        X\P
9527    Partial match: X
9528        Xz\P
9529    Partial match: Xz
9530        Xzz\P
9531    Partial match: Xzz
9532        Xzzz\P
9533    Partial match: Xzzz
9534        Xzzzz\P
9535    Partial match: Xzzzz
9536    
9537    /(Y)X\1{2,4}b/
9538        YX\P
9539    Partial match: YX
9540        YXY\P
9541    Partial match: YXY
9542        YXYY\P
9543    Partial match: YXYY
9544        YXYYY\P
9545    Partial match: YXYYY
9546        YXYYYY\P
9547    Partial match: YXYYYY
9548    
9549    /(Y)X\1{2,4}?b/
9550        YX\P
9551    Partial match: YX
9552        YXY\P
9553    Partial match: YXY
9554        YXYY\P
9555    Partial match: YXYY
9556        YXYYY\P
9557    Partial match: YXYYY
9558        YXYYYY\P
9559    Partial match: YXYYYY
9560    
9561    /(Y)X\1{2,4}+b/
9562        YX\P
9563    Partial match: YX
9564        YXY\P
9565    Partial match: YXY
9566        YXYY\P
9567    Partial match: YXYY
9568        YXYYY\P
9569    Partial match: YXYYY
9570        YXYYYY\P
9571    Partial match: YXYYYY
9572    
9573    /\++\KZ|\d+X|9+Y/
9574        ++++123999\P
9575    Partial match: 123999
9576        ++++123999Y\P
9577     0: 999Y
9578        ++++Z1234\P
9579     0: Z
9580    
9581    /Z(*F)/
9582        Z\P
9583    No match
9584        ZA\P
9585    No match
9586    
9587    /Z(?!)/
9588        Z\P
9589    No match
9590        ZA\P
9591    No match
9592    
9593    /dog(sbody)?/
9594        dogs\P
9595     0: dog
9596        dogs\P\P
9597    Partial match: dogs
9598    
9599    /dog(sbody)??/
9600        dogs\P
9601     0: dog
9602        dogs\P\P
9603     0: dog
9604    
9605    /dog|dogsbody/
9606        dogs\P
9607     0: dog
9608        dogs\P\P
9609     0: dog
9610    
9611    /dogsbody|dog/
9612        dogs\P
9613     0: dog
9614        dogs\P\P
9615    Partial match: dogs
9616    
9617    /\bthe cat\b/
9618        the cat\P
9619     0: the cat
9620        the cat\P\P
9621    Partial match: the cat
9622    
9623    /abc/
9624       abc\P
9625     0: abc
9626       abc\P\P
9627     0: abc
9628    
9629    /\w+A/P
9630       CDAAAAB
9631     0: CDAAAA
9632    
9633    /\w+A/PU
9634       CDAAAAB
9635     0: CDA
9636    
9637    /abc\K123/
9638        xyzabc123pqr
9639     0: 123
9640        xyzabc12\P
9641    Partial match: abc12
9642        xyzabc12\P\P
9643    Partial match: abc12
9644    
9645    /(?<=abc)123/
9646        xyzabc123pqr
9647     0: 123
9648        xyzabc12\P
9649    Partial match: abc12
9650        xyzabc12\P\P
9651    Partial match: abc12
9652    
9653    /\babc\b/
9654        +++abc+++
9655     0: abc
9656        +++ab\P
9657    Partial match: +ab
9658        +++ab\P\P
9659    Partial match: +ab
9660    
9661    /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9662    ------------------------------------------------------------------
9663            Bra
9664            Once
9665            Recurse
9666            Ket
9667            Once
9668            Recurse
9669            Ket
9670            Cond
9671            Cond def
9672            CBra 1
9673            <
9674            [^m]
9675            [^>]
9676            >
9677            [^<]
9678            Ket
9679            CBra 2
9680            \w*+
9681            Ket
9682            Ket
9683            Ket
9684            End
9685    ------------------------------------------------------------------
9686    
9687    /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9688    ------------------------------------------------------------------
9689            Bra
9690            Once
9691            Recurse
9692            Ket
9693            Once
9694            Recurse
9695            Ket
9696            Cond
9697            Cond def
9698            CBra 1
9699            <
9700            [\x00-/:-\xff] (neg)
9701            [^>]
9702            >
9703            [^<]
9704            Ket
9705            CBra 2
9706            \w*+
9707            Ket
9708            Ket
9709            Ket
9710            End
9711    ------------------------------------------------------------------
9712    
9713    /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9714    ------------------------------------------------------------------
9715            Bra
9716            CBra 1
9717            ab
9718            Ket
9719            CBra 2
9720            x
9721            CBra 3
9722            y
9723            Ket
9724            z
9725            CBra 4
9726            cd
9727            Close 4
9728            Close 2
9729            *ACCEPT
9730            Ket
9731            Ket
9732            pq
9733            Ket
9734            End
9735    ------------------------------------------------------------------
9736    
9737    /abc\K/+
9738        abcdef
9739     0:
9740     0+ def
9741        abcdef\N\N
9742     0:
9743     0+ def
9744        xyzabcdef\N\N
9745     0:
9746     0+ def
9747        ** Failers
9748    No match
9749        abcdef\N
9750    No match
9751        xyzabcdef\N
9752    No match
9753    
9754    /^(?:(?=abc)|abc\K)/+
9755        abcdef
9756     0:
9757     0+ abcdef
9758        abcdef\N\N
9759     0:
9760     0+ def
9761        ** Failers
9762    No match
9763        abcdef\N
9764    No match
9765    
9766    /a?b?/+
9767        xyz
9768     0:
9769     0+ xyz
9770        xyzabc
9771     0:
9772     0+ xyzabc
9773        xyzabc\N
9774     0: ab
9775     0+ c
9776        xyzabc\N\N
9777     0:
9778     0+ yzabc
9779        xyz\N\N
9780     0:
9781     0+ yz
9782        ** Failers
9783     0:
9784     0+ ** Failers
9785        xyz\N
9786    No match
9787    
9788    /^a?b?/+
9789        xyz
9790     0:
9791     0+ xyz
9792        xyzabc
9793     0:
9794     0+ xyzabc
9795        ** Failers
9796     0:
9797     0+ ** Failers
9798        xyzabc\N
9799    No match
9800        xyzabc\N\N
9801    No match
9802        xyz\N\N
9803    No match
9804        xyz\N
9805    No match
9806    
9807    /^(?<name>a|b\g<name>c)/
9808        aaaa
9809     0: a
9810     1: a
9811        bacxxx
9812     0: bac
9813     1: bac
9814        bbaccxxx
9815     0: bbacc
9816     1: bbacc
9817        bbbacccxx
9818     0: bbbaccc
9819     1: bbbaccc
9820    
9821    /^(?<name>a|b\g'name'c)/
9822        aaaa
9823     0: a
9824     1: a
9825        bacxxx
9826     0: bac
9827     1: bac
9828        bbaccxxx
9829     0: bbacc
9830     1: bbacc
9831        bbbacccxx
9832     0: bbbaccc
9833     1: bbbaccc
9834    
9835    /^(a|b\g<1>c)/
9836        aaaa
9837     0: a
9838     1: a
9839        bacxxx
9840     0: bac
9841     1: bac
9842        bbaccxxx
9843     0: bbacc
9844     1: bbacc
9845        bbbacccxx
9846     0: bbbaccc
9847     1: bbbaccc
9848    
9849    /^(a|b\g'1'c)/
9850        aaaa
9851     0: a
9852     1: a
9853        bacxxx
9854     0: bac
9855     1: bac
9856        bbaccxxx
9857     0: bbacc
9858     1: bbacc
9859        bbbacccxx
9860     0: bbbaccc
9861     1: bbbaccc
9862    
9863    /^(a|b\g'-1'c)/
9864        aaaa
9865     0: a
9866     1: a
9867        bacxxx
9868     0: bac
9869     1: bac
9870        bbaccxxx
9871     0: bbacc
9872     1: bbacc
9873        bbbacccxx
9874     0: bbbaccc
9875     1: bbbaccc
9876    
9877    /(^(a|b\g<-1>c))/
9878        aaaa
9879     0: a
9880     1: a
9881     2: a
9882        bacxxx
9883     0: bac
9884     1: bac
9885     2: bac
9886        bbaccxxx
9887     0: bbacc
9888     1: bbacc
9889     2: bbacc
9890        bbbacccxx
9891     0: bbbaccc
9892     1: bbbaccc
9893     2: bbbaccc
9894    
9895    /(?-i:\g<name>)(?i:(?<name>a))/
9896        XaaX
9897     0: aa
9898     1: a
9899        XAAX
9900     0: AA
9901     1: A
9902    
9903    /(?i:\g<name>)(?-i:(?<name>a))/
9904        XaaX
9905     0: aa
9906     1: a
9907        ** Failers
9908    No match
9909        XAAX
9910    No match
9911    
9912    /(?-i:\g<+1>)(?i:(a))/
9913        XaaX
9914     0: aa
9915     1: a
9916        XAAX
9917     0: AA
9918     1: A
9919    
9920    /(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/
9921    
9922    /(?<n>a|b|c)\g<n>*/
9923       abc
9924     0: abc
9925     1: a
9926       accccbbb