/[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 197 by ph10, Tue Jul 31 10:50:18 2007 UTC revision 602 by ph10, Wed May 25 08:29:03 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 2996  No need char Line 3006  No need char
3006    
3007  /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
3008  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3009  Options: anchored  Options: anchored
3010  No first char  No first char
3011  No need char  No need char
# Line 3010  No match Line 3019  No match
3019    
3020  /(\d++)(\w)/I  /(\d++)(\w)/I
3021  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3022  No options  No options
3023  No first char  No first char
3024  No need char  No need char
# Line 3025  No match Line 3033  No match
3033    
3034  /a++b/I  /a++b/I
3035  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3036  No options  No options
3037  First char = 'a'  First char = 'a'
3038  Need char = 'b'  Need char = 'b'
# Line 3034  Need char = 'b' Line 3041  Need char = 'b'
3041    
3042  /(a++b)/I  /(a++b)/I
3043  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3044  No options  No options
3045  First char = 'a'  First char = 'a'
3046  Need char = 'b'  Need char = 'b'
# Line 3044  Need char = 'b' Line 3050  Need char = 'b'
3050    
3051  /(a++)b/I  /(a++)b/I
3052  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3053  No options  No options
3054  First char = 'a'  First char = 'a'
3055  Need char = 'b'  Need char = 'b'
# Line 3054  Need char = 'b' Line 3059  Need char = 'b'
3059    
3060  /([^()]++|\([^()]*\))+/I  /([^()]++|\([^()]*\))+/I
3061  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3062  No options  No options
3063  No first char  No first char
3064  No need char  No need char
# Line 3064  No need char Line 3068  No need char
3068    
3069  /\(([^()]++|\([^()]+\))+\)/I  /\(([^()]++|\([^()]+\))+\)/I
3070  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3071  No options  No options
3072  First char = '('  First char = '('
3073  Need char = ')'  Need char = ')'
# Line 3127  Failed: nothing to repeat at offset 7 Line 3130  Failed: nothing to repeat at offset 7
3130          End          End
3131  ------------------------------------------------------------------  ------------------------------------------------------------------
3132  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3133  No options  No options
3134  First char = 'x'  First char = 'x'
3135  Need char = 'b'  Need char = 'b'
# Line 3144  Need char = 'b' Line 3146  Need char = 'b'
3146          End          End
3147  ------------------------------------------------------------------  ------------------------------------------------------------------
3148  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3149  Options: ungreedy  Options: ungreedy
3150  First char = 'x'  First char = 'x'
3151  Need char = 'b'  Need char = 'b'
# Line 3173  Need char = 'b' Line 3174  Need char = 'b'
3174          End          End
3175  ------------------------------------------------------------------  ------------------------------------------------------------------
3176  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3177  Options: anchored  Options: anchored
3178  No first char  No first char
3179  No need char  No need char
# Line 3189  No need char Line 3189  No need char
3189          End          End
3190  ------------------------------------------------------------------  ------------------------------------------------------------------
3191  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3192  Options: anchored  Options: anchored
3193  No first char  No first char
3194  Need char = 'b'  Need char = 'b'
# Line 3207  Need char = 'b' Line 3206  Need char = 'b'
3206          End          End
3207  ------------------------------------------------------------------  ------------------------------------------------------------------
3208  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3209  Options: anchored  Options: anchored
3210  No first char  No first char
3211  Need char = 'b'  Need char = 'b'
# Line 3222  Failed: POSIX collating elements are not Line 3220  Failed: POSIX collating elements are not
3220  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
3221    
3222  /\l/I  /\l/I
3223  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
3224    
3225  /\L/I  /\L/I
3226  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
3227    
3228  /\N{name}/I  /\N{name}/I
3229  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
3230    
3231  /\u/I  /\u/I
3232  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
3233    
3234  /\U/I  /\U/I
3235  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
3236    
3237  /[/I  /[/I
3238  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 3283  No need char Line 3281  No need char
3281    
3282  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3283  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3284  Options: extended  Options: extended
3285  First char = '<'  First char = '<'
3286  Need char = '>'  Need char = '>'
# Line 3333  Need char = 'X' Line 3330  Need char = 'X'
3330  /(.*)\d+\1/I  /(.*)\d+\1/I
3331  Capturing subpattern count = 1  Capturing subpattern count = 1
3332  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3333  No options  No options
3334  No first char  No first char
3335  No need char  No need char
3336    
3337  /(.*)\d+/I  /(.*)\d+/I
3338  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3339  No options  No options
3340  First char at start or follows newline  First char at start or follows newline
3341  No need char  No need char
# Line 3348  No need char Line 3343  No need char
3343  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3344  Capturing subpattern count = 1  Capturing subpattern count = 1
3345  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3346  Options: dotall  Options: dotall
3347  No first char  No first char
3348  No need char  No need char
3349    
3350  /(.*)\d+/Is  /(.*)\d+/Is
3351  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3352  Options: anchored dotall  Options: anchored dotall
3353  No first char  No first char
3354  No need char  No need char
# Line 3363  No need char Line 3356  No need char
3356  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3357  Capturing subpattern count = 2  Capturing subpattern count = 2
3358  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3359  No options  No options
3360  First char at start or follows newline  First char at start or follows newline
3361  Need char = 'z'  Need char = 'z'
# Line 3371  Need char = 'z' Line 3363  Need char = 'z'
3363  /((.*))\d+\1/I  /((.*))\d+\1/I
3364  Capturing subpattern count = 2  Capturing subpattern count = 2
3365  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3366  No options  No options
3367  No first char  No first char
3368  No need char  No need char
# Line 3388  Need char = 'b' Line 3379  Need char = 'b'
3379    
3380  /(?=a).*/I  /(?=a).*/I
3381  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3382  No options  No options
3383  First char = 'a'  First char = 'a'
3384  No need char  No need char
# Line 3435  No options Line 3425  No options
3425  No first char  No first char
3426  Need char = 'a'  Need char = 'a'
3427    
3428  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3429  Capturing subpattern count = 0  Capturing subpattern count = 1
3430  No options  No options
3431  First char = 'a'  First char = 'a'
3432  No need char  No need char
3433    
3434  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3435  Capturing subpattern count = 0  Capturing subpattern count = 1
3436  No options  No options
3437  First char = 'a'  First char = 'a'
3438  Need char = 'z'  Need char = 'z'
3439    
3440  /(?(1)abz)/I  /(?(1)abz)(.)/I
3441  Capturing subpattern count = 0  Capturing subpattern count = 1
3442  No options  No options
3443  No first char  No first char
3444  No need char  No need char
3445    
3446  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3447  Capturing subpattern count = 0  Capturing subpattern count = 1
3448  No options  No options
3449  No first char  No first char
3450  Need char = '3'  Need char = '3'
# Line 3494  Capturing subpattern count = 0 Line 3484  Capturing subpattern count = 0
3484  No options  No options
3485  No first char  No first char
3486  No need char  No need char
3487    Subject length lower bound = 1
3488  Starting byte set: a b  Starting byte set: a b
3489    
3490  /[^a]/I  /[^a]/I
# Line 3513  Capturing subpattern count = 0 Line 3504  Capturing subpattern count = 0
3504  No options  No options
3505  No first char  No first char
3506  Need char = '6'  Need char = '6'
3507    Subject length lower bound = 4
3508  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
3509    
3510  /a^b/I  /a^b/I
# Line 3546  Capturing subpattern count = 0 Line 3538  Capturing subpattern count = 0
3538  Options: caseless  Options: caseless
3539  No first char  No first char
3540  No need char  No need char
3541    Subject length lower bound = 1
3542  Starting byte set: A B a b  Starting byte set: A B a b
3543    
3544  /[ab](?i)cd/IS  /[ab](?i)cd/IS
# Line 3553  Capturing subpattern count = 0 Line 3546  Capturing subpattern count = 0
3546  No options  No options
3547  No first char  No first char
3548  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3549    Subject length lower bound = 3
3550  Starting byte set: a b  Starting byte set: a b
3551    
3552  /abc(?C)def/I  /abc(?C)def/I
# Line 3710  No need char Line 3704  No need char
3704    
3705  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3706  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3707  No options  No options
3708  No first char  No first char
3709  No need char  No need char
# Line 3839  Callout 0: last capture = 1 Line 3832  Callout 0: last capture = 1
3832    
3833  /a(b+)(c*)(?C1)/I  /a(b+)(c*)(?C1)/I
3834  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3835  No options  No options
3836  First char = 'a'  First char = 'a'
3837  Need char = 'b'  Need char = 'b'
# Line 3865  No match Line 3857  No match
3857    
3858  /a(b+?)(c*?)(?C1)/I  /a(b+?)(c*?)(?C1)/I
3859  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3860  No options  No options
3861  First char = 'a'  First char = 'a'
3862  Need char = 'b'  Need char = 'b'
# Line 3906  Capturing subpattern count = 0 Line 3897  Capturing subpattern count = 0
3897  No options  No options
3898  No first char  No first char
3899  No need char  No need char
3900    Subject length lower bound = 1
3901  Starting byte set: a b  Starting byte set: a b
3902    
3903  /(?R)/I  /(?R)/I
# Line 4025  No options Line 4017  No options
4017  First char = 'a'  First char = 'a'
4018  Need char = 'b'  Need char = 'b'
4019    
 /^\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  
   
4020  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
4021  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4022  Options: anchored  Options: anchored
4023  No first char  No first char
4024  No need char  No need char
# Line 4102  No match Line 4059  No match
4059    
4060  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4061  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4062  Options: extended  Options: extended
4063  First char = '<'  First char = '<'
4064  Need char = '>'  Need char = '>'
# Line 4276  Named capturing subpatterns: Line 4232  Named capturing subpatterns:
4232    one     1    one     1
4233    three   3    three   3
4234    two     2    two     2
 Partial matching not supported  
4235  Options: anchored caseless  Options: anchored caseless
4236  No first char  No first char
4237  No need char  No need char
# Line 4322  No need char Line 4277  No need char
4277    
4278  /(.*)a/Is  /(.*)a/Is
4279  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4280  Options: anchored dotall  Options: anchored dotall
4281  No first char  No first char
4282  Need char = 'a'  Need char = 'a'
# Line 4330  Need char = 'a' Line 4284  Need char = 'a'
4284  /(.*)a\1/Is  /(.*)a\1/Is
4285  Capturing subpattern count = 1  Capturing subpattern count = 1
4286  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4287  Options: dotall  Options: dotall
4288  No first char  No first char
4289  Need char = 'a'  Need char = 'a'
# Line 4338  Need char = 'a' Line 4291  Need char = 'a'
4291  /(.*)a(b)\2/Is  /(.*)a(b)\2/Is
4292  Capturing subpattern count = 2  Capturing subpattern count = 2
4293  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4294  Options: anchored dotall  Options: anchored dotall
4295  No first char  No first char
4296  Need char = 'b'  Need char = 'b'
4297    
4298  /((.*)a|(.*)b)z/Is  /((.*)a|(.*)b)z/Is
4299  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4300  Options: anchored dotall  Options: anchored dotall
4301  No first char  No first char
4302  Need char = 'z'  Need char = 'z'
# Line 4353  Need char = 'z' Line 4304  Need char = 'z'
4304  /((.*)a|(.*)b)z\1/Is  /((.*)a|(.*)b)z\1/Is
4305  Capturing subpattern count = 3  Capturing subpattern count = 3
4306  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4307  Options: dotall  Options: dotall
4308  No first char  No first char
4309  Need char = 'z'  Need char = 'z'
# Line 4361  Need char = 'z' Line 4311  Need char = 'z'
4311  /((.*)a|(.*)b)z\2/Is  /((.*)a|(.*)b)z\2/Is
4312  Capturing subpattern count = 3  Capturing subpattern count = 3
4313  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4314  Options: dotall  Options: dotall
4315  No first char  No first char
4316  Need char = 'z'  Need char = 'z'
# Line 4369  Need char = 'z' Line 4318  Need char = 'z'
4318  /((.*)a|(.*)b)z\3/Is  /((.*)a|(.*)b)z\3/Is
4319  Capturing subpattern count = 3  Capturing subpattern count = 3
4320  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4321  Options: dotall  Options: dotall
4322  No first char  No first char
4323  Need char = 'z'  Need char = 'z'
# Line 4377  Need char = 'z' Line 4325  Need char = 'z'
4325  /((.*)a|^(.*)b)z\3/Is  /((.*)a|^(.*)b)z\3/Is
4326  Capturing subpattern count = 3  Capturing subpattern count = 3
4327  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4328  Options: anchored dotall  Options: anchored dotall
4329  No first char  No first char
4330  Need char = 'z'  Need char = 'z'
4331    
4332  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4333  Capturing subpattern count = 31  Capturing subpattern count = 31
 Partial matching not supported  
4334  Options: anchored dotall  Options: anchored dotall
4335  No first char  No first char
4336  No need char  No need char
# Line 4392  No need char Line 4338  No need char
4338  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4339  Capturing subpattern count = 31  Capturing subpattern count = 31
4340  Max back reference = 31  Max back reference = 31
 Partial matching not supported  
4341  Options: dotall  Options: dotall
4342  No first char  No first char
4343  No need char  No need char
# Line 4400  No need char Line 4345  No need char
4345  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4346  Capturing subpattern count = 32  Capturing subpattern count = 32
4347  Max back reference = 32  Max back reference = 32
 Partial matching not supported  
4348  Options: dotall  Options: dotall
4349  No first char  No first char
4350  No need char  No need char
# Line 4467  Need char = 'c' Line 4411  Need char = 'c'
4411    
4412  /(a+)*zz/I  /(a+)*zz/I
4413  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4414  No options  No options
4415  No first char  No first char
4416  Need char = 'z'  Need char = 'z'
# Line 4604  Failed: two named subpatterns have the s Line 4547  Failed: two named subpatterns have the s
4547  Capturing subpattern count = 3  Capturing subpattern count = 3
4548  Named capturing subpatterns:  Named capturing subpatterns:
4549    elem   2    elem   2
 Partial matching not supported  
4550  No options  No options
4551  First char = '['  First char = '['
4552  Need char = ']'  Need char = ']'
# Line 4622  No match Line 4564  No match
4564  Capturing subpattern count = 3  Capturing subpattern count = 3
4565  Named capturing subpatterns:  Named capturing subpatterns:
4566    elem   2    elem   2
 Partial matching not supported  
4567  No options  No options
4568  First char = '['  First char = '['
4569  Need char = ']'  Need char = ']'
# Line 4729  No need char Line 4670  No need char
4670    
4671  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4672  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4673  Options: caseless  Options: caseless
4674  No first char  No first char
4675  Need char = 'g' (caseless)  Need char = 'g' (caseless)
# Line 4739  Need char = 'g' (caseless) Line 4679  Need char = 'g' (caseless)
4679    
4680  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4681  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4682  Options: caseless  Options: caseless
4683  No first char  No first char
4684  Need char = 'g' (caseless)  Need char = 'g' (caseless)
4685  Study returned NULL  Subject length lower bound = 8
4686    No set of starting bytes
4687       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
4688   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4689   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 4758  Study returned NULL Line 4698  Study returned NULL
4698          End          End
4699  ------------------------------------------------------------------  ------------------------------------------------------------------
4700  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4701  No options  No options
4702  No first char  No first char
4703  Need char = 'b'  Need char = 'b'
4704  Study returned NULL  Subject length lower bound = 1
4705    No set of starting bytes
4706    
4707  /(a|b)*.?c/ISDZ  /(a|b)*.?c/ISDZ
4708  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4782  Capturing subpattern count = 1 Line 4722  Capturing subpattern count = 1
4722  No options  No options
4723  No first char  No first char
4724  Need char = 'c'  Need char = 'c'
4725  Study returned NULL  Subject length lower bound = 1
4726    No set of starting bytes
4727    
4728  /abc(?C255)de(?C)f/DZ  /abc(?C255)de(?C)f/DZ
4729  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4851  No match Line 4792  No match
4792          End          End
4793  ------------------------------------------------------------------  ------------------------------------------------------------------
4794  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4795  Options:  Options:
4796  No first char  No first char
4797  Need char = 'b'  Need char = 'b'
# Line 4896  Need char = 'b' Line 4836  Need char = 'b'
4836          End          End
4837  ------------------------------------------------------------------  ------------------------------------------------------------------
4838  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4839  Options:  Options:
4840  First char = 'a'  First char = 'a'
4841  Need char = 'b'  Need char = 'b'
# Line 5334  No match Line 5273  No match
5273          End          End
5274  ------------------------------------------------------------------  ------------------------------------------------------------------
5275  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
5276  Options:  Options:
5277  No first char  No first char
5278  Need char = '3'  Need char = '3'
# Line 5366  Need char = '3' Line 5304  Need char = '3'
5304    
5305  /\b.*/I  /\b.*/I
5306  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5307  No options  No options
5308  No first char  No first char
5309  No need char  No need char
# Line 5375  No need char Line 5312  No need char
5312    
5313  /\b.*/Is  /\b.*/Is
5314  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5315  Options: dotall  Options: dotall
5316  No first char  No first char
5317  No need char  No need char
# Line 5384  No need char Line 5320  No need char
5320    
5321  /(?!.bcd).*/I  /(?!.bcd).*/I
5322  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5323  No options  No options
5324  No first char  No first char
5325  No need char  No need char
# Line 5397  No options Line 5332  No options
5332  First char = 'a'  First char = 'a'
5333  Need char = 'e'  Need char = 'e'
5334      ab\P      ab\P
5335  Partial match  Partial match: ab
5336      abc\P      abc\P
5337  Partial match  Partial match: abc
5338      abcd\P      abcd\P
5339  Partial match  Partial match: abcd
5340      abcde\P      abcde\P
5341   0: abcde   0: abcde
5342      the quick brown abc\P      the quick brown abc\P
5343  Partial match  Partial match: abc
5344      ** Failers\P      ** Failers\P
5345  No match  No match
5346      the quick brown abxyz fox\P      the quick brown abxyz fox\P
# Line 5430  Need char = '/' Line 5365  Need char = '/'
5365   1: 02   1: 02
5366   2: 05   2: 05
5367      1\P      1\P
5368  Partial match  Partial match: 1
5369      1/2\P      1/2\P
5370  Partial match  Partial match: 1/2
5371      1/2/0\P      1/2/0\P
5372  Partial match  Partial match: 1/2/0
5373      1/2/04\P      1/2/04\P
5374   0: 1/2/04   0: 1/2/04
5375   1: 1   1: 1
5376   2: 2   2: 2
5377      0\P      0\P
5378  Partial match  Partial match: 0
5379      02/\P      02/\P
5380  Partial match  Partial match: 02/
5381      02/0\P      02/0\P
5382  Partial match  Partial match: 02/0
5383      02/1\P      02/1\P
5384  Partial match  Partial match: 02/1
5385      ** Failers\P      ** Failers\P
5386  No match  No match
5387      \P      \P
# Line 5468  No match Line 5403  No match
5403    
5404  /0{0,2}ABC/I  /0{0,2}ABC/I
5405  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5406  No options  No options
5407  No first char  No first char
5408  Need char = 'C'  Need char = 'C'
5409    
5410  /\d{3,}ABC/I  /\d{3,}ABC/I
5411  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5412  No options  No options
5413  No first char  No first char
5414  Need char = 'C'  Need char = 'C'
5415    
5416  /\d*ABC/I  /\d*ABC/I
5417  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5418  No options  No options
5419  No first char  No first char
5420  Need char = 'C'  Need char = 'C'
5421    
5422  /[abc]+DE/I  /[abc]+DE/I
5423  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5424  No options  No options
5425  No first char  No first char
5426  Need char = 'E'  Need char = 'E'
# Line 5502  Need char = '3' Line 5433  Need char = '3'
5433      123\P      123\P
5434   0: 123   0: 123
5435      a\P      a\P
5436  Partial match  Partial match: a
5437      b\P      b\P
5438  Partial match  Partial match: b
5439      c\P      c\P
5440  Partial match  Partial match: c
5441      c12\P      c12\P
5442  Partial match  Partial match: c12
5443      c123\P      c123\P
5444   0: c123   0: c123
5445    
# Line 5518  Options: anchored Line 5449  Options: anchored
5449  No first char  No first char
5450  Need char = 'X'  Need char = 'X'
5451      1\P      1\P
5452  Partial match  Partial match: 1
5453      123\P      123\P
5454  Partial match  Partial match: 123
5455      123X      123X
5456   0: 123X   0: 123X
5457      1234\P      1234\P
5458  Partial match  Partial match: 1234
5459      1234X      1234X
5460   0: 1234X   0: 1234X
5461      12345\P      12345\P
5462  Partial match  Partial match: 12345
5463      12345X      12345X
5464   0: 12345X   0: 12345X
5465      *** Failers      *** Failers
# Line 5575  Capturing subpattern count = 1 Line 5506  Capturing subpattern count = 1
5506  No options  No options
5507  No first char  No first char
5508  No need char  No need char
5509    Subject length lower bound = 1
5510  Starting byte set: a b  Starting byte set: a b
5511  Compiled regex written to testsavedregex  Compiled regex written to testsavedregex
5512  Study data written to testsavedregex  Study data written to testsavedregex
# Line 5595  Capturing subpattern count = 1 Line 5527  Capturing subpattern count = 1
5527  No options  No options
5528  No first char  No first char
5529  No need char  No need char
5530    Subject length lower bound = 1
5531  Starting byte set: a b  Starting byte set: a b
5532  Compiled regex written to testsavedregex  Compiled regex written to testsavedregex
5533  Study data written to testsavedregex  Study data written to testsavedregex
# Line 5613  No match Line 5546  No match
5546  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5547  Capturing subpattern count = 3  Capturing subpattern count = 3
5548  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
5549  Options: multiline dotall  Options: multiline dotall
5550  First char = '<'  First char = '<'
5551  Need char = '>'  Need char = '>'
# Line 5631  No need char Line 5563  No need char
5563    
5564  /line\nbreak/I  /line\nbreak/I
5565  Capturing subpattern count = 0  Capturing subpattern count = 0
5566    Contains explicit CR or LF match
5567  No options  No options
5568  First char = 'l'  First char = 'l'
5569  Need char = 'k'  Need char = 'k'
# Line 5641  Need char = 'k' Line 5574  Need char = 'k'
5574    
5575  /line\nbreak/If  /line\nbreak/If
5576  Capturing subpattern count = 0  Capturing subpattern count = 0
5577    Contains explicit CR or LF match
5578  Options: firstline  Options: firstline
5579  First char = 'l'  First char = 'l'
5580  Need char = 'k'  Need char = 'k'
# Line 5653  No match Line 5587  No match
5587    
5588  /line\nbreak/Imf  /line\nbreak/Imf
5589  Capturing subpattern count = 0  Capturing subpattern count = 0
5590    Contains explicit CR or LF match
5591  Options: multiline firstline  Options: multiline firstline
5592  First char = 'l'  First char = 'l'
5593  Need char = 'k'  Need char = 'k'
# Line 5663  No match Line 5598  No match
5598      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5599  No match  No match
5600    
5601  /ab.cd/IP  /ab.cd/P
5602      ab-cd      ab-cd
5603   0: ab-cd   0: ab-cd
5604      ab=cd      ab=cd
# Line 5673  No match: POSIX code 17: match failed Line 5608  No match: POSIX code 17: match failed
5608      ab\ncd      ab\ncd
5609  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
5610    
5611  /ab.cd/IPs  /ab.cd/Ps
5612      ab-cd      ab-cd
5613   0: ab-cd   0: ab-cd
5614      ab=cd      ab=cd
# Line 5917  Matched, but too many substrings Line 5852  Matched, but too many substrings
5852    
5853  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
5854  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5855  No options  No options
5856  No first char  No first char
5857  No need char  No need char
# Line 5930  No need char Line 5864  No need char
5864    
5865  /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
5866  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5867  No options  No options
5868  No first char  No first char
5869  No need char  No need char
# Line 5941  No need char Line 5874  No need char
5874    
5875  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
5876  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5877  No options  No options
5878  No first char  No first char
5879  No need char  No need char
# Line 5952  No need char Line 5884  No need char
5884    
5885  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
5886  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5887  No options  No options
5888  No first char  No first char
5889  No need char  No need char
# Line 5965  No need char Line 5896  No need char
5896    
5897  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
5898  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5899  No options  No options
5900  No first char  No first char
5901  No need char  No need char
# Line 5978  No need char Line 5908  No need char
5908      ((this))      ((this))
5909   0: ((this))   0: ((this))
5910    
5911  /a(b)c/IPN  /a(b)c/PN
5912      abc      abc
5913  Matched with REG_NOSUB  Matched with REG_NOSUB
5914    
5915  /a(?P<name>b)c/IPN  /a(?P<name>b)c/PN
5916      abc      abc
5917  Matched with REG_NOSUB  Matched with REG_NOSUB
5918    
# Line 6160  Named capturing subpatterns: Line 6090  Named capturing subpatterns:
6090    A   2    A   2
6091    A   3    A   3
6092  Options: anchored dupnames  Options: anchored dupnames
6093    Duplicate name status changes
6094  No first char  No first char
6095  No need char  No need char
6096      a1b\CA      a1b\CA
# Line 6306  Failed: octal value is greater than \377 Line 6237  Failed: octal value is greater than \377
6237    
6238  /\s*,\s*/IS  /\s*,\s*/IS
6239  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6240  No options  No options
6241  No first char  No first char
6242  Need char = ','  Need char = ','
6243    Subject length lower bound = 1
6244  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6245      \x0b,\x0b      \x0b,\x0b
6246   0: ,   0: ,
# Line 6436  Unknown newline type at: <bad> Line 6367  Unknown newline type at: <bad>
6367    
6368  /.*/I<lf>  /.*/I<lf>
6369  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6370  Options:  Options:
6371  Forced newline sequence: LF  Forced newline sequence: LF
6372  First char at start or follows newline  First char at start or follows newline
# Line 6462  No need char Line 6392  No need char
6392    
6393  /\w+(.)(.)?def/Is  /\w+(.)(.)?def/Is
6394  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
6395  Options: dotall  Options: dotall
6396  No first char  No first char
6397  Need char = 'f'  Need char = 'f'
# Line 6479  Need char = 'f' Line 6408  Need char = 'f'
6408    
6409  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6410  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6411  No options  No options
6412  No first char  No first char
6413  No need char  No need char
# Line 6614  No need char Line 6542  No need char
6542    
6543  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
6544  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6545  No options  No options
6546  No first char  No first char
6547  No need char  No need char
6548    Subject length lower bound = 1
6549  Starting byte set: C a b c d  Starting byte set: C a b c d
6550    
6551  /()[ab]xyz/IS  /()[ab]xyz/IS
# Line 6625  Capturing subpattern count = 1 Line 6553  Capturing subpattern count = 1
6553  No options  No options
6554  No first char  No first char
6555  Need char = 'z'  Need char = 'z'
6556    Subject length lower bound = 4
6557  Starting byte set: a b  Starting byte set: a b
6558    
6559  /(|)[ab]xyz/IS  /(|)[ab]xyz/IS
# Line 6632  Capturing subpattern count = 1 Line 6561  Capturing subpattern count = 1
6561  No options  No options
6562  No first char  No first char
6563  Need char = 'z'  Need char = 'z'
6564    Subject length lower bound = 4
6565  Starting byte set: a b  Starting byte set: a b
6566    
6567  /(|c)[ab]xyz/IS  /(|c)[ab]xyz/IS
# Line 6639  Capturing subpattern count = 1 Line 6569  Capturing subpattern count = 1
6569  No options  No options
6570  No first char  No first char
6571  Need char = 'z'  Need char = 'z'
6572    Subject length lower bound = 4
6573  Starting byte set: a b c  Starting byte set: a b c
6574    
6575  /(|c?)[ab]xyz/IS  /(|c?)[ab]xyz/IS
# Line 6646  Capturing subpattern count = 1 Line 6577  Capturing subpattern count = 1
6577  No options  No options
6578  No first char  No first char
6579  Need char = 'z'  Need char = 'z'
6580    Subject length lower bound = 4
6581  Starting byte set: a b c  Starting byte set: a b c
6582    
6583  /(d?|c?)[ab]xyz/IS  /(d?|c?)[ab]xyz/IS
# Line 6653  Capturing subpattern count = 1 Line 6585  Capturing subpattern count = 1
6585  No options  No options
6586  No first char  No first char
6587  Need char = 'z'  Need char = 'z'
6588    Subject length lower bound = 4
6589  Starting byte set: a b c d  Starting byte set: a b c d
6590    
6591  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
# Line 6660  Capturing subpattern count = 1 Line 6593  Capturing subpattern count = 1
6593  No options  No options
6594  No first char  No first char
6595  Need char = 'z'  Need char = 'z'
6596    Subject length lower bound = 4
6597  Starting byte set: a b c d  Starting byte set: a b c d
6598    
6599  /^a*b\d/DZ  /^a*b\d/DZ
# Line 6673  Starting byte set: a b c d Line 6607  Starting byte set: a b c d
6607          End          End
6608  ------------------------------------------------------------------  ------------------------------------------------------------------
6609  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6610  Options: anchored  Options: anchored
6611  No first char  No first char
6612  Need char = 'b'  Need char = 'b'
# Line 6689  Need char = 'b' Line 6622  Need char = 'b'
6622          End          End
6623  ------------------------------------------------------------------  ------------------------------------------------------------------
6624  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6625  Options: anchored  Options: anchored
6626  No first char  No first char
6627  Need char = 'b'  Need char = 'b'
# Line 6705  Need char = 'b' Line 6637  Need char = 'b'
6637          End          End
6638  ------------------------------------------------------------------  ------------------------------------------------------------------
6639  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6640  Options: anchored  Options: anchored
6641  No first char  No first char
6642  Need char = 'b'  Need char = 'b'
# Line 6721  Need char = 'b' Line 6652  Need char = 'b'
6652          End          End
6653  ------------------------------------------------------------------  ------------------------------------------------------------------
6654  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6655  Options: anchored  Options: anchored
6656  No first char  No first char
6657  Need char = 'A'  Need char = 'A'
# Line 6736  No match Line 6666  No match
6666  ------------------------------------------------------------------  ------------------------------------------------------------------
6667          Bra          Bra
6668          ^          ^
6669          a*       /i a*
6670       NC A       /i A
6671          \d          \d
6672          Ket          Ket
6673          End          End
6674  ------------------------------------------------------------------  ------------------------------------------------------------------
6675  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6676  Options: anchored caseless  Options: anchored caseless
6677  No first char  No first char
6678  Need char = 'A' (caseless)  Need char = 'A' (caseless)
# Line 6754  Need char = 'A' (caseless) Line 6683  Need char = 'A' (caseless)
6683    
6684  /(a*|b*)[cd]/IS  /(a*|b*)[cd]/IS
6685  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6686  No options  No options
6687  No first char  No first char
6688  No need char  No need char
6689    Subject length lower bound = 1
6690  Starting byte set: a b c d  Starting byte set: a b c d
6691    
6692  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
6693  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6694  No options  No options
6695  No first char  No first char
6696  No need char  No need char
6697    Subject length lower bound = 1
6698  Starting byte set: a b c d  Starting byte set: a b c d
6699    
6700  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
6701  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6702  No options  No options
6703  No first char  No first char
6704  No need char  No need char
6705    Subject length lower bound = 1
6706  Starting byte set: a b c d  Starting byte set: a b c d
6707    
6708  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
6709  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6710  No options  No options
6711  No first char  No first char
6712  No need char  No need char
6713    Subject length lower bound = 2
6714  Starting byte set: a b  Starting byte set: a b
6715    
6716  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
# Line 7366  Matched, but too many substrings Line 7295  Matched, but too many substrings
7295  /[^a]+a/BZi  /[^a]+a/BZi
7296  ------------------------------------------------------------------  ------------------------------------------------------------------
7297          Bra          Bra
7298          [^A]++       /i [^A]++
7299       NC a       /i a
7300          Ket          Ket
7301          End          End
7302  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7375  Matched, but too many substrings Line 7304  Matched, but too many substrings
7304  /[^a]+A/BZi  /[^a]+A/BZi
7305  ------------------------------------------------------------------  ------------------------------------------------------------------
7306          Bra          Bra
7307          [^A]++       /i [^A]++
7308       NC A       /i A
7309          Ket          Ket
7310          End          End
7311  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7587  No match Line 7516  No match
7516          ^          ^
7517          CBra 1          CBra 1
7518          Cond          Cond
7519        2 Cond ref        2 Cond nref
7520          y          y
7521          Ket          Ket
7522          [()]          [()]
# Line 7653  Named capturing subpatterns: Line 7582  Named capturing subpatterns:
7582    one     1    one     1
7583    three   3    three   3
7584    two     2    two     2
 Partial matching not supported  
7585  Options: anchored caseless  Options: anchored caseless
7586  No first char  No first char
7587  No need char  No need char
# Line 7687  No match Line 7615  No match
7615  /(?=(\w+))\1:/I  /(?=(\w+))\1:/I
7616  Capturing subpattern count = 1  Capturing subpattern count = 1
7617  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
7618  No options  No options
7619  No first char  No first char
7620  Need char = ':'  Need char = ':'
# Line 7700  Capturing subpattern count = 1 Line 7627  Capturing subpattern count = 1
7627  Max back reference = 1  Max back reference = 1
7628  Named capturing subpatterns:  Named capturing subpatterns:
7629    abc   1    abc   1
 Partial matching not supported  
7630  No options  No options
7631  No first char  No first char
7632  Need char = ':'  Need char = ':'
# Line 7708  Need char = ':' Line 7634  Need char = ':'
7634   0: abcd:   0: abcd:
7635   1: abcd   1: abcd
7636    
 /(?'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  
   
7637  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7638      adaa      adaa
7639   0: adaa   0: adaa
# Line 7748  No match Line 7660  No match
7660      bddd      bddd
7661  No match  No match
7662    
 /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x  
     abd  
  0: abd  
  1: a  
     ce  
  0: ce  
   
7663  /(?(<bc))/  /(?(<bc))/
7664  Failed: malformed number or name after (?( at offset 6  Failed: malformed number or name after (?( at offset 6
7665    
# Line 7785  Failed: reference to non-existent subpat Line 7690  Failed: reference to non-existent subpat
7690   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7691   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7692    
 /^(?(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>  
   
7693  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7694  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7695    
# Line 7844  No match Line 7731  No match
7731  No match  No match
7732    
7733  /^abc./mgx<any>  /^abc./mgx<any>
7734      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
7735   0: abc1   0: abc1
7736   0: abc2   0: abc2
7737   0: abc3   0: abc3
# Line 7854  No match Line 7741  No match
7741   0: abc7   0: abc7
7742    
7743  /abc.$/mgx<any>  /abc.$/mgx<any>
7744      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
7745   0: abc1   0: abc1
7746   0: abc2   0: abc2
7747   0: abc3   0: abc3
# Line 7868  No match Line 7755  No match
7755  /a/<any><crlf>  /a/<any><crlf>
7756  Failed: inconsistent NEWLINE options at offset 0  Failed: inconsistent NEWLINE options at offset 0
7757    
7758  /^a\Rb/  /^a\Rb/<bsr_unicode>
7759      a\nb      a\nb
7760   0: a\x0ab   0: a\x0ab
7761      a\rb      a\rb
# Line 7886  No match Line 7773  No match
7773      a\n\rb      a\n\rb
7774  No match  No match
7775    
7776  /^a\R*b/  /^a\R*b/<bsr_unicode>
7777      ab      ab
7778   0: ab   0: ab
7779      a\nb      a\nb
# Line 7906  No match Line 7793  No match
7793      a\n\r\x85\x0cb      a\n\r\x85\x0cb
7794   0: a\x0a\x0d\x85\x0cb   0: a\x0a\x0d\x85\x0cb
7795    
7796  /^a\R+b/  /^a\R+b/<bsr_unicode>
7797      a\nb      a\nb
7798   0: a\x0ab   0: a\x0ab
7799      a\rb      a\rb
# Line 7928  No match Line 7815  No match
7815      ab      ab
7816  No match  No match
7817    
7818  /^a\R{1,3}b/  /^a\R{1,3}b/<bsr_unicode>
7819      a\nb      a\nb
7820   0: a\x0ab   0: a\x0ab
7821      a\n\rb      a\n\rb
# Line 7950  No match Line 7837  No match
7837      a\r      a\r
7838  No match  No match
7839    
7840  /^a[\R]b/  /^a[\R]b/<bsr_unicode>
7841      aRb      aRb
7842   0: aRb   0: aRb
7843      ** Failers      ** Failers
# Line 7980  Need char = 'P' Line 7867  Need char = 'P'
7867   0: PXP   0: PXP
7868   1: P   1: P
7869    
 /(?(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  
   
7870  /(?:a(?&abc)b)*(?<abc>x)/  /(?:a(?&abc)b)*(?<abc>x)/
7871      123axbaxbaxbx456      123axbaxbaxbx456
7872   0: axbaxbaxbx   0: axbaxbaxbx
# Line 8057  No match Line 7904  No match
7904     DEFabcABCXYZ     DEFabcABCXYZ
7905  No match  No match
7906    
 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/  
     ababababbbabZXXXX  
  0: ababababbbabZ  
  1: ab  
  2: b  
   
7907  /^(a)\g-2/  /^(a)\g-2/
7908  Failed: reference to non-existent subpattern at offset 4  Failed: reference to non-existent subpattern at offset 7
7909    
7910  /^(a)\g/  /^(a)\g/
7911  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
7912    
7913  /^(a)\g{0}/  /^(a)\g{0}/
7914  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
7915    
7916  /^(a)\g{3/  /^(a)\g{3/
7917  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
7918    
7919  /^(a)\g{4a}/  /^(a)\g{4a}/
7920  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
# Line 8156  No match Line 7997  No match
7997   0+   0+
7998    
7999  /abc.$/mgx<anycrlf>  /abc.$/mgx<anycrlf>
8000      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
8001   0: abc1   0: abc1
8002   0: abc4   0: abc4
8003   0: abc5   0: abc5
# Line 8210  No match Line 8051  No match
8051  No match  No match
8052    
8053  /x(?-0)y/  /x(?-0)y/
8054  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
8055    
8056  /x(?-1)y/  /x(?-1)y/
8057  Failed: reference to non-existent subpattern at offset 5  Failed: reference to non-existent subpattern at offset 5
8058    
8059  /x(?+0)y/  /x(?+0)y/
8060  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
8061    
8062  /x(?+1)y/  /x(?+1)y/
8063  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 8139  Failed: reference to non-existent subpat
8139  /((?(-2)a))/BZ  /((?(-2)a))/BZ
8140  Failed: reference to non-existent subpattern at offset 7  Failed: reference to non-existent subpattern at offset 7
8141    
8142  /^(?(+1)X|Y)/BZ  /^(?(+1)X|Y)(.)/BZ
8143  ------------------------------------------------------------------  ------------------------------------------------------------------
8144          Bra          Bra
8145          ^          ^
# Line 8308  Failed: reference to non-existent subpat Line 8149  Failed: reference to non-existent subpat
8149          Alt          Alt
8150          Y          Y
8151          Ket          Ket
8152            CBra 1
8153            Any
8154            Ket
8155          Ket          Ket
8156          End          End
8157  ------------------------------------------------------------------  ------------------------------------------------------------------
8158      Y      Y!
8159   0: Y   0: Y!
8160     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  
8161    
8162  /(?<A>tom|bon)-\k{A}/  /(?<A>tom|bon)-\k{A}/
8163      tom-tom      tom-tom
# Line 8346  No match Line 8171  No match
8171      tom-bon      tom-bon
8172  No match  No match
8173    
 /(?<A>tom|bon)-\g{A}/  
     tom-tom  
  0: tom-tom  
  1: tom  
     bon-bon  
  0: bon-bon  
  1: bon  
   
8174  /\g{A/  /\g{A/
8175  Failed: syntax error in subpattern name (missing terminator) at offset 4  Failed: syntax error in subpattern name (missing terminator) at offset 4
8176    
# Line 8448  Failed: syntax error in subpattern name Line 8265  Failed: syntax error in subpattern name
8265   3: <unset>   3: <unset>
8266   4: x   4: x
8267    
 /(?|(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  
   
8268  /[\h]/BZ  /[\h]/BZ
8269  ------------------------------------------------------------------  ------------------------------------------------------------------
8270          Bra          Bra
# Line 8778  No match Line 8519  No match
8519  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8520   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8521    
8522  / End of testinput2 /  /[\E]AAA/
8523    Failed: missing terminating ] for character class at offset 7
8524    
8525    /[\Q\E]AAA/
8526    Failed: missing terminating ] for character class at offset 9
8527    
8528    /[^\E]AAA/
8529    Failed: missing terminating ] for character class at offset 8
8530    
8531    /[^\Q\E]AAA/
8532    Failed: missing terminating ] for character class at offset 10
8533    
8534    /[\E^]AAA/
8535    Failed: missing terminating ] for character class at offset 8
8536    
8537    /[\Q\E^]AAA/
8538    Failed: missing terminating ] for character class at offset 10
8539    
8540    /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
8541    ------------------------------------------------------------------
8542            Bra
8543            A
8544            *PRUNE
8545            B
8546            *SKIP
8547            C
8548            *THEN
8549            D
8550            *COMMIT
8551            E
8552            *FAIL
8553            F
8554            *FAIL
8555            G
8556            *FAIL
8557            H
8558            *ACCEPT
8559            I
8560            Ket
8561            End
8562    ------------------------------------------------------------------
8563    
8564    /^a+(*FAIL)/C
8565        aaaaaa
8566    --->aaaaaa
8567     +0 ^          ^
8568     +1 ^          a+
8569     +3 ^     ^    (*FAIL)
8570     +3 ^    ^     (*FAIL)
8571     +3 ^   ^      (*FAIL)
8572     +3 ^  ^       (*FAIL)
8573     +3 ^ ^        (*FAIL)
8574     +3 ^^         (*FAIL)
8575    No match
8576    
8577    /a+b?c+(*FAIL)/C
8578        aaabccc
8579    --->aaabccc
8580     +0 ^           a+
8581     +2 ^  ^        b?
8582     +4 ^   ^       c+
8583     +6 ^      ^    (*FAIL)
8584     +6 ^     ^     (*FAIL)
8585     +6 ^    ^      (*FAIL)
8586     +4 ^  ^        c+
8587     +2 ^ ^         b?
8588     +4 ^ ^         c+
8589     +2 ^^          b?
8590     +4 ^^          c+
8591     +0  ^          a+
8592     +2  ^ ^        b?
8593     +4  ^  ^       c+
8594     +6  ^     ^    (*FAIL)
8595     +6  ^    ^     (*FAIL)
8596     +6  ^   ^      (*FAIL)
8597     +4  ^ ^        c+
8598     +2  ^^         b?
8599     +4  ^^         c+
8600     +0   ^         a+
8601     +2   ^^        b?
8602     +4   ^ ^       c+
8603     +6   ^    ^    (*FAIL)
8604     +6   ^   ^     (*FAIL)
8605     +6   ^  ^      (*FAIL)
8606     +4   ^^        c+
8607    No match
8608    
8609    /a+b?(*PRUNE)c+(*FAIL)/C
8610        aaabccc
8611    --->aaabccc
8612     +0 ^           a+
8613     +2 ^  ^        b?
8614     +4 ^   ^       (*PRUNE)
8615    +12 ^   ^       c+
8616    +14 ^      ^    (*FAIL)
8617    +14 ^     ^     (*FAIL)
8618    +14 ^    ^      (*FAIL)
8619     +0  ^          a+
8620     +2  ^ ^        b?
8621     +4  ^  ^       (*PRUNE)
8622    +12  ^  ^       c+
8623    +14  ^     ^    (*FAIL)
8624    +14  ^    ^     (*FAIL)
8625    +14  ^   ^      (*FAIL)
8626     +0   ^         a+
8627     +2   ^^        b?
8628     +4   ^ ^       (*PRUNE)
8629    +12   ^ ^       c+
8630    +14   ^    ^    (*FAIL)
8631    +14   ^   ^     (*FAIL)
8632    +14   ^  ^      (*FAIL)
8633    No match
8634    
8635    /a+b?(*COMMIT)c+(*FAIL)/C
8636        aaabccc
8637    --->aaabccc
8638     +0 ^           a+
8639     +2 ^  ^        b?
8640     +4 ^   ^       (*COMMIT)
8641    +13 ^   ^       c+
8642    +15 ^      ^    (*FAIL)
8643    +15 ^     ^     (*FAIL)
8644    +15 ^    ^      (*FAIL)
8645    No match
8646    
8647    /a+b?(*SKIP)c+(*FAIL)/C
8648        aaabcccaaabccc
8649    --->aaabcccaaabccc
8650     +0 ^                  a+
8651     +2 ^  ^               b?
8652     +4 ^   ^              (*SKIP)
8653    +11 ^   ^              c+
8654    +13 ^      ^           (*FAIL)
8655    +13 ^     ^            (*FAIL)
8656    +13 ^    ^             (*FAIL)
8657     +0        ^           a+
8658     +2        ^  ^        b?
8659     +4        ^   ^       (*SKIP)
8660    +11        ^   ^       c+
8661    +13        ^      ^    (*FAIL)
8662    +13        ^     ^     (*FAIL)
8663    +13        ^    ^      (*FAIL)
8664    No match
8665    
8666    /a+b?(*THEN)c+(*FAIL)/C
8667        aaabccc
8668    --->aaabccc
8669     +0 ^           a+
8670     +2 ^  ^        b?
8671     +4 ^   ^       (*THEN)
8672    +11 ^   ^       c+
8673    +13 ^      ^    (*FAIL)
8674    +13 ^     ^     (*FAIL)
8675    +13 ^    ^      (*FAIL)
8676     +0  ^          a+
8677     +2  ^ ^        b?
8678     +4  ^  ^       (*THEN)
8679    +11  ^  ^       c+
8680    +13  ^     ^    (*FAIL)
8681    +13  ^    ^     (*FAIL)
8682    +13  ^   ^      (*FAIL)
8683     +0   ^         a+
8684     +2   ^^        b?
8685     +4   ^ ^       (*THEN)
8686    +11   ^ ^       c+
8687    +13   ^    ^    (*FAIL)
8688    +13   ^   ^     (*FAIL)
8689    +13   ^  ^      (*FAIL)
8690    No match
8691    
8692    /a(*MARK)b/
8693    Failed: (*MARK) must have an argument at offset 7
8694    
8695    /(?i:A{1,}\6666666666)/
8696    Failed: number is too big at offset 19
8697    
8698    /\g6666666666/
8699    Failed: number is too big at offset 11
8700    
8701    /[\g6666666666]/
8702    Failed: number is too big at offset 12
8703    
8704    /(?1)\c[/
8705    Failed: reference to non-existent subpattern at offset 3
8706    
8707    /.+A/<crlf>
8708        \r\nA
8709    No match
8710    
8711    /\nA/<crlf>
8712        \r\nA
8713     0: \x0aA
8714    
8715    /[\r\n]A/<crlf>
8716        \r\nA
8717     0: \x0aA
8718    
8719    /(\r|\n)A/<crlf>
8720        \r\nA
8721     0: \x0aA
8722     1: \x0a
8723    
8724    /a(*CR)b/
8725    Failed: (*VERB) not recognized at offset 5
8726    
8727    /(*CR)a.b/
8728        a\nb
8729     0: a\x0ab
8730        ** Failers
8731    No match
8732        a\rb
8733    No match
8734    
8735    /(*CR)a.b/<lf>
8736        a\nb
8737     0: a\x0ab
8738        ** Failers
8739    No match
8740        a\rb
8741    No match
8742    
8743    /(*LF)a.b/<CRLF>
8744        a\rb
8745     0: a\x0db
8746        ** Failers
8747    No match
8748        a\nb
8749    No match
8750    
8751    /(*CRLF)a.b/
8752        a\rb
8753     0: a\x0db
8754        a\nb
8755     0: a\x0ab
8756        ** Failers
8757    No match
8758        a\r\nb
8759    No match
8760    
8761    /(*ANYCRLF)a.b/<CR>
8762        ** Failers
8763    No match
8764        a\rb
8765    No match
8766        a\nb
8767    No match
8768        a\r\nb
8769    No match
8770    
8771    /(*ANY)a.b/<cr>
8772        ** Failers
8773    No match
8774        a\rb
8775    No match
8776        a\nb
8777    No match
8778        a\r\nb
8779    No match
8780        a\x85b
8781    No match
8782    
8783    /(*ANY).*/g
8784        abc\r\ndef
8785     0: abc
8786     0:
8787     0: def
8788     0:
8789    
8790    /(*ANYCRLF).*/g
8791        abc\r\ndef
8792     0: abc
8793     0:
8794     0: def
8795     0:
8796    
8797    /(*CRLF).*/g
8798        abc\r\ndef
8799     0: abc
8800     0:
8801     0: def
8802     0:
8803    
8804    /a\Rb/I<bsr_anycrlf>
8805    Capturing subpattern count = 0
8806    Options: bsr_anycrlf
8807    First char = 'a'
8808    Need char = 'b'
8809        a\rb
8810     0: a\x0db
8811        a\nb
8812     0: a\x0ab
8813        a\r\nb
8814     0: a\x0d\x0ab
8815        ** Failers
8816    No match
8817        a\x85b
8818    No match
8819        a\x0bb
8820    No match
8821    
8822    /a\Rb/I<bsr_unicode>
8823    Capturing subpattern count = 0
8824    Options: bsr_unicode
8825    First char = 'a'
8826    Need char = 'b'
8827        a\rb
8828     0: a\x0db
8829        a\nb
8830     0: a\x0ab
8831        a\r\nb
8832     0: a\x0d\x0ab
8833        a\x85b
8834     0: a\x85b
8835        a\x0bb
8836     0: a\x0bb
8837        ** Failers
8838    No match
8839        a\x85b\<bsr_anycrlf>
8840    No match
8841        a\x0bb\<bsr_anycrlf>
8842    No match
8843    
8844    /a\R?b/I<bsr_anycrlf>
8845    Capturing subpattern count = 0
8846    Options: bsr_anycrlf
8847    First char = 'a'
8848    Need char = 'b'
8849        a\rb
8850     0: a\x0db
8851        a\nb
8852     0: a\x0ab
8853        a\r\nb
8854     0: a\x0d\x0ab
8855        ** Failers
8856    No match
8857        a\x85b
8858    No match
8859        a\x0bb
8860    No match
8861    
8862    /a\R?b/I<bsr_unicode>
8863    Capturing subpattern count = 0
8864    Options: bsr_unicode
8865    First char = 'a'
8866    Need char = 'b'
8867        a\rb
8868     0: a\x0db
8869        a\nb
8870     0: a\x0ab
8871        a\r\nb
8872     0: a\x0d\x0ab
8873        a\x85b
8874     0: a\x85b
8875        a\x0bb
8876     0: a\x0bb
8877        ** Failers
8878    No match
8879        a\x85b\<bsr_anycrlf>
8880    No match
8881        a\x0bb\<bsr_anycrlf>
8882    No match
8883    
8884    /a\R{2,4}b/I<bsr_anycrlf>
8885    Capturing subpattern count = 0
8886    Options: bsr_anycrlf
8887    First char = 'a'
8888    Need char = 'b'
8889        a\r\n\nb
8890     0: a\x0d\x0a\x0ab
8891        a\n\r\rb
8892     0: a\x0a\x0d\x0db
8893        a\r\n\r\n\r\n\r\nb
8894     0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
8895        ** Failers
8896    No match
8897        a\x85\85b
8898    No match
8899        a\x0b\0bb
8900    No match
8901    
8902    /a\R{2,4}b/I<bsr_unicode>
8903    Capturing subpattern count = 0
8904    Options: bsr_unicode
8905    First char = 'a'
8906    Need char = 'b'
8907        a\r\rb
8908     0: a\x0d\x0db
8909        a\n\n\nb
8910     0: a\x0a\x0a\x0ab
8911        a\r\n\n\r\rb
8912     0: a\x0d\x0a\x0a\x0d\x0db
8913        a\x85\85b
8914    No match
8915        a\x0b\0bb
8916    No match
8917        ** Failers
8918    No match
8919        a\r\r\r\r\rb
8920    No match
8921        a\x85\85b\<bsr_anycrlf>
8922    No match
8923        a\x0b\0bb\<bsr_anycrlf>
8924    No match
8925    
8926    /(*BSR_ANYCRLF)a\Rb/I
8927    Capturing subpattern count = 0
8928    Options: bsr_anycrlf
8929    First char = 'a'
8930    Need char = 'b'
8931        a\nb
8932     0: a\x0ab
8933        a\rb
8934     0: a\x0db
8935    
8936    /(*BSR_UNICODE)a\Rb/I
8937    Capturing subpattern count = 0
8938    Options: bsr_unicode
8939    First char = 'a'
8940    Need char = 'b'
8941        a\x85b
8942     0: a\x85b
8943    
8944    /(*BSR_ANYCRLF)(*CRLF)a\Rb/I
8945    Capturing subpattern count = 0
8946    Options: bsr_anycrlf
8947    Forced newline sequence: CRLF
8948    First char = 'a'
8949    Need char = 'b'
8950        a\nb
8951     0: a\x0ab
8952        a\rb
8953     0: a\x0db
8954    
8955    /(*CRLF)(*BSR_UNICODE)a\Rb/I
8956    Capturing subpattern count = 0
8957    Options: bsr_unicode
8958    Forced newline sequence: CRLF
8959    First char = 'a'
8960    Need char = 'b'
8961        a\x85b
8962     0: a\x85b
8963    
8964    /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
8965    Capturing subpattern count = 0
8966    Options: bsr_anycrlf
8967    Forced newline sequence: CR
8968    First char = 'a'
8969    Need char = 'b'
8970    
8971    /(?<a>)(?&)/
8972    Failed: subpattern name expected at offset 9
8973    
8974    /(?<abc>)(?&a)/
8975    Failed: reference to non-existent subpattern at offset 12
8976    
8977    /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
8978    Failed: reference to non-existent subpattern at offset 32
8979    
8980    /(?+-a)/
8981    Failed: digit expected after (?+ at offset 3
8982    
8983    /(?-+a)/
8984    Failed: unrecognized character after (? or (?- at offset 3
8985    
8986    /(?(-1))/
8987    Failed: reference to non-existent subpattern at offset 6
8988    
8989    /(?(+10))/
8990    Failed: reference to non-existent subpattern at offset 7
8991    
8992    /(?(10))/
8993    Failed: reference to non-existent subpattern at offset 6
8994    
8995    /(?(+2))()()/
8996    
8997    /(?(2))()()/
8998    
8999    /\k''/
9000    Failed: subpattern name expected at offset 3
9001    
9002    /\k<>/
9003    Failed: subpattern name expected at offset 3
9004    
9005    /\k{}/
9006    Failed: subpattern name expected at offset 3
9007    
9008    /(?P=)/
9009    Failed: subpattern name expected at offset 4
9010    
9011    /(?P>)/
9012    Failed: subpattern name expected at offset 4
9013    
9014    /(?!\w)(?R)/
9015    Failed: recursive call could loop indefinitely at offset 9
9016    
9017    /(?=\w)(?R)/
9018    Failed: recursive call could loop indefinitely at offset 9
9019    
9020    /(?<!\w)(?R)/
9021    Failed: recursive call could loop indefinitely at offset 10
9022    
9023    /(?<=\w)(?R)/
9024    Failed: recursive call could loop indefinitely at offset 10
9025    
9026    /[[:foo:]]/
9027    Failed: unknown POSIX class name at offset 3
9028    
9029    /[[:1234:]]/
9030    Failed: unknown POSIX class name at offset 3
9031    
9032    /[[:f\oo:]]/
9033    Failed: unknown POSIX class name at offset 3
9034    
9035    /[[: :]]/
9036    Failed: unknown POSIX class name at offset 3
9037    
9038    /[[:...:]]/
9039    Failed: unknown POSIX class name at offset 3
9040    
9041    /[[:l\ower:]]/
9042    Failed: unknown POSIX class name at offset 3
9043    
9044    /[[:abc\:]]/
9045    Failed: unknown POSIX class name at offset 3
9046    
9047    /[abc[:x\]pqr:]]/
9048    Failed: unknown POSIX class name at offset 6
9049    
9050    /[[:a\dz:]]/
9051    Failed: unknown POSIX class name at offset 3
9052    
9053    /(^(a|b\g<-1'c))/
9054    Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
9055    
9056    /^(?+1)(?<a>x|y){0}z/
9057        xzxx
9058     0: xz
9059        yzyy
9060     0: yz
9061        ** Failers
9062    No match
9063        xxz
9064    No match
9065    
9066    /(\3)(\1)(a)/
9067        cat
9068    No match
9069    
9070    /(\3)(\1)(a)/<JS>
9071        cat
9072     0: a
9073     1:
9074     2:
9075     3: a
9076    
9077    /TA]/
9078        The ACTA] comes
9079     0: TA]
9080    
9081    /TA]/<JS>
9082    Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
9083    
9084    /(?2)[]a()b](abc)/
9085    Failed: reference to non-existent subpattern at offset 3
9086    
9087    /(?2)[^]a()b](abc)/
9088    Failed: reference to non-existent subpattern at offset 3
9089    
9090    /(?1)[]a()b](abc)/
9091        abcbabc
9092     0: abcbabc
9093     1: abc
9094        ** Failers
9095    No match
9096        abcXabc
9097    No match
9098    
9099    /(?1)[^]a()b](abc)/
9100        abcXabc
9101     0: abcXabc
9102     1: abc
9103        ** Failers
9104    No match
9105        abcbabc
9106    No match
9107    
9108    /(?2)[]a()b](abc)(xyz)/
9109        xyzbabcxyz
9110     0: xyzbabcxyz
9111     1: abc
9112     2: xyz
9113    
9114    /(?&N)[]a(?<N>)](?<M>abc)/
9115    Failed: reference to non-existent subpattern at offset 4
9116    
9117    /(?&N)[]a(?<N>)](abc)/
9118    Failed: reference to non-existent subpattern at offset 4
9119    
9120    /a[]b/
9121    Failed: missing terminating ] for character class at offset 4
9122    
9123    /a[^]b/
9124    Failed: missing terminating ] for character class at offset 5
9125    
9126    /a[]b/<JS>
9127        ** Failers
9128    No match
9129        ab
9130    No match
9131    
9132    /a[]+b/<JS>
9133        ** Failers
9134    No match
9135        ab
9136    No match
9137    
9138    /a[]*+b/<JS>
9139        ** Failers
9140    No match
9141        ab
9142    No match
9143    
9144    /a[^]b/<JS>
9145        aXb
9146     0: aXb
9147        a\nb
9148     0: a\x0ab
9149        ** Failers
9150    No match
9151        ab
9152    No match
9153    
9154    /a[^]+b/<JS>
9155        aXb
9156     0: aXb
9157        a\nX\nXb
9158     0: a\x0aX\x0aXb
9159        ** Failers
9160    No match
9161        ab
9162    No match
9163    
9164    /a(?!)+b/
9165    Failed: nothing to repeat at offset 5
9166    
9167    /a(*FAIL)+b/
9168    Failed: nothing to repeat at offset 8
9169    
9170    /(abc|pqr|123){0}[xyz]/SI
9171    Capturing subpattern count = 1
9172    No options
9173    No first char
9174    No need char
9175    Subject length lower bound = 1
9176    Starting byte set: x y z
9177    
9178    /(?(?=.*b)b|^)/CI
9179    Capturing subpattern count = 0
9180    Options:
9181    No first char
9182    No need char
9183       adc
9184    --->adc
9185     +0 ^       (?(?=.*b)b|^)
9186     +2 ^       (?=.*b)
9187     +5 ^       .*
9188     +7 ^  ^    b
9189     +7 ^ ^     b
9190     +7 ^^      b
9191     +7 ^       b
9192    +12 ^       )
9193    +13 ^
9194     0:
9195       abc
9196    --->abc
9197     +0 ^       (?(?=.*b)b|^)
9198     +2 ^       (?=.*b)
9199     +5 ^       .*
9200     +7 ^  ^    b
9201     +7 ^ ^     b
9202     +7 ^^      b
9203     +8 ^ ^     )
9204     +9 ^       b
9205     +0  ^      (?(?=.*b)b|^)
9206     +2  ^      (?=.*b)
9207     +5  ^      .*
9208     +7  ^ ^    b
9209     +7  ^^     b
9210     +7  ^      b
9211     +8  ^^     )
9212     +9  ^      b
9213    +10  ^^     |
9214    +13  ^^
9215     0: b
9216    
9217    /(?(?=b).*b|^d)/I
9218    Capturing subpattern count = 0
9219    No options
9220    No first char
9221    No need char
9222    
9223    /(?(?=.*b).*b|^d)/I
9224    Capturing subpattern count = 0
9225    No options
9226    First char at start or follows newline
9227    No need char
9228    
9229    /a?|b?/P
9230        abc
9231     0: a
9232        ** Failers
9233     0:
9234        ddd\N
9235    No match: POSIX code 17: match failed
9236    
9237    /xyz/C
9238      xyz
9239    --->xyz
9240     +0 ^       x
9241     +1 ^^      y
9242     +2 ^ ^     z
9243     +3 ^  ^
9244     0: xyz
9245      abcxyz
9246    --->abcxyz
9247     +0    ^       x
9248     +1    ^^      y
9249     +2    ^ ^     z
9250     +3    ^  ^
9251     0: xyz
9252      abcxyz\Y
9253    --->abcxyz
9254     +0 ^          x
9255     +0  ^         x
9256     +0   ^        x
9257     +0    ^       x
9258     +1    ^^      y
9259     +2    ^ ^     z
9260     +3    ^  ^
9261     0: xyz
9262      ** Failers
9263    No match
9264      abc
9265    No match
9266      abc\Y
9267    --->abc
9268     +0 ^       x
9269     +0  ^      x
9270     +0   ^     x
9271     +0    ^    x
9272    No match
9273      abcxypqr
9274    No match
9275      abcxypqr\Y
9276    --->abcxypqr
9277     +0 ^            x
9278     +0  ^           x
9279     +0   ^          x
9280     +0    ^         x
9281     +1    ^^        y
9282     +2    ^ ^       z
9283     +0     ^        x
9284     +0      ^       x
9285     +0       ^      x
9286     +0        ^     x
9287     +0         ^    x
9288    No match
9289    
9290    /(*NO_START_OPT)xyz/C
9291      abcxyz
9292    --->abcxyz
9293    +15 ^          x
9294    +15  ^         x
9295    +15   ^        x
9296    +15    ^       x
9297    +16    ^^      y
9298    +17    ^ ^     z
9299    +18    ^  ^
9300     0: xyz
9301    
9302    /xyz/CY
9303      abcxyz
9304    --->abcxyz
9305     +0 ^          x
9306     +0  ^         x
9307     +0   ^        x
9308     +0    ^       x
9309     +1    ^^      y
9310     +2    ^ ^     z
9311     +3    ^  ^
9312     0: xyz
9313    
9314    /^"((?(?=[a])[^"])|b)*"$/C
9315        "ab"
9316    --->"ab"
9317     +0 ^        ^
9318     +1 ^        "
9319     +2 ^^       ((?(?=[a])[^"])|b)*
9320     +3 ^^       (?(?=[a])[^"])
9321     +5 ^^       (?=[a])
9322     +8 ^^       [a]
9323    +11 ^ ^      )
9324    +12 ^^       [^"]
9325    +16 ^ ^      )
9326    +17 ^ ^      |
9327     +3 ^ ^      (?(?=[a])[^"])
9328     +5 ^ ^      (?=[a])
9329     +8 ^ ^      [a]
9330    +21 ^ ^      "
9331    +18 ^ ^      b
9332    +19 ^  ^     )
9333     +3 ^  ^     (?(?=[a])[^"])
9334     +5 ^  ^     (?=[a])
9335     +8 ^  ^     [a]
9336    +21 ^  ^     "
9337    +22 ^   ^    $
9338    +23 ^   ^
9339     0: "ab"
9340     1:
9341    
9342    /^"((?(?=[a])[^"])|b)*"$/
9343        "ab"
9344     0: "ab"
9345     1:
9346    
9347    /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9348    Failed: reference to non-existent subpattern at offset 5
9349    
9350    /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9351        XYabcdY
9352     0: XYabcdY
9353     1: a
9354     2: b
9355     3: c
9356     4: d
9357     5: Y
9358    
9359    /Xa{2,4}b/
9360        X\P
9361    Partial match: X
9362        Xa\P
9363    Partial match: Xa
9364        Xaa\P
9365    Partial match: Xaa
9366        Xaaa\P
9367    Partial match: Xaaa
9368        Xaaaa\P
9369    Partial match: Xaaaa
9370    
9371    /Xa{2,4}?b/
9372        X\P
9373    Partial match: X
9374        Xa\P
9375    Partial match: Xa
9376        Xaa\P
9377    Partial match: Xaa
9378        Xaaa\P
9379    Partial match: Xaaa
9380        Xaaaa\P
9381    Partial match: Xaaaa
9382    
9383    /Xa{2,4}+b/
9384        X\P
9385    Partial match: X
9386        Xa\P
9387    Partial match: Xa
9388        Xaa\P
9389    Partial match: Xaa
9390        Xaaa\P
9391    Partial match: Xaaa
9392        Xaaaa\P
9393    Partial match: Xaaaa
9394    
9395    /X\d{2,4}b/
9396        X\P
9397    Partial match: X
9398        X3\P
9399    Partial match: X3
9400        X33\P
9401    Partial match: X33
9402        X333\P
9403    Partial match: X333
9404        X3333\P
9405    Partial match: X3333
9406    
9407    /X\d{2,4}?b/
9408        X\P
9409    Partial match: X
9410        X3\P
9411    Partial match: X3
9412        X33\P
9413    Partial match: X33
9414        X333\P
9415    Partial match: X333
9416        X3333\P
9417    Partial match: X3333
9418    
9419    /X\d{2,4}+b/
9420        X\P
9421    Partial match: X
9422        X3\P
9423    Partial match: X3
9424        X33\P
9425    Partial match: X33
9426        X333\P
9427    Partial match: X333
9428        X3333\P
9429    Partial match: X3333
9430    
9431    /X\D{2,4}b/
9432        X\P
9433    Partial match: X
9434        Xa\P
9435    Partial match: Xa
9436        Xaa\P
9437    Partial match: Xaa
9438        Xaaa\P
9439    Partial match: Xaaa
9440        Xaaaa\P
9441    Partial match: Xaaaa
9442    
9443    /X\D{2,4}?b/
9444        X\P
9445    Partial match: X
9446        Xa\P
9447    Partial match: Xa
9448        Xaa\P
9449    Partial match: Xaa
9450        Xaaa\P
9451    Partial match: Xaaa
9452        Xaaaa\P
9453    Partial match: Xaaaa
9454    
9455    /X\D{2,4}+b/
9456        X\P
9457    Partial match: X
9458        Xa\P
9459    Partial match: Xa
9460        Xaa\P
9461    Partial match: Xaa
9462        Xaaa\P
9463    Partial match: Xaaa
9464        Xaaaa\P
9465    Partial match: Xaaaa
9466    
9467    /X[abc]{2,4}b/
9468        X\P
9469    Partial match: X
9470        Xa\P
9471    Partial match: Xa
9472        Xaa\P
9473    Partial match: Xaa
9474        Xaaa\P
9475    Partial match: Xaaa
9476        Xaaaa\P
9477    Partial match: Xaaaa
9478    
9479    /X[abc]{2,4}?b/
9480        X\P
9481    Partial match: X
9482        Xa\P
9483    Partial match: Xa
9484        Xaa\P
9485    Partial match: Xaa
9486        Xaaa\P
9487    Partial match: Xaaa
9488        Xaaaa\P
9489    Partial match: Xaaaa
9490    
9491    /X[abc]{2,4}+b/
9492        X\P
9493    Partial match: X
9494        Xa\P
9495    Partial match: Xa
9496        Xaa\P
9497    Partial match: Xaa
9498        Xaaa\P
9499    Partial match: Xaaa
9500        Xaaaa\P
9501    Partial match: Xaaaa
9502    
9503    /X[^a]{2,4}b/
9504        X\P
9505    Partial match: X
9506        Xz\P
9507    Partial match: Xz
9508        Xzz\P
9509    Partial match: Xzz
9510        Xzzz\P
9511    Partial match: Xzzz
9512        Xzzzz\P
9513    Partial match: Xzzzz
9514    
9515    /X[^a]{2,4}?b/
9516        X\P
9517    Partial match: X
9518        Xz\P
9519    Partial match: Xz
9520        Xzz\P
9521    Partial match: Xzz
9522        Xzzz\P
9523    Partial match: Xzzz
9524        Xzzzz\P
9525    Partial match: Xzzzz
9526    
9527    /X[^a]{2,4}+b/
9528        X\P
9529    Partial match: X
9530        Xz\P
9531    Partial match: Xz
9532        Xzz\P
9533    Partial match: Xzz
9534        Xzzz\P
9535    Partial match: Xzzz
9536        Xzzzz\P
9537    Partial match: Xzzzz
9538    
9539    /(Y)X\1{2,4}b/
9540        YX\P
9541    Partial match: YX
9542        YXY\P
9543    Partial match: YXY
9544        YXYY\P
9545    Partial match: YXYY
9546        YXYYY\P
9547    Partial match: YXYYY
9548        YXYYYY\P
9549    Partial match: YXYYYY
9550    
9551    /(Y)X\1{2,4}?b/
9552        YX\P
9553    Partial match: YX
9554        YXY\P
9555    Partial match: YXY
9556        YXYY\P
9557    Partial match: YXYY
9558        YXYYY\P
9559    Partial match: YXYYY
9560        YXYYYY\P
9561    Partial match: YXYYYY
9562    
9563    /(Y)X\1{2,4}+b/
9564        YX\P
9565    Partial match: YX
9566        YXY\P
9567    Partial match: YXY
9568        YXYY\P
9569    Partial match: YXYY
9570        YXYYY\P
9571    Partial match: YXYYY
9572        YXYYYY\P
9573    Partial match: YXYYYY
9574    
9575    /\++\KZ|\d+X|9+Y/
9576        ++++123999\P
9577    Partial match: 123999
9578        ++++123999Y\P
9579     0: 999Y
9580        ++++Z1234\P
9581     0: Z
9582    
9583    /Z(*F)/
9584        Z\P
9585    No match
9586        ZA\P
9587    No match
9588    
9589    /Z(?!)/
9590        Z\P
9591    No match
9592        ZA\P
9593    No match
9594    
9595    /dog(sbody)?/
9596        dogs\P
9597     0: dog
9598        dogs\P\P
9599    Partial match: dogs
9600    
9601    /dog(sbody)??/
9602        dogs\P
9603     0: dog
9604        dogs\P\P
9605     0: dog
9606    
9607    /dog|dogsbody/
9608        dogs\P
9609     0: dog
9610        dogs\P\P
9611     0: dog
9612    
9613    /dogsbody|dog/
9614        dogs\P
9615     0: dog
9616        dogs\P\P
9617    Partial match: dogs
9618    
9619    /\bthe cat\b/
9620        the cat\P
9621     0: the cat
9622        the cat\P\P
9623    Partial match: the cat
9624    
9625    /abc/
9626       abc\P
9627     0: abc
9628       abc\P\P
9629     0: abc
9630    
9631    /\w+A/P
9632       CDAAAAB
9633     0: CDAAAA
9634    
9635    /\w+A/PU
9636       CDAAAAB
9637     0: CDA
9638    
9639    /abc\K123/
9640        xyzabc123pqr
9641     0: 123
9642        xyzabc12\P
9643    Partial match: abc12
9644        xyzabc12\P\P
9645    Partial match: abc12
9646    
9647    /(?<=abc)123/
9648        xyzabc123pqr
9649     0: 123
9650        xyzabc12\P
9651    Partial match: abc12
9652        xyzabc12\P\P
9653    Partial match: abc12
9654    
9655    /\babc\b/
9656        +++abc+++
9657     0: abc
9658        +++ab\P
9659    Partial match: +ab
9660        +++ab\P\P
9661    Partial match: +ab
9662    
9663    /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9664    ------------------------------------------------------------------
9665            Bra
9666            Once
9667            Recurse
9668            Ket
9669            Once
9670            Recurse
9671            Ket
9672            Cond
9673            Cond def
9674            CBra 1
9675            <
9676            [^m]
9677            [^>]
9678            >
9679            [^<]
9680            Ket
9681            CBra 2
9682            \w*+
9683            Ket
9684            Ket
9685            Ket
9686            End
9687    ------------------------------------------------------------------
9688    
9689    /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9690    ------------------------------------------------------------------
9691            Bra
9692            Once
9693            Recurse
9694            Ket
9695            Once
9696            Recurse
9697            Ket
9698            Cond
9699            Cond def
9700            CBra 1
9701            <
9702            [\x00-/:-\xff] (neg)
9703            [^>]
9704            >
9705            [^<]
9706            Ket
9707            CBra 2
9708            \w*+
9709            Ket
9710            Ket
9711            Ket
9712            End
9713    ------------------------------------------------------------------
9714    
9715    /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9716    ------------------------------------------------------------------
9717            Bra
9718            CBra 1
9719            ab
9720            Ket
9721            CBra 2
9722            x
9723            CBra 3
9724            y
9725            Ket
9726            z
9727            CBra 4
9728            cd
9729            Close 4
9730            Close 2
9731            *ACCEPT
9732            Ket
9733            Ket
9734            pq
9735            Ket
9736            End
9737    ------------------------------------------------------------------
9738    
9739    /abc\K/+
9740        abcdef
9741     0:
9742     0+ def
9743        abcdef\N\N
9744     0:
9745     0+ def
9746        xyzabcdef\N\N
9747     0:
9748     0+ def
9749        ** Failers
9750    No match
9751        abcdef\N
9752    No match
9753        xyzabcdef\N
9754    No match
9755    
9756    /^(?:(?=abc)|abc\K)/+
9757        abcdef
9758     0:
9759     0+ abcdef
9760        abcdef\N\N
9761     0:
9762     0+ def
9763        ** Failers
9764    No match
9765        abcdef\N
9766    No match
9767    
9768    /a?b?/+
9769        xyz
9770     0:
9771     0+ xyz
9772        xyzabc
9773     0:
9774     0+ xyzabc
9775        xyzabc\N
9776     0: ab
9777     0+ c
9778        xyzabc\N\N
9779     0:
9780     0+ yzabc
9781        xyz\N\N
9782     0:
9783     0+ yz
9784        ** Failers
9785     0:
9786     0+ ** Failers
9787        xyz\N
9788    No match
9789    
9790    /^a?b?/+
9791        xyz
9792     0:
9793     0+ xyz
9794        xyzabc
9795     0:
9796     0+ xyzabc
9797        ** Failers
9798     0:
9799     0+ ** Failers
9800        xyzabc\N
9801    No match
9802        xyzabc\N\N
9803    No match
9804        xyz\N\N
9805    No match
9806        xyz\N
9807    No match
9808    
9809    /^(?<name>a|b\g<name>c)/
9810        aaaa
9811     0: a
9812     1: a
9813        bacxxx
9814     0: bac
9815     1: bac
9816        bbaccxxx
9817     0: bbacc
9818     1: bbacc
9819        bbbacccxx
9820     0: bbbaccc
9821     1: bbbaccc
9822    
9823    /^(?<name>a|b\g'name'c)/
9824        aaaa
9825     0: a
9826     1: a
9827        bacxxx
9828     0: bac
9829     1: bac
9830        bbaccxxx
9831     0: bbacc
9832     1: bbacc
9833        bbbacccxx
9834     0: bbbaccc
9835     1: bbbaccc
9836    
9837    /^(a|b\g<1>c)/
9838        aaaa
9839     0: a
9840     1: a
9841        bacxxx
9842     0: bac
9843     1: bac
9844        bbaccxxx
9845     0: bbacc
9846     1: bbacc
9847        bbbacccxx
9848     0: bbbaccc
9849     1: bbbaccc
9850    
9851    /^(a|b\g'1'c)/
9852        aaaa
9853     0: a
9854     1: a
9855        bacxxx
9856     0: bac
9857     1: bac
9858        bbaccxxx
9859     0: bbacc
9860     1: bbacc
9861        bbbacccxx
9862     0: bbbaccc
9863     1: bbbaccc
9864    
9865    /^(a|b\g'-1'c)/
9866        aaaa
9867     0: a
9868     1: a
9869        bacxxx
9870     0: bac
9871     1: bac
9872        bbaccxxx
9873     0: bbacc
9874     1: bbacc
9875        bbbacccxx
9876     0: bbbaccc
9877     1: bbbaccc
9878    
9879    /(^(a|b\g<-1>c))/
9880        aaaa
9881     0: a
9882     1: a
9883     2: a
9884        bacxxx
9885     0: bac
9886     1: bac
9887     2: bac
9888        bbaccxxx
9889     0: bbacc
9890     1: bbacc
9891     2: bbacc
9892        bbbacccxx
9893     0: bbbaccc
9894     1: bbbaccc
9895     2: bbbaccc
9896    
9897    /(?-i:\g<name>)(?i:(?<name>a))/
9898        XaaX
9899     0: aa
9900     1: a
9901        XAAX
9902     0: AA
9903     1: A
9904    
9905    /(?i:\g<name>)(?-i:(?<name>a))/
9906        XaaX
9907     0: aa
9908     1: a
9909        ** Failers
9910    No match
9911        XAAX
9912    No match
9913    
9914    /(?-i:\g<+1>)(?i:(a))/
9915        XaaX
9916     0: aa
9917     1: a
9918        XAAX
9919     0: AA
9920     1: A
9921    
9922    /(?=(?<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>\})\}))\{/
9923    
9924    /(?<n>a|b|c)\g<n>*/
9925       abc
9926     0: abc
9927     1: a
9928       accccbbb
9929     0: accccbbb
9930     1: a
9931    
9932    /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
9933        XYabcdY
9934     0: XYabcdY
9935     1: a
9936     2: b
9937     3: <unset>
9938     4: <unset>
9939     5: c
9940     6: d
9941     7: Y
9942    
9943    /(?<=b(?1)|zzz)(a)/
9944        xbaax
9945     0: a
9946     1: a
9947        xzzzax
9948     0: a
9949     1: a
9950    
9951    /(a)(?<=b\1)/