/[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 342 by ph10, Sun Apr 20 17:10:13 2008 UTC revision 609 by ph10, Wed Jun 15 18:09:23 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 113  Failed: unrecognized character after (? Line 150  Failed: unrecognized character after (?
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 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
# Line 784  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 854  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 866  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 1003  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 1021  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 1036  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 1103  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
 Partial matching not supported  
1159  Contains explicit CR or LF match  Contains explicit CR or LF match
1160  No options  No options
1161  First char = 'w'  First char = 'w'
# 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 1132  Need char = 'X' Line 1183  Need char = 'X'
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 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 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
      04 Opt  
1248          AllAny*          AllAny*
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
 Partial matching not supported  
1258  Options: anchored  Options: anchored
1259  No first char  No first char
1260  No need char  No need char
# 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 1399  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 1489  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 1565  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 1591  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'
# Line 1666  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 1698  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 1709  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 1738  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 1753  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 1772  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 1783  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 1793  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 1804  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 1821  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 1838  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 1858  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 1866  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 1942  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 2003  Contains explicit CR or LF match Line 2016  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 2249  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 2746  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 2769  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 2794  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 2807  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 2930  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 2959  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 2975  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 2983  No need char Line 2990  No need char
2990  /(x)*+/DZ  /(x)*+/DZ
2991  ------------------------------------------------------------------  ------------------------------------------------------------------
2992          Bra          Bra
2993          Once          Braposzero
2994          Brazero          CBraPos 1
         CBra 1  
2995          x          x
2996          KetRmax          KetRpos
         Ket  
2997          Ket          Ket
2998          End          End
2999  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2999  No need char Line 3004  No need char
3004    
3005  /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
3006  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3007  Options: anchored  Options: anchored
3008  No first char  No first char
3009  No need char  No need char
# Line 3013  No match Line 3017  No match
3017    
3018  /(\d++)(\w)/I  /(\d++)(\w)/I
3019  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3020  No options  No options
3021  No first char  No first char
3022  No need char  No need char
# Line 3028  No match Line 3031  No match
3031    
3032  /a++b/I  /a++b/I
3033  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3034  No options  No options
3035  First char = 'a'  First char = 'a'
3036  Need char = 'b'  Need char = 'b'
# Line 3037  Need char = 'b' Line 3039  Need char = 'b'
3039    
3040  /(a++b)/I  /(a++b)/I
3041  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3042  No options  No options
3043  First char = 'a'  First char = 'a'
3044  Need char = 'b'  Need char = 'b'
# Line 3047  Need char = 'b' Line 3048  Need char = 'b'
3048    
3049  /(a++)b/I  /(a++)b/I
3050  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3051  No options  No options
3052  First char = 'a'  First char = 'a'
3053  Need char = 'b'  Need char = 'b'
# Line 3057  Need char = 'b' Line 3057  Need char = 'b'
3057    
3058  /([^()]++|\([^()]*\))+/I  /([^()]++|\([^()]*\))+/I
3059  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3060  No options  No options
3061  No first char  No first char
3062  No need char  No need char
# Line 3067  No need char Line 3066  No need char
3066    
3067  /\(([^()]++|\([^()]+\))+\)/I  /\(([^()]++|\([^()]+\))+\)/I
3068  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3069  No options  No options
3070  First char = '('  First char = '('
3071  Need char = ')'  Need char = ')'
# Line 3130  Failed: nothing to repeat at offset 7 Line 3128  Failed: nothing to repeat at offset 7
3128          End          End
3129  ------------------------------------------------------------------  ------------------------------------------------------------------
3130  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3131  No options  No options
3132  First char = 'x'  First char = 'x'
3133  Need char = 'b'  Need char = 'b'
# Line 3147  Need char = 'b' Line 3144  Need char = 'b'
3144          End          End
3145  ------------------------------------------------------------------  ------------------------------------------------------------------
3146  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3147  Options: ungreedy  Options: ungreedy
3148  First char = 'x'  First char = 'x'
3149  Need char = 'b'  Need char = 'b'
# Line 3176  Need char = 'b' Line 3172  Need char = 'b'
3172          End          End
3173  ------------------------------------------------------------------  ------------------------------------------------------------------
3174  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3175  Options: anchored  Options: anchored
3176  No first char  No first char
3177  No need char  No need char
# Line 3192  No need char Line 3187  No need char
3187          End          End
3188  ------------------------------------------------------------------  ------------------------------------------------------------------
3189  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3190  Options: anchored  Options: anchored
3191  No first char  No first char
3192  Need char = 'b'  Need char = 'b'
# Line 3210  Need char = 'b' Line 3204  Need char = 'b'
3204          End          End
3205  ------------------------------------------------------------------  ------------------------------------------------------------------
3206  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3207  Options: anchored  Options: anchored
3208  No first char  No first char
3209  Need char = 'b'  Need char = 'b'
# Line 3225  Failed: POSIX collating elements are not Line 3218  Failed: POSIX collating elements are not
3218  Failed: POSIX named classes are supported only within a class at offset 0  Failed: POSIX named classes are supported only within a class at offset 0
3219    
3220  /\l/I  /\l/I
3221  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3222    
3223  /\L/I  /\L/I
3224  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3225    
3226  /\N{name}/I  /\N{name}/I
3227  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3228    
3229  /\u/I  /\u/I
3230  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3231    
3232  /\U/I  /\U/I
3233  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3234    
3235  /[/I  /[/I
3236  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 3286  No need char Line 3279  No need char
3279    
3280  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3281  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3282  Options: extended  Options: extended
3283  First char = '<'  First char = '<'
3284  Need char = '>'  Need char = '>'
# Line 3336  Need char = 'X' Line 3328  Need char = 'X'
3328  /(.*)\d+\1/I  /(.*)\d+\1/I
3329  Capturing subpattern count = 1  Capturing subpattern count = 1
3330  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3331  No options  No options
3332  No first char  No first char
3333  No need char  No need char
3334    
3335  /(.*)\d+/I  /(.*)\d+/I
3336  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3337  No options  No options
3338  First char at start or follows newline  First char at start or follows newline
3339  No need char  No need char
# Line 3351  No need char Line 3341  No need char
3341  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3342  Capturing subpattern count = 1  Capturing subpattern count = 1
3343  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3344  Options: dotall  Options: dotall
3345  No first char  No first char
3346  No need char  No need char
3347    
3348  /(.*)\d+/Is  /(.*)\d+/Is
3349  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3350  Options: anchored dotall  Options: anchored dotall
3351  No first char  No first char
3352  No need char  No need char
# Line 3366  No need char Line 3354  No need char
3354  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3355  Capturing subpattern count = 2  Capturing subpattern count = 2
3356  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3357  No options  No options
3358  First char at start or follows newline  First char at start or follows newline
3359  Need char = 'z'  Need char = 'z'
# Line 3374  Need char = 'z' Line 3361  Need char = 'z'
3361  /((.*))\d+\1/I  /((.*))\d+\1/I
3362  Capturing subpattern count = 2  Capturing subpattern count = 2
3363  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3364  No options  No options
3365  No first char  No first char
3366  No need char  No need char
# Line 3391  Need char = 'b' Line 3377  Need char = 'b'
3377    
3378  /(?=a).*/I  /(?=a).*/I
3379  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3380  No options  No options
3381  First char = 'a'  First char = 'a'
3382  No need char  No need char
# Line 3497  Capturing subpattern count = 0 Line 3482  Capturing subpattern count = 0
3482  No options  No options
3483  No first char  No first char
3484  No need char  No need char
3485    Subject length lower bound = 1
3486  Starting byte set: a b  Starting byte set: a b
3487    
3488  /[^a]/I  /[^a]/I
# Line 3516  Capturing subpattern count = 0 Line 3502  Capturing subpattern count = 0
3502  No options  No options
3503  No first char  No first char
3504  Need char = '6'  Need char = '6'
3505    Subject length lower bound = 4
3506  Starting byte set: 0 1 2 3 4 5 6 7 8 9  Starting byte set: 0 1 2 3 4 5 6 7 8 9
3507    
3508  /a^b/I  /a^b/I
# Line 3549  Capturing subpattern count = 0 Line 3536  Capturing subpattern count = 0
3536  Options: caseless  Options: caseless
3537  No first char  No first char
3538  No need char  No need char
3539    Subject length lower bound = 1
3540  Starting byte set: A B a b  Starting byte set: A B a b
3541    
3542  /[ab](?i)cd/IS  /[ab](?i)cd/IS
# Line 3556  Capturing subpattern count = 0 Line 3544  Capturing subpattern count = 0
3544  No options  No options
3545  No first char  No first char
3546  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3547    Subject length lower bound = 3
3548  Starting byte set: a b  Starting byte set: a b
3549    
3550  /abc(?C)def/I  /abc(?C)def/I
# Line 3713  No need char Line 3702  No need char
3702    
3703  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3704  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3705  No options  No options
3706  No first char  No first char
3707  No need char  No need char
# Line 3842  Callout 0: last capture = 1 Line 3830  Callout 0: last capture = 1
3830    
3831  /a(b+)(c*)(?C1)/I  /a(b+)(c*)(?C1)/I
3832  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3833  No options  No options
3834  First char = 'a'  First char = 'a'
3835  Need char = 'b'  Need char = 'b'
# Line 3868  No match Line 3855  No match
3855    
3856  /a(b+?)(c*?)(?C1)/I  /a(b+?)(c*?)(?C1)/I
3857  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3858  No options  No options
3859  First char = 'a'  First char = 'a'
3860  Need char = 'b'  Need char = 'b'
# Line 3909  Capturing subpattern count = 0 Line 3895  Capturing subpattern count = 0
3895  No options  No options
3896  No first char  No first char
3897  No need char  No need char
3898    Subject length lower bound = 1
3899  Starting byte set: a b  Starting byte set: a b
3900    
3901  /(?R)/I  /(?R)/I
# Line 4028  No options Line 4015  No options
4015  First char = 'a'  First char = 'a'
4016  Need char = 'b'  Need char = 'b'
4017    
 /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii  
 Capturing subpattern count = 4  
 Max back reference = 4  
 Partial matching not supported  
 Options: anchored caseless  
 No first char  
 No need char  
     1221  
  0: 1221  
  1: 1221  
  2: 1  
     Satan, oscillate my metallic sonatas!  
  0: Satan, oscillate my metallic sonatas!  
  1: <unset>  
  2: <unset>  
  3: Satan, oscillate my metallic sonatas  
  4: S  
     A man, a plan, a canal: Panama!  
  0: A man, a plan, a canal: Panama!  
  1: <unset>  
  2: <unset>  
  3: A man, a plan, a canal: Panama  
  4: A  
     Able was I ere I saw Elba.  
  0: Able was I ere I saw Elba.  
  1: <unset>  
  2: <unset>  
  3: Able was I ere I saw Elba  
  4: A  
     *** Failers  
 No match  
     The quick brown fox  
 No match  
   
4018  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
4019  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4020  Options: anchored  Options: anchored
4021  No first char  No first char
4022  No need char  No need char
# Line 4105  No match Line 4057  No match
4057    
4058  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4059  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4060  Options: extended  Options: extended
4061  First char = '<'  First char = '<'
4062  Need char = '>'  Need char = '>'
# Line 4279  Named capturing subpatterns: Line 4230  Named capturing subpatterns:
4230    one     1    one     1
4231    three   3    three   3
4232    two     2    two     2
 Partial matching not supported  
4233  Options: anchored caseless  Options: anchored caseless
4234  No first char  No first char
4235  No need char  No need char
# Line 4325  No need char Line 4275  No need char
4275    
4276  /(.*)a/Is  /(.*)a/Is
4277  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4278  Options: anchored dotall  Options: anchored dotall
4279  No first char  No first char
4280  Need char = 'a'  Need char = 'a'
# Line 4333  Need char = 'a' Line 4282  Need char = 'a'
4282  /(.*)a\1/Is  /(.*)a\1/Is
4283  Capturing subpattern count = 1  Capturing subpattern count = 1
4284  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4285  Options: dotall  Options: dotall
4286  No first char  No first char
4287  Need char = 'a'  Need char = 'a'
# Line 4341  Need char = 'a' Line 4289  Need char = 'a'
4289  /(.*)a(b)\2/Is  /(.*)a(b)\2/Is
4290  Capturing subpattern count = 2  Capturing subpattern count = 2
4291  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4292  Options: anchored dotall  Options: anchored dotall
4293  No first char  No first char
4294  Need char = 'b'  Need char = 'b'
4295    
4296  /((.*)a|(.*)b)z/Is  /((.*)a|(.*)b)z/Is
4297  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4298  Options: anchored dotall  Options: anchored dotall
4299  No first char  No first char
4300  Need char = 'z'  Need char = 'z'
# Line 4356  Need char = 'z' Line 4302  Need char = 'z'
4302  /((.*)a|(.*)b)z\1/Is  /((.*)a|(.*)b)z\1/Is
4303  Capturing subpattern count = 3  Capturing subpattern count = 3
4304  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4305  Options: dotall  Options: dotall
4306  No first char  No first char
4307  Need char = 'z'  Need char = 'z'
# Line 4364  Need char = 'z' Line 4309  Need char = 'z'
4309  /((.*)a|(.*)b)z\2/Is  /((.*)a|(.*)b)z\2/Is
4310  Capturing subpattern count = 3  Capturing subpattern count = 3
4311  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4312  Options: dotall  Options: dotall
4313  No first char  No first char
4314  Need char = 'z'  Need char = 'z'
# Line 4372  Need char = 'z' Line 4316  Need char = 'z'
4316  /((.*)a|(.*)b)z\3/Is  /((.*)a|(.*)b)z\3/Is
4317  Capturing subpattern count = 3  Capturing subpattern count = 3
4318  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4319  Options: dotall  Options: dotall
4320  No first char  No first char
4321  Need char = 'z'  Need char = 'z'
# Line 4380  Need char = 'z' Line 4323  Need char = 'z'
4323  /((.*)a|^(.*)b)z\3/Is  /((.*)a|^(.*)b)z\3/Is
4324  Capturing subpattern count = 3  Capturing subpattern count = 3
4325  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4326  Options: anchored dotall  Options: anchored dotall
4327  No first char  No first char
4328  Need char = 'z'  Need char = 'z'
4329    
4330  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4331  Capturing subpattern count = 31  Capturing subpattern count = 31
 Partial matching not supported  
4332  Options: anchored dotall  Options: anchored dotall
4333  No first char  No first char
4334  No need char  No need char
# Line 4395  No need char Line 4336  No need char
4336  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4337  Capturing subpattern count = 31  Capturing subpattern count = 31
4338  Max back reference = 31  Max back reference = 31
 Partial matching not supported  
4339  Options: dotall  Options: dotall
4340  No first char  No first char
4341  No need char  No need char
# Line 4403  No need char Line 4343  No need char
4343  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4344  Capturing subpattern count = 32  Capturing subpattern count = 32
4345  Max back reference = 32  Max back reference = 32
 Partial matching not supported  
4346  Options: dotall  Options: dotall
4347  No first char  No first char
4348  No need char  No need char
# Line 4470  Need char = 'c' Line 4409  Need char = 'c'
4409    
4410  /(a+)*zz/I  /(a+)*zz/I
4411  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4412  No options  No options
4413  No first char  No first char
4414  Need char = 'z'  Need char = 'z'
4415    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4416  Minimum match() limit = 8  Minimum match() limit = 8
4417  Minimum match() recursion limit = 6  Minimum match() recursion limit = 7
4418   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4419   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4420    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4421  Minimum match() limit = 32768  Minimum match() limit = 32768
4422  Minimum match() recursion limit = 42  Minimum match() recursion limit = 43
4423  No match  No match
4424    
4425  /(aaa(?C1)bbb|ab)/I  /(aaa(?C1)bbb|ab)/I
# Line 4607  Failed: two named subpatterns have the s Line 4545  Failed: two named subpatterns have the s
4545  Capturing subpattern count = 3  Capturing subpattern count = 3
4546  Named capturing subpatterns:  Named capturing subpatterns:
4547    elem   2    elem   2
 Partial matching not supported  
4548  No options  No options
4549  First char = '['  First char = '['
4550  Need char = ']'  Need char = ']'
# Line 4625  No match Line 4562  No match
4562  Capturing subpattern count = 3  Capturing subpattern count = 3
4563  Named capturing subpatterns:  Named capturing subpatterns:
4564    elem   2    elem   2
 Partial matching not supported  
4565  No options  No options
4566  First char = '['  First char = '['
4567  Need char = ']'  Need char = ']'
# Line 4732  No need char Line 4668  No need char
4668    
4669  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4670  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4671  Options: caseless  Options: caseless
4672  No first char  No first char
4673  Need char = 'g' (caseless)  Need char = 'g' (caseless)
# Line 4742  Need char = 'g' (caseless) Line 4677  Need char = 'g' (caseless)
4677    
4678  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4679  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4680  Options: caseless  Options: caseless
4681  No first char  No first char
4682  Need char = 'g' (caseless)  Need char = 'g' (caseless)
4683  Study returned NULL  Subject length lower bound = 8
4684    No set of starting bytes
4685       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
4686   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4687   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 4761  Study returned NULL Line 4696  Study returned NULL
4696          End          End
4697  ------------------------------------------------------------------  ------------------------------------------------------------------
4698  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4699  No options  No options
4700  No first char  No first char
4701  Need char = 'b'  Need char = 'b'
4702  Study returned NULL  Subject length lower bound = 1
4703    No set of starting bytes
4704    
4705  /(a|b)*.?c/ISDZ  /(a|b)*.?c/ISDZ
4706  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4785  Capturing subpattern count = 1 Line 4720  Capturing subpattern count = 1
4720  No options  No options
4721  No first char  No first char
4722  Need char = 'c'  Need char = 'c'
4723  Study returned NULL  Subject length lower bound = 1
4724    No set of starting bytes
4725    
4726  /abc(?C255)de(?C)f/DZ  /abc(?C255)de(?C)f/DZ
4727  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4854  No match Line 4790  No match
4790          End          End
4791  ------------------------------------------------------------------  ------------------------------------------------------------------
4792  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4793  Options:  Options:
4794  No first char  No first char
4795  Need char = 'b'  Need char = 'b'
# Line 4899  Need char = 'b' Line 4834  Need char = 'b'
4834          End          End
4835  ------------------------------------------------------------------  ------------------------------------------------------------------
4836  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4837  Options:  Options:
4838  First char = 'a'  First char = 'a'
4839  Need char = 'b'  Need char = 'b'
# Line 5337  No match Line 5271  No match
5271          End          End
5272  ------------------------------------------------------------------  ------------------------------------------------------------------
5273  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
5274  Options:  Options:
5275  No first char  No first char
5276  Need char = '3'  Need char = '3'
# Line 5369  Need char = '3' Line 5302  Need char = '3'
5302    
5303  /\b.*/I  /\b.*/I
5304  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5305  No options  No options
5306  No first char  No first char
5307  No need char  No need char
# Line 5378  No need char Line 5310  No need char
5310    
5311  /\b.*/Is  /\b.*/Is
5312  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5313  Options: dotall  Options: dotall
5314  No first char  No first char
5315  No need char  No need char
# Line 5387  No need char Line 5318  No need char
5318    
5319  /(?!.bcd).*/I  /(?!.bcd).*/I
5320  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5321  No options  No options
5322  No first char  No first char
5323  No need char  No need char
# Line 5400  No options Line 5330  No options
5330  First char = 'a'  First char = 'a'
5331  Need char = 'e'  Need char = 'e'
5332      ab\P      ab\P
5333  Partial match  Partial match: ab
5334      abc\P      abc\P
5335  Partial match  Partial match: abc
5336      abcd\P      abcd\P
5337  Partial match  Partial match: abcd
5338      abcde\P      abcde\P
5339   0: abcde   0: abcde
5340      the quick brown abc\P      the quick brown abc\P
5341  Partial match  Partial match: abc
5342      ** Failers\P      ** Failers\P
5343  No match  No match
5344      the quick brown abxyz fox\P      the quick brown abxyz fox\P
# Line 5433  Need char = '/' Line 5363  Need char = '/'
5363   1: 02   1: 02
5364   2: 05   2: 05
5365      1\P      1\P
5366  Partial match  Partial match: 1
5367      1/2\P      1/2\P
5368  Partial match  Partial match: 1/2
5369      1/2/0\P      1/2/0\P
5370  Partial match  Partial match: 1/2/0
5371      1/2/04\P      1/2/04\P
5372   0: 1/2/04   0: 1/2/04
5373   1: 1   1: 1
5374   2: 2   2: 2
5375      0\P      0\P
5376  Partial match  Partial match: 0
5377      02/\P      02/\P
5378  Partial match  Partial match: 02/
5379      02/0\P      02/0\P
5380  Partial match  Partial match: 02/0
5381      02/1\P      02/1\P
5382  Partial match  Partial match: 02/1
5383      ** Failers\P      ** Failers\P
5384  No match  No match
5385      \P      \P
# Line 5471  No match Line 5401  No match
5401    
5402  /0{0,2}ABC/I  /0{0,2}ABC/I
5403  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5404  No options  No options
5405  No first char  No first char
5406  Need char = 'C'  Need char = 'C'
5407    
5408  /\d{3,}ABC/I  /\d{3,}ABC/I
5409  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5410  No options  No options
5411  No first char  No first char
5412  Need char = 'C'  Need char = 'C'
5413    
5414  /\d*ABC/I  /\d*ABC/I
5415  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5416  No options  No options
5417  No first char  No first char
5418  Need char = 'C'  Need char = 'C'
5419    
5420  /[abc]+DE/I  /[abc]+DE/I
5421  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5422  No options  No options
5423  No first char  No first char
5424  Need char = 'E'  Need char = 'E'
# Line 5505  Need char = '3' Line 5431  Need char = '3'
5431      123\P      123\P
5432   0: 123   0: 123
5433      a\P      a\P
5434  Partial match  Partial match: a
5435      b\P      b\P
5436  Partial match  Partial match: b
5437      c\P      c\P
5438  Partial match  Partial match: c
5439      c12\P      c12\P
5440  Partial match  Partial match: c12
5441      c123\P      c123\P
5442   0: c123   0: c123
5443    
# Line 5521  Options: anchored Line 5447  Options: anchored
5447  No first char  No first char
5448  Need char = 'X'  Need char = 'X'
5449      1\P      1\P
5450  Partial match  Partial match: 1
5451      123\P      123\P
5452  Partial match  Partial match: 123
5453      123X      123X
5454   0: 123X   0: 123X
5455      1234\P      1234\P
5456  Partial match  Partial match: 1234
5457      1234X      1234X
5458   0: 1234X   0: 1234X
5459      12345\P      12345\P
5460  Partial match  Partial match: 12345
5461      12345X      12345X
5462   0: 12345X   0: 12345X
5463      *** Failers      *** Failers
# Line 5578  Capturing subpattern count = 1 Line 5504  Capturing subpattern count = 1
5504  No options  No options
5505  No first char  No first char
5506  No need char  No need char
5507    Subject length lower bound = 1
5508  Starting byte set: a b  Starting byte set: a b
5509  Compiled regex written to testsavedregex  Compiled regex written to testsavedregex
5510  Study data written to testsavedregex  Study data written to testsavedregex
# Line 5598  Capturing subpattern count = 1 Line 5525  Capturing subpattern count = 1
5525  No options  No options
5526  No first char  No first char
5527  No need char  No need char
5528    Subject length lower bound = 1
5529  Starting byte set: a b  Starting byte set: a b
5530  Compiled regex written to testsavedregex  Compiled regex written to testsavedregex
5531  Study data written to testsavedregex  Study data written to testsavedregex
# Line 5616  No match Line 5544  No match
5544  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5545  Capturing subpattern count = 3  Capturing subpattern count = 3
5546  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
5547  Options: multiline dotall  Options: multiline dotall
5548  First char = '<'  First char = '<'
5549  Need char = '>'  Need char = '>'
# Line 5669  No match Line 5596  No match
5596      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5597  No match  No match
5598    
5599  /ab.cd/IP  /ab.cd/P
5600      ab-cd      ab-cd
5601   0: ab-cd   0: ab-cd
5602      ab=cd      ab=cd
# Line 5679  No match: POSIX code 17: match failed Line 5606  No match: POSIX code 17: match failed
5606      ab\ncd      ab\ncd
5607  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
5608    
5609  /ab.cd/IPs  /ab.cd/Ps
5610      ab-cd      ab-cd
5611   0: ab-cd   0: ab-cd
5612      ab=cd      ab=cd
# Line 5923  Matched, but too many substrings Line 5850  Matched, but too many substrings
5850    
5851  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
5852  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5853  No options  No options
5854  No first char  No first char
5855  No need char  No need char
# Line 5936  No need char Line 5862  No need char
5862    
5863  /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
5864  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5865  No options  No options
5866  No first char  No first char
5867  No need char  No need char
# Line 5947  No need char Line 5872  No need char
5872    
5873  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
5874  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5875  No options  No options
5876  No first char  No first char
5877  No need char  No need char
# Line 5958  No need char Line 5882  No need char
5882    
5883  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
5884  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5885  No options  No options
5886  No first char  No first char
5887  No need char  No need char
# Line 5971  No need char Line 5894  No need char
5894    
5895  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
5896  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5897  No options  No options
5898  No first char  No first char
5899  No need char  No need char
# Line 5984  No need char Line 5906  No need char
5906      ((this))      ((this))
5907   0: ((this))   0: ((this))
5908    
5909  /a(b)c/IPN  /a(b)c/PN
5910      abc      abc
5911  Matched with REG_NOSUB  Matched with REG_NOSUB
5912    
5913  /a(?P<name>b)c/IPN  /a(?P<name>b)c/PN
5914      abc      abc
5915  Matched with REG_NOSUB  Matched with REG_NOSUB
5916    
# Line 6313  Failed: octal value is greater than \377 Line 6235  Failed: octal value is greater than \377
6235    
6236  /\s*,\s*/IS  /\s*,\s*/IS
6237  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6238  No options  No options
6239  No first char  No first char
6240  Need char = ','  Need char = ','
6241    Subject length lower bound = 1
6242  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6243      \x0b,\x0b      \x0b,\x0b
6244   0: ,   0: ,
# Line 6443  Unknown newline type at: <bad> Line 6365  Unknown newline type at: <bad>
6365    
6366  /.*/I<lf>  /.*/I<lf>
6367  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6368  Options:  Options:
6369  Forced newline sequence: LF  Forced newline sequence: LF
6370  First char at start or follows newline  First char at start or follows newline
# Line 6469  No need char Line 6390  No need char
6390    
6391  /\w+(.)(.)?def/Is  /\w+(.)(.)?def/Is
6392  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
6393  Options: dotall  Options: dotall
6394  No first char  No first char
6395  Need char = 'f'  Need char = 'f'
# Line 6486  Need char = 'f' Line 6406  Need char = 'f'
6406    
6407  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6408  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6409  No options  No options
6410  No first char  No first char
6411  No need char  No need char
6412     /* this is a C style comment */\M     /* this is a C style comment */\M
6413  Minimum match() limit = 120  Minimum match() limit = 120
6414  Minimum match() recursion limit = 6  Minimum match() recursion limit = 35
6415   0: /* this is a C style comment */   0: /* this is a C style comment */
6416   1: /* this is a C style comment */   1: /* this is a C style comment */
6417    
# Line 6621  No need char Line 6540  No need char
6540    
6541  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
6542  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6543  No options  No options
6544  No first char  No first char
6545  No need char  No need char
6546    Subject length lower bound = 1
6547  Starting byte set: C a b c d  Starting byte set: C a b c d
6548    
6549  /()[ab]xyz/IS  /()[ab]xyz/IS
# Line 6632  Capturing subpattern count = 1 Line 6551  Capturing subpattern count = 1
6551  No options  No options
6552  No first char  No first char
6553  Need char = 'z'  Need char = 'z'
6554    Subject length lower bound = 4
6555  Starting byte set: a b  Starting byte set: a b
6556    
6557  /(|)[ab]xyz/IS  /(|)[ab]xyz/IS
# Line 6639  Capturing subpattern count = 1 Line 6559  Capturing subpattern count = 1
6559  No options  No options
6560  No first char  No first char
6561  Need char = 'z'  Need char = 'z'
6562    Subject length lower bound = 4
6563  Starting byte set: a b  Starting byte set: a b
6564    
6565  /(|c)[ab]xyz/IS  /(|c)[ab]xyz/IS
# Line 6646  Capturing subpattern count = 1 Line 6567  Capturing subpattern count = 1
6567  No options  No options
6568  No first char  No first char
6569  Need char = 'z'  Need char = 'z'
6570    Subject length lower bound = 4
6571  Starting byte set: a b c  Starting byte set: a b c
6572    
6573  /(|c?)[ab]xyz/IS  /(|c?)[ab]xyz/IS
# Line 6653  Capturing subpattern count = 1 Line 6575  Capturing subpattern count = 1
6575  No options  No options
6576  No first char  No first char
6577  Need char = 'z'  Need char = 'z'
6578    Subject length lower bound = 4
6579  Starting byte set: a b c  Starting byte set: a b c
6580    
6581  /(d?|c?)[ab]xyz/IS  /(d?|c?)[ab]xyz/IS
# Line 6660  Capturing subpattern count = 1 Line 6583  Capturing subpattern count = 1
6583  No options  No options
6584  No first char  No first char
6585  Need char = 'z'  Need char = 'z'
6586    Subject length lower bound = 4
6587  Starting byte set: a b c d  Starting byte set: a b c d
6588    
6589  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
# Line 6667  Capturing subpattern count = 1 Line 6591  Capturing subpattern count = 1
6591  No options  No options
6592  No first char  No first char
6593  Need char = 'z'  Need char = 'z'
6594    Subject length lower bound = 4
6595  Starting byte set: a b c d  Starting byte set: a b c d
6596    
6597  /^a*b\d/DZ  /^a*b\d/DZ
# Line 6680  Starting byte set: a b c d Line 6605  Starting byte set: a b c d
6605          End          End
6606  ------------------------------------------------------------------  ------------------------------------------------------------------
6607  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6608  Options: anchored  Options: anchored
6609  No first char  No first char
6610  Need char = 'b'  Need char = 'b'
# Line 6696  Need char = 'b' Line 6620  Need char = 'b'
6620          End          End
6621  ------------------------------------------------------------------  ------------------------------------------------------------------
6622  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6623  Options: anchored  Options: anchored
6624  No first char  No first char
6625  Need char = 'b'  Need char = 'b'
# Line 6712  Need char = 'b' Line 6635  Need char = 'b'
6635          End          End
6636  ------------------------------------------------------------------  ------------------------------------------------------------------
6637  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6638  Options: anchored  Options: anchored
6639  No first char  No first char
6640  Need char = 'b'  Need char = 'b'
# Line 6728  Need char = 'b' Line 6650  Need char = 'b'
6650          End          End
6651  ------------------------------------------------------------------  ------------------------------------------------------------------
6652  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6653  Options: anchored  Options: anchored
6654  No first char  No first char
6655  Need char = 'A'  Need char = 'A'
# Line 6743  No match Line 6664  No match
6664  ------------------------------------------------------------------  ------------------------------------------------------------------
6665          Bra          Bra
6666          ^          ^
6667          a*       /i a*
6668       NC A       /i A
6669          \d          \d
6670          Ket          Ket
6671          End          End
6672  ------------------------------------------------------------------  ------------------------------------------------------------------
6673  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6674  Options: anchored caseless  Options: anchored caseless
6675  No first char  No first char
6676  Need char = 'A' (caseless)  Need char = 'A' (caseless)
# Line 6761  Need char = 'A' (caseless) Line 6681  Need char = 'A' (caseless)
6681    
6682  /(a*|b*)[cd]/IS  /(a*|b*)[cd]/IS
6683  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6684  No options  No options
6685  No first char  No first char
6686  No need char  No need char
6687    Subject length lower bound = 1
6688  Starting byte set: a b c d  Starting byte set: a b c d
6689    
6690  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
6691  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6692  No options  No options
6693  No first char  No first char
6694  No need char  No need char
6695    Subject length lower bound = 1
6696  Starting byte set: a b c d  Starting byte set: a b c d
6697    
6698  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
6699  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6700  No options  No options
6701  No first char  No first char
6702  No need char  No need char
6703    Subject length lower bound = 1
6704  Starting byte set: a b c d  Starting byte set: a b c d
6705    
6706  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
6707  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6708  No options  No options
6709  No first char  No first char
6710  No need char  No need char
6711    Subject length lower bound = 2
6712  Starting byte set: a b  Starting byte set: a b
6713    
6714  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
# Line 7373  Matched, but too many substrings Line 7293  Matched, but too many substrings
7293  /[^a]+a/BZi  /[^a]+a/BZi
7294  ------------------------------------------------------------------  ------------------------------------------------------------------
7295          Bra          Bra
7296          [^A]++       /i [^A]++
7297       NC a       /i a
7298          Ket          Ket
7299          End          End
7300  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7382  Matched, but too many substrings Line 7302  Matched, but too many substrings
7302  /[^a]+A/BZi  /[^a]+A/BZi
7303  ------------------------------------------------------------------  ------------------------------------------------------------------
7304          Bra          Bra
7305          [^A]++       /i [^A]++
7306       NC A       /i A
7307          Ket          Ket
7308          End          End
7309  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7594  No match Line 7514  No match
7514          ^          ^
7515          CBra 1          CBra 1
7516          Cond          Cond
7517        2 Cond ref        2 Cond nref
7518          y          y
7519          Ket          Ket
7520          [()]          [()]
# Line 7660  Named capturing subpatterns: Line 7580  Named capturing subpatterns:
7580    one     1    one     1
7581    three   3    three   3
7582    two     2    two     2
 Partial matching not supported  
7583  Options: anchored caseless  Options: anchored caseless
7584  No first char  No first char
7585  No need char  No need char
# Line 7694  No match Line 7613  No match
7613  /(?=(\w+))\1:/I  /(?=(\w+))\1:/I
7614  Capturing subpattern count = 1  Capturing subpattern count = 1
7615  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
7616  No options  No options
7617  No first char  No first char
7618  Need char = ':'  Need char = ':'
# Line 7707  Capturing subpattern count = 1 Line 7625  Capturing subpattern count = 1
7625  Max back reference = 1  Max back reference = 1
7626  Named capturing subpatterns:  Named capturing subpatterns:
7627    abc   1    abc   1
 Partial matching not supported  
7628  No options  No options
7629  No first char  No first char
7630  Need char = ':'  Need char = ':'
# Line 7715  Need char = ':' Line 7632  Need char = ':'
7632   0: abcd:   0: abcd:
7633   1: abcd   1: abcd
7634    
 /(?'abc'\w+):\k<abc>{2}/  
     a:aaxyz  
  0: a:aa  
  1: a  
     ab:ababxyz  
  0: ab:abab  
  1: ab  
     ** Failers  
 No match  
     a:axyz  
 No match  
     ab:abxyz  
 No match  
   
7635  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7636      adaa      adaa
7637   0: adaa   0: adaa
# Line 7755  No match Line 7658  No match
7658      bddd      bddd
7659  No match  No match
7660    
 /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x  
     abd  
  0: abd  
  1: a  
     ce  
  0: ce  
   
7661  /(?(<bc))/  /(?(<bc))/
7662  Failed: malformed number or name after (?( at offset 6  Failed: malformed number or name after (?( at offset 6
7663    
# Line 7792  Failed: reference to non-existent subpat Line 7688  Failed: reference to non-existent subpat
7688   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7689   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7690    
 /^(?(DEFINE) (?<A> a) (?<B> b) )  (?&A) (?&B) /x  
     abcd  
  0: ab  
  1: <unset>  
  2: <unset>  
   
 /(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT))  
   (?(DEFINE)  
   (?<NAME_PAT>[a-z]+)  
   (?<ADDRESS_PAT>\d+)  
   )/x  
     metcalfe 33  
  0: metcalfe 33  
  1: metcalfe  
  2: 33  
  3: <unset>  
  4: <unset>  
   
7691  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7692  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7693    
# Line 7851  No match Line 7729  No match
7729  No match  No match
7730    
7731  /^abc./mgx<any>  /^abc./mgx<any>
7732      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
7733   0: abc1   0: abc1
7734   0: abc2   0: abc2
7735   0: abc3   0: abc3
# Line 7861  No match Line 7739  No match
7739   0: abc7   0: abc7
7740    
7741  /abc.$/mgx<any>  /abc.$/mgx<any>
7742      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
7743   0: abc1   0: abc1
7744   0: abc2   0: abc2
7745   0: abc3   0: abc3
# Line 7987  Need char = 'P' Line 7865  Need char = 'P'
7865   0: PXP   0: PXP
7866   1: P   1: P
7867    
 /(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/  
     1.2.3.4  
  0: 1.2.3.4  
  1: <unset>  
  2: .4  
     131.111.10.206  
  0: 131.111.10.206  
  1: <unset>  
  2: .206  
     10.0.0.0  
  0: 10.0.0.0  
  1: <unset>  
  2: .0  
     ** Failers  
 No match  
     10.6  
 No match  
     455.3.4.5  
 No match  
   
 /\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/  
     1.2.3.4  
  0: 1.2.3.4  
  1: .4  
  2: <unset>  
     131.111.10.206  
  0: 131.111.10.206  
  1: .206  
  2: <unset>  
     10.0.0.0  
  0: 10.0.0.0  
  1: .0  
  2: <unset>  
     ** Failers  
 No match  
     10.6  
 No match  
     455.3.4.5  
 No match  
   
7868  /(?:a(?&abc)b)*(?<abc>x)/  /(?:a(?&abc)b)*(?<abc>x)/
7869      123axbaxbaxbx456      123axbaxbaxbx456
7870   0: axbaxbaxbx   0: axbaxbaxbx
# Line 8064  No match Line 7902  No match
7902     DEFabcABCXYZ     DEFabcABCXYZ
7903  No match  No match
7904    
 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/  
     ababababbbabZXXXX  
  0: ababababbbabZ  
  1: ab  
  2: b  
   
7905  /^(a)\g-2/  /^(a)\g-2/
7906  Failed: reference to non-existent subpattern at offset 7  Failed: reference to non-existent subpattern at offset 7
7907    
# Line 8163  No match Line 7995  No match
7995   0+   0+
7996    
7997  /abc.$/mgx<anycrlf>  /abc.$/mgx<anycrlf>
7998      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
7999   0: abc1   0: abc1
8000   0: abc4   0: abc4
8001   0: abc5   0: abc5
# Line 8325  Failed: reference to non-existent subpat Line 8157  Failed: reference to non-existent subpat
8157   0: Y!   0: Y!
8158   1: !   1: !
8159    
 /(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  
   
8160  /(?<A>tom|bon)-\k{A}/  /(?<A>tom|bon)-\k{A}/
8161      tom-tom      tom-tom
8162   0: tom-tom   0: tom-tom
# Line 8357  No match Line 8169  No match
8169      tom-bon      tom-bon
8170  No match  No match
8171    
 /(?<A>tom|bon)-\g{A}/  
     tom-tom  
  0: tom-tom  
  1: tom  
     bon-bon  
  0: bon-bon  
  1: bon  
   
8172  /\g{A/  /\g{A/
8173  Failed: syntax error in subpattern name (missing terminator) at offset 4  Failed: syntax error in subpattern name (missing terminator) at offset 4
8174    
# Line 8459  Failed: syntax error in subpattern name Line 8263  Failed: syntax error in subpattern name
8263   3: <unset>   3: <unset>
8264   4: x   4: x
8265    
 /(?|(abc)|(xyz))\1/  
     abcabc  
  0: abcabc  
  1: abc  
     xyzxyz  
  0: xyzxyz  
  1: xyz  
     ** Failers  
 No match  
     abcxyz  
 No match  
     xyzabc  
 No match  
   
 /(?|(abc)|(xyz))(?1)/  
     abcabc  
  0: abcabc  
  1: abc  
     xyzabc  
  0: xyzabc  
  1: xyz  
     ** Failers  
 No match  
     xyzxyz  
 No match  
   
 /\H\h\V\v/  
     X X\x0a  
  0: X X\x0a  
     X\x09X\x0b  
  0: X\x09X\x0b  
     ** Failers  
 No match  
     \xa0 X\x0a  
 No match  
   
 /\H*\h+\V?\v{3,4}/  
     \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a  
  0: \x09 \xa0X\x0a\x0b\x0c\x0d  
     \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a  
  0: \x09 \xa0\x0a\x0b\x0c\x0d  
     \x09\x20\xa0\x0a\x0b\x0c  
  0: \x09 \xa0\x0a\x0b\x0c  
     ** Failers  
 No match  
     \x09\x20\xa0\x0a\x0b  
 No match  
   
 /\H{3,4}/  
     XY  ABCDE  
  0: ABCD  
     XY  PQR ST  
  0: PQR  
   
 /.\h{3,4}./  
     XY  AB    PQRS  
  0: B    P  
   
 /\h*X\h?\H+Y\H?Z/  
     >XNNNYZ  
  0: XNNNYZ  
     >  X NYQZ  
  0:   X NYQZ  
     ** Failers  
 No match  
     >XYZ  
 No match  
     >  X NY Z  
 No match  
   
 /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/  
     >XY\x0aZ\x0aA\x0bNN\x0c  
  0: XY\x0aZ\x0aA\x0bNN\x0c  
     >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c  
  0: \x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c  
   
8266  /[\h]/BZ  /[\h]/BZ
8267  ------------------------------------------------------------------  ------------------------------------------------------------------
8268          Bra          Bra
# Line 8831  Failed: missing terminating ] for charac Line 8559  Failed: missing terminating ] for charac
8559          End          End
8560  ------------------------------------------------------------------  ------------------------------------------------------------------
8561    
 /^a+(*FAIL)/  
     aaaaaa  
 No match  
   
 /a+b?c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*PRUNE)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*COMMIT)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*SKIP)c+(*FAIL)/  
     aaabcccaaabccc  
 No match  
   
 /^(?:aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/  
     aaaxxxxxx  
  0: aaaxxxxxx  
     aaa++++++  
  0: aaa  
     bbbxxxxx  
  0: bbbxxxxx  
     bbb+++++  
  0: bbb  
     cccxxxx  
  0: cccxxxx  
     ccc++++  
  0: ccc  
     dddddddd  
  0: ddd  
   
 /^(aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/  
     aaaxxxxxx  
  0: aaaxxxxxx  
  1: aaaxxxxxx  
     aaa++++++  
  0: aaa  
  1: aaa  
     bbbxxxxx  
  0: bbbxxxxx  
  1: bbbxxxxx  
     bbb+++++  
  0: bbb  
  1: bbb  
     cccxxxx  
  0: cccxxxx  
  1: cccxxxx  
     ccc++++  
  0: ccc  
  1: ccc  
     dddddddd  
  0: ddd  
  1: ddd  
   
 /a+b?(*THEN)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /(A (A|B(*ACCEPT)|C) D)(E)/x  
     ABX  
  0: AB  
     AADE  
  0: AADE  
  1: AAD  
  2: A  
  3: E  
     ACDE  
  0: ACDE  
  1: ACD  
  2: C  
  3: E  
     ** Failers  
 No match  
     AD  
 No match  
   
8562  /^a+(*FAIL)/C  /^a+(*FAIL)/C
8563      aaaaaa      aaaaaa
8564  --->aaaaaa  --->aaaaaa
# Line 9040  No match Line 8687  No match
8687  +13   ^  ^      (*FAIL)  +13   ^  ^      (*FAIL)
8688  No match  No match
8689    
 /a(*PRUNE:XXX)b/  
 Failed: (*VERB) with an argument is not supported at offset 8  
   
8690  /a(*MARK)b/  /a(*MARK)b/
8691  Failed: (*VERB) not recognized at offset 7  Failed: (*MARK) must have an argument at offset 7
8692    
8693  /(?i:A{1,}\6666666666)/  /(?i:A{1,}\6666666666)/
8694  Failed: number is too big at offset 19  Failed: number is too big at offset 19
# Line 9133  No match Line 8777  No match
8777  No match  No match
8778      a\x85b      a\x85b
8779  No match  No match
8780    
8781    /(*ANY).*/g
8782        abc\r\ndef
8783     0: abc
8784     0:
8785     0: def
8786     0:
8787    
8788    /(*ANYCRLF).*/g
8789        abc\r\ndef
8790     0: abc
8791     0:
8792     0: def
8793     0:
8794    
8795    /(*CRLF).*/g
8796        abc\r\ndef
8797     0: abc
8798     0:
8799     0: def
8800     0:
8801    
8802  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
8803  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 9216  No match Line 8881  No match
8881    
8882  /a\R{2,4}b/I<bsr_anycrlf>  /a\R{2,4}b/I<bsr_anycrlf>
8883  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
8884  Options: bsr_anycrlf  Options: bsr_anycrlf
8885  First char = 'a'  First char = 'a'
8886  Need char = 'b'  Need char = 'b'
# Line 9235  No match Line 8899  No match
8899    
8900  /a\R{2,4}b/I<bsr_unicode>  /a\R{2,4}b/I<bsr_unicode>
8901  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
8902  Options: bsr_unicode  Options: bsr_unicode
8903  First char = 'a'  First char = 'a'
8904  Need char = 'b'  Need char = 'b'
# Line 9385  Failed: unknown POSIX class name at offs Line 9048  Failed: unknown POSIX class name at offs
9048  /[[:a\dz:]]/  /[[:a\dz:]]/
9049  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
9050    
9051  /^(?<name>a|b\g<name>c)/  /(^(a|b\g<-1'c))/
9052      aaaa  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
9053    
9054  /^(?<name>a|b\g'name'c)/  /^(?+1)(?<a>x|y){0}z/
9055      aaaa      xzxx
9056   0: a   0: xz
9057   1: a      yzyy
9058      bacxxx   0: yz
9059   0: bac      ** Failers
9060   1: bac  No match
9061      bbaccxxx      xxz
9062   0: bbacc  No match
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
9063    
9064  /^(a|b\g<1>c)/  /(\3)(\1)(a)/
9065      aaaa      cat
9066   0: a  No match
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
   
 /^(a|b\g'1'c)/  
     aaaa  
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
   
 /^(a|b\g'-1'c)/  
     aaaa  
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
   
 /(^(a|b\g<-1>c))/  
     aaaa  
  0: a  
  1: a  
  2: a  
     bacxxx  
  0: bac  
  1: bac  
  2: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
  2: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
  2: bbbaccc  
   
 /(^(a|b\g<-1'c))/  
 Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15  
   
 /(^(a|b\g{-1}))/  
     bacxxx  
 No match  
   
 /(?-i:\g<name>)(?i:(?<name>a))/  
     XaaX  
  0: aa  
  1: a  
     XAAX  
  0: AA  
  1: A  
   
 /(?i:\g<name>)(?-i:(?<name>a))/  
     XaaX  
  0: aa  
  1: a  
     ** Failers  
 No match  
     XAAX  
 No match  
   
 /(?-i:\g<+1>)(?i:(a))/  
     XaaX  
  0: aa  
  1: a  
     XAAX  
  0: AA  
  1: A  
   
 /(?=(?<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>\})\}))\{/  
   
 /(?<n>a|b|c)\g<n>*/  
    abc  
  0: abc  
  1: a  
    accccbbb  
  0: accccbbb  
  1: a  
   
 /^(?+1)(?<a>x|y){0}z/  
     xzxx  
  0: xz  
  1: <unset>  
     yzyy  
  0: yz  
  1: <unset>  
     ** Failers  
 No match  
     xxz  
 No match  
   
 /(\3)(\1)(a)/  
     cat  
 No match  
9067    
9068  /(\3)(\1)(a)/<JS>  /(\3)(\1)(a)/<JS>
9069      cat      cat
# Line 9631  Failed: nothing to repeat at offset 5 Line 9165  Failed: nothing to repeat at offset 5
9165  /a(*FAIL)+b/  /a(*FAIL)+b/
9166  Failed: nothing to repeat at offset 8  Failed: nothing to repeat at offset 8
9167    
9168  / End of testinput2 /  /(abc|pqr|123){0}[xyz]/SI
9169    Capturing subpattern count = 1
9170    No options
9171    No first char
9172    No need char
9173    Subject length lower bound = 1
9174    Starting byte set: x y z
9175    
9176    /(?(?=.*b)b|^)/CI
9177    Capturing subpattern count = 0
9178    Options:
9179    No first char
9180    No need char
9181       adc
9182    --->adc
9183     +0 ^       (?(?=.*b)b|^)
9184     +2 ^       (?=.*b)
9185     +5 ^       .*
9186     +7 ^  ^    b
9187     +7 ^ ^     b
9188     +7 ^^      b
9189     +7 ^       b
9190    +12 ^       )
9191    +13 ^
9192     0:
9193       abc
9194    --->abc
9195     +0 ^       (?(?=.*b)b|^)
9196     +2 ^       (?=.*b)
9197     +5 ^       .*
9198     +7 ^  ^    b
9199     +7 ^ ^     b
9200     +7 ^^      b
9201     +8 ^ ^     )
9202     +9 ^       b
9203     +0  ^      (?(?=.*b)b|^)
9204     +2  ^      (?=.*b)
9205     +5  ^      .*
9206     +7  ^ ^    b
9207     +7  ^^     b
9208     +7  ^      b
9209     +8  ^^     )
9210     +9  ^      b
9211    +10  ^^     |
9212    +13  ^^
9213     0: b
9214    
9215    /(?(?=b).*b|^d)/I
9216    Capturing subpattern count = 0
9217    No options
9218    No first char
9219    No need char
9220    
9221    /(?(?=.*b).*b|^d)/I
9222    Capturing subpattern count = 0
9223    No options
9224    First char at start or follows newline
9225    No need char
9226    
9227    /a?|b?/P
9228        abc
9229     0: a
9230        ** Failers
9231     0:
9232        ddd\N
9233    No match: POSIX code 17: match failed
9234    
9235    /xyz/C
9236      xyz
9237    --->xyz
9238     +0 ^       x
9239     +1 ^^      y
9240     +2 ^ ^     z
9241     +3 ^  ^
9242     0: xyz
9243      abcxyz
9244    --->abcxyz
9245     +0    ^       x
9246     +1    ^^      y
9247     +2    ^ ^     z
9248     +3    ^  ^
9249     0: xyz
9250      abcxyz\Y
9251    --->abcxyz
9252     +0 ^          x
9253     +0  ^         x
9254     +0   ^        x
9255     +0    ^       x
9256     +1    ^^      y
9257     +2    ^ ^     z
9258     +3    ^  ^
9259     0: xyz
9260      ** Failers
9261    No match
9262      abc
9263    No match
9264      abc\Y
9265    --->abc
9266     +0 ^       x
9267     +0  ^      x
9268     +0   ^     x
9269     +0    ^    x
9270    No match
9271      abcxypqr
9272    No match
9273      abcxypqr\Y
9274    --->abcxypqr
9275     +0 ^            x
9276     +0  ^           x
9277     +0   ^          x
9278     +0    ^         x
9279     +1    ^^        y
9280     +2    ^ ^       z
9281     +0     ^        x
9282     +0      ^       x
9283     +0       ^      x
9284     +0        ^     x
9285     +0         ^    x
9286    No match
9287    
9288    /(*NO_START_OPT)xyz/C
9289      abcxyz
9290    --->abcxyz
9291    +15 ^          x
9292    +15  ^         x
9293    +15   ^        x
9294    +15    ^       x
9295    +16    ^^      y
9296    +17    ^ ^     z
9297    +18    ^  ^
9298     0: xyz
9299    
9300    /xyz/CY
9301      abcxyz
9302    --->abcxyz
9303     +0 ^          x
9304     +0  ^         x
9305     +0   ^        x
9306     +0    ^       x
9307     +1    ^^      y
9308     +2    ^ ^     z
9309     +3    ^  ^
9310     0: xyz
9311    
9312    /^"((?(?=[a])[^"])|b)*"$/C
9313        "ab"
9314    --->"ab"
9315     +0 ^        ^
9316     +1 ^        "
9317     +2 ^^       ((?(?=[a])[^"])|b)*
9318     +3 ^^       (?(?=[a])[^"])
9319     +5 ^^       (?=[a])
9320     +8 ^^       [a]
9321    +11 ^ ^      )
9322    +12 ^^       [^"]
9323    +16 ^ ^      )
9324    +17 ^ ^      |
9325     +3 ^ ^      (?(?=[a])[^"])
9326     +5 ^ ^      (?=[a])
9327     +8 ^ ^      [a]
9328    +21 ^ ^      "
9329    +18 ^ ^      b
9330    +19 ^  ^     )
9331     +3 ^  ^     (?(?=[a])[^"])
9332     +5 ^  ^     (?=[a])
9333     +8 ^  ^     [a]
9334    +21 ^  ^     "
9335    +22 ^   ^    $
9336    +23 ^   ^
9337     0: "ab"
9338     1:
9339    
9340    /^"((?(?=[a])[^"])|b)*"$/
9341        "ab"
9342     0: "ab"
9343     1:
9344    
9345    /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9346    Failed: reference to non-existent subpattern at offset 5
9347    
9348    /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9349        XYabcdY
9350     0: XYabcdY
9351     1: a
9352     2: b
9353     3: c
9354     4: d
9355     5: Y
9356    
9357    /Xa{2,4}b/
9358        X\P
9359    Partial match: X
9360        Xa\P
9361    Partial match: Xa
9362        Xaa\P
9363    Partial match: Xaa
9364        Xaaa\P
9365    Partial match: Xaaa
9366        Xaaaa\P
9367    Partial match: Xaaaa
9368    
9369    /Xa{2,4}?b/
9370        X\P
9371    Partial match: X
9372        Xa\P
9373    Partial match: Xa
9374        Xaa\P
9375    Partial match: Xaa
9376        Xaaa\P
9377    Partial match: Xaaa
9378        Xaaaa\P
9379    Partial match: Xaaaa
9380    
9381    /Xa{2,4}+b/
9382        X\P
9383    Partial match: X
9384        Xa\P
9385    Partial match: Xa
9386        Xaa\P
9387    Partial match: Xaa
9388        Xaaa\P
9389    Partial match: Xaaa
9390        Xaaaa\P
9391    Partial match: Xaaaa
9392    
9393    /X\d{2,4}b/
9394        X\P
9395    Partial match: X
9396        X3\P
9397    Partial match: X3
9398        X33\P
9399    Partial match: X33
9400        X333\P
9401    Partial match: X333
9402        X3333\P
9403    Partial match: X3333
9404    
9405    /X\d{2,4}?b/
9406        X\P
9407    Partial match: X
9408        X3\P
9409    Partial match: X3
9410        X33\P
9411    Partial match: X33
9412        X333\P
9413    Partial match: X333
9414        X3333\P
9415    Partial match: X3333
9416    
9417    /X\d{2,4}+b/
9418        X\P
9419    Partial match: X
9420        X3\P
9421    Partial match: X3
9422        X33\P
9423    Partial match: X33
9424        X333\P
9425    Partial match: X333
9426        X3333\P
9427    Partial match: X3333
9428    
9429    /X\D{2,4}b/
9430        X\P
9431    Partial match: X
9432        Xa\P
9433    Partial match: Xa
9434        Xaa\P
9435    Partial match: Xaa
9436        Xaaa\P
9437    Partial match: Xaaa
9438        Xaaaa\P
9439    Partial match: Xaaaa
9440    
9441    /X\D{2,4}?b/
9442        X\P
9443    Partial match: X
9444        Xa\P
9445    Partial match: Xa
9446        Xaa\P
9447    Partial match: Xaa
9448        Xaaa\P
9449    Partial match: Xaaa
9450        Xaaaa\P
9451    Partial match: Xaaaa
9452    
9453    /X\D{2,4}+b/
9454        X\P
9455    Partial match: X
9456        Xa\P
9457    Partial match: Xa
9458        Xaa\P
9459    Partial match: Xaa
9460        Xaaa\P
9461    Partial match: Xaaa
9462        Xaaaa\P
9463    Partial match: Xaaaa
9464    
9465    /X[abc]{2,4}b/
9466        X\P
9467    Partial match: X
9468        Xa\P
9469    Partial match: Xa
9470        Xaa\P
9471    Partial match: Xaa
9472        Xaaa\P
9473    Partial match: Xaaa
9474        Xaaaa\P
9475    Partial match: Xaaaa
9476    
9477    /X[abc]{2,4}?b/
9478        X\P
9479    Partial match: X
9480        Xa\P
9481    Partial match: Xa
9482        Xaa\P
9483    Partial match: Xaa
9484        Xaaa\P
9485    Partial match: Xaaa
9486        Xaaaa\P
9487    Partial match: Xaaaa
9488    
9489    /X[abc]{2,4}+b/
9490        X\P
9491    Partial match: X
9492        Xa\P
9493    Partial match: Xa
9494        Xaa\P
9495    Partial match: Xaa
9496        Xaaa\P
9497    Partial match: Xaaa
9498        Xaaaa\P
9499    Partial match: Xaaaa
9500    
9501    /X[^a]{2,4}b/
9502        X\P
9503    Partial match: X
9504        Xz\P
9505    Partial match: Xz
9506        Xzz\P
9507    Partial match: Xzz
9508        Xzzz\P
9509    Partial match: Xzzz
9510        Xzzzz\P
9511    Partial match: Xzzzz
9512    
9513    /X[^a]{2,4}?b/
9514        X\P
9515    Partial match: X
9516        Xz\P
9517    Partial match: Xz
9518        Xzz\P
9519    Partial match: Xzz
9520        Xzzz\P
9521    Partial match: Xzzz
9522        Xzzzz\P
9523    Partial match: Xzzzz
9524    
9525    /X[^a]{2,4}+b/
9526        X\P
9527    Partial match: X
9528        Xz\P
9529    Partial match: Xz
9530        Xzz\P
9531    Partial match: Xzz
9532        Xzzz\P
9533    Partial match: Xzzz
9534        Xzzzz\P
9535    Partial match: Xzzzz
9536    
9537    /(Y)X\1{2,4}b/
9538        YX\P
9539    Partial match: YX
9540        YXY\P
9541    Partial match: YXY
9542        YXYY\P
9543    Partial match: YXYY
9544        YXYYY\P
9545    Partial match: YXYYY
9546        YXYYYY\P
9547    Partial match: YXYYYY
9548    
9549    /(Y)X\1{2,4}?b/
9550        YX\P
9551    Partial match: YX
9552        YXY\P
9553    Partial match: YXY
9554        YXYY\P
9555    Partial match: YXYY
9556        YXYYY\P
9557    Partial match: YXYYY
9558        YXYYYY\P
9559    Partial match: YXYYYY
9560    
9561    /(Y)X\1{2,4}+b/
9562        YX\P
9563    Partial match: YX
9564        YXY\P
9565    Partial match: YXY
9566        YXYY\P
9567    Partial match: YXYY
9568        YXYYY\P
9569    Partial match: YXYYY
9570        YXYYYY\P
9571    Partial match: YXYYYY
9572    
9573    /\++\KZ|\d+X|9+Y/
9574        ++++123999\P
9575    Partial match: 123999
9576        ++++123999Y\P
9577     0: 999Y
9578        ++++Z1234\P
9579     0: Z
9580    
9581    /Z(*F)/
9582        Z\P
9583    No match
9584        ZA\P
9585    No match
9586    
9587    /Z(?!)/
9588        Z\P
9589    No match
9590        ZA\P
9591    No match
9592    
9593    /dog(sbody)?/
9594        dogs\P
9595     0: dog
9596        dogs\P\P
9597    Partial match: dogs
9598    
9599    /dog(sbody)??/
9600        dogs\P
9601     0: dog
9602        dogs\P\P
9603     0: dog
9604    
9605    /dog|dogsbody/
9606        dogs\P
9607     0: dog
9608        dogs\P\P
9609     0: dog
9610    
9611    /dogsbody|dog/
9612        dogs\P
9613     0: dog
9614        dogs\P\P
9615    Partial match: dogs
9616    
9617    /\bthe cat\b/
9618        the cat\P
9619     0: the cat
9620        the cat\P\P
9621    Partial match: the cat
9622    
9623    /abc/
9624       abc\P
9625     0: abc
9626       abc\P\P
9627     0: abc
9628    
9629    /\w+A/P
9630       CDAAAAB
9631     0: CDAAAA
9632    
9633    /\w+A/PU
9634       CDAAAAB
9635     0: CDA
9636    
9637    /abc\K123/
9638        xyzabc123pqr
9639     0: 123
9640        xyzabc12\P
9641    Partial match: abc12
9642        xyzabc12\P\P
9643    Partial match: abc12
9644    
9645    /(?<=abc)123/
9646        xyzabc123pqr
9647     0: 123
9648        xyzabc12\P
9649    Partial match: abc12
9650        xyzabc12\P\P
9651    Partial match: abc12
9652    
9653    /\babc\b/
9654        +++abc+++
9655     0: abc
9656        +++ab\P
9657    Partial match: +ab
9658        +++ab\P\P
9659    Partial match: +ab
9660    
9661    /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9662    ------------------------------------------------------------------
9663            Bra
9664            Once
9665            Recurse
9666            Ket
9667            Once
9668            Recurse
9669            Ket
9670            Cond
9671            Cond def
9672            CBra 1
9673            <
9674            [^m]
9675            [^>]
9676            >
9677            [^<]
9678            Ket
9679            CBra 2
9680            \w*+
9681            Ket
9682            Ket
9683            Ket
9684            End
9685    ------------------------------------------------------------------
9686    
9687    /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9688    ------------------------------------------------------------------
9689            Bra
9690            Once
9691            Recurse
9692            Ket
9693            Once
9694            Recurse
9695            Ket
9696            Cond
9697            Cond def
9698            CBra 1
9699            <
9700            [\x00-/:-\xff] (neg)
9701            [^>]
9702            >
9703            [^<]
9704            Ket
9705            CBra 2
9706            \w*+
9707            Ket
9708            Ket
9709            Ket
9710            End
9711    ------------------------------------------------------------------
9712    
9713    /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9714    ------------------------------------------------------------------
9715            Bra
9716            CBra 1
9717            ab
9718            Ket
9719            CBra 2
9720            x
9721            CBra 3
9722            y
9723            Ket
9724            z
9725            CBra 4
9726            cd
9727            Close 4
9728            Close 2
9729            *ACCEPT
9730            Ket
9731            Ket
9732            pq
9733            Ket
9734            End
9735    ------------------------------------------------------------------
9736    
9737    /abc\K/+
9738        abcdef
9739     0:
9740     0+ def
9741        abcdef\N\N
9742     0:
9743     0+ def
9744        xyzabcdef\N\N
9745     0:
9746     0+ def
9747        ** Failers
9748    No match
9749        abcdef\N
9750    No match
9751        xyzabcdef\N
9752    No match
9753    
9754    /^(?:(?=abc)|abc\K)/+
9755        abcdef
9756     0:
9757     0+ abcdef
9758        abcdef\N\N
9759     0:
9760     0+ def
9761        ** Failers
9762    No match
9763        abcdef\N
9764    No match
9765    
9766    /a?b?/+
9767        xyz
9768     0:
9769     0+ xyz
9770        xyzabc
9771     0:
9772     0+ xyzabc
9773        xyzabc\N
9774     0: ab
9775     0+ c
9776        xyzabc\N\N
9777     0:
9778     0+ yzabc
9779        xyz\N\N
9780     0:
9781     0+ yz
9782        ** Failers
9783     0:
9784     0+ ** Failers
9785        xyz\N
9786    No match
9787    
9788    /^a?b?/+
9789        xyz
9790     0:
9791     0+ xyz
9792        xyzabc
9793     0:
9794     0+ xyzabc
9795        ** Failers
9796     0:
9797     0+ ** Failers
9798        xyzabc\N
9799    No match
9800        xyzabc\N\N
9801    No match
9802        xyz\N\N
9803    No match
9804        xyz\N
9805    No match
9806    
9807    /^(?<name>a|b\g<name>c)/
9808        aaaa
9809     0: a
9810     1: a
9811        bacxxx
9812     0: bac
9813     1: bac
9814        bbaccxxx
9815     0: bbacc
9816     1: bbacc
9817        bbbacccxx
9818     0: bbbaccc
9819     1: bbbaccc
9820    
9821    /^(?<name>a|b\g'name'c)/
9822        aaaa
9823     0: a
9824     1: a
9825        bacxxx
9826     0: bac
9827     1: bac
9828        bbaccxxx
9829     0: bbacc
9830     1: bbacc
9831        bbbacccxx
9832     0: bbbaccc
9833     1: bbbaccc
9834    
9835    /^(a|b\g<1>c)/
9836        aaaa
9837     0: a
9838     1: a
9839        bacxxx
9840     0: bac
9841     1: bac
9842        bbaccxxx
9843     0: bbacc
9844     1: bbacc
9845        bbbacccxx
9846     0: bbbaccc
9847     1: bbbaccc
9848    
9849    /^(a|b\g'1'c)/
9850        aaaa
9851     0: a
9852     1: a
9853        bacxxx
9854     0: bac
9855     1: bac
9856        bbaccxxx
9857     0: bbacc
9858     1: bbacc
9859        bbbacccxx
9860     0: bbbaccc
9861     1: bbbaccc
9862    
9863    /^(a|b\g'-1'c)/
9864        aaaa
9865     0: a
9866     1: a
9867        bacxxx
9868     0: bac
9869     1: bac
9870        bbaccxxx
9871     0: bbacc
9872     1: bbacc
9873        bbbacccxx
9874     0: bbbaccc
9875     1: bbbaccc
9876    
9877    /(^(a|b\g<-1>c))/
9878        aaaa
9879     0: a
9880     1: a
9881     2: a
9882        bacxxx
9883     0: bac
9884     1: bac
9885     2: bac
9886        bbaccxxx
9887     0: bbacc
9888     1: bbacc
9889     2: bbacc
9890        bbbacccxx
9891     0: bbbaccc
9892     1: bbbaccc
9893     2: bbbaccc
9894    
9895    /(?-i:\g<name>)(?i:(?<name>a))/
9896        XaaX
9897     0: aa
9898     1: a
9899        XAAX
9900     0: AA
9901     1: A
9902    
9903    /(?i:\g<name>)(?-i:(?<name>a))/
9904        XaaX
9905     0: aa
9906     1: a
9907        ** Failers
9908    No match
9909        XAAX
9910    No match
9911    
9912    /(?-i:\g<+1>)(?i:(a))/
9913        XaaX
9914     0: aa
9915     1: a
9916        XAAX
9917     0: AA
9918     1: A
9919    
9920    /(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/
9921    
9922    /(?<n>a|b|c)\g<n>*/
9923       abc
9924     0: abc
9925     1: a
9926       accccbbb
9927     0: accccbbb
9928     1: a
9929    
9930    /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
9931        XYabcdY
9932     0: XYabcdY
9933     1: a
9934     2: b
9935     3: <unset>
9936     4: <unset>
9937     5: c
9938     6: d
9939     7: Y
9940    
9941    /(?<=b(?1)|zzz)(a)/
9942        xbaax
9943     0: a
9944     1: a
9945        xzzzax
9946     0: a
9947     1: a
9948    
9949    /(a)(?<=b\1)/
9950    Failed: lookbehind assertion is not fixed length at offset 10
9951    
9952    /(a)(?<=b+(?1))/
9953    Failed: lookbehind assertion is not fixed length at offset 13
9954    
9955    /(a+)(?<=b(?1))/
9956    Failed: lookbehind assertion is not fixed length at offset 14
9957    
9958    /(a(?<=b(?1)))/
9959    Failed: lookbehind assertion is not fixed length at offset 13
9960    
9961    /(?<=b(?1))xyz/
9962    Failed: reference to non-existent subpattern at offset 8
9963    
9964    /(?<=b(?1))xyz(b+)pqrstuvew/
9965    Failed: lookbehind assertion is not fixed length at offset 26
9966    
9967    /(a|bc)\1/SI
9968    Capturing subpattern count = 1
9969    Max back reference = 1
9970    No options
9971    No first char
9972    No need char
9973    Subject length lower bound = 2
9974    Starting byte set: a b
9975    
9976    /(a|bc)\1{2,3}/SI
9977    Capturing subpattern count = 1
9978    Max back reference = 1
9979    No options
9980    No first char
9981    No need char
9982    Subject length lower bound = 3
9983    Starting byte set: a b
9984    
9985    /(a|bc)(?1)/SI
9986    Capturing subpattern count = 1
9987    No options
9988    No first char
9989    No need char
9990    Subject length lower bound = 2
9991    Starting byte set: a b
9992    
9993    /(a|b\1)(a|b\1)/SI
9994    Capturing subpattern count = 2
9995    Max back reference = 1
9996    No options
9997    No first char
9998    No need char
9999    Subject length lower bound = 2
10000    Starting byte set: a b
10001    
10002    /(a|b\1){2}/SI
10003    Capturing subpattern count = 1
10004    Max back reference = 1
10005    No options
10006    No first char
10007    No need char
10008    Subject length lower bound = 2
10009    Starting byte set: a b
10010    
10011    /(a|bbbb\1)(a|bbbb\1)/SI
10012    Capturing subpattern count = 2
10013    Max back reference = 1
10014    No options
10015    No first char
10016    No need char
10017    Subject length lower bound = 2
10018    Starting byte set: a b
10019    
10020    /(a|bbbb\1){2}/SI
10021    Capturing subpattern count = 1
10022    Max back reference = 1
10023    No options
10024    No first char
10025    No need char
10026    Subject length lower bound = 2
10027    Starting byte set: a b
10028    
10029    /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/SI
10030    Capturing subpattern count = 1
10031    Options: anchored
10032    No first char
10033    Need char = ':'
10034    Subject length lower bound = 22
10035    No set of starting bytes
10036    
10037    /  (?: [\040\t] |  \(
10038    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10039    \)  )*                          # optional leading comment
10040    (?:    (?:
10041    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10042    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10043    |
10044    " (?:                      # opening quote...
10045    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10046    |                     #    or
10047    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10048    )* "  # closing quote
10049    )                    # initial word
10050    (?:  (?: [\040\t] |  \(
10051    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10052    \)  )*  \.  (?: [\040\t] |  \(
10053    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10054    \)  )*   (?:
10055    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10056    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10057    |
10058    " (?:                      # opening quote...
10059    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10060    |                     #    or
10061    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10062    )* "  # closing quote
10063    )  )* # further okay, if led by a period
10064    (?: [\040\t] |  \(
10065    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10066    \)  )*  @  (?: [\040\t] |  \(
10067    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10068    \)  )*    (?:
10069    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10070    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10071    |   \[                         # [
10072    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10073    \]                        #           ]
10074    )                           # initial subdomain
10075    (?:                                  #
10076    (?: [\040\t] |  \(
10077    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10078    \)  )*  \.                        # if led by a period...
10079    (?: [\040\t] |  \(
10080    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10081    \)  )*   (?:
10082    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10083    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10084    |   \[                         # [
10085    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10086    \]                        #           ]
10087    )                     #   ...further okay
10088    )*
10089    # address
10090    |                     #  or
10091    (?:
10092    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10093    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10094    |
10095    " (?:                      # opening quote...
10096    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10097    |                     #    or
10098    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10099    )* "  # closing quote
10100    )             # one word, optionally followed by....
10101    (?:
10102    [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
10103    \(
10104    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10105    \)       |  # comments, or...
10106    
10107    " (?:                      # opening quote...
10108    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10109    |                     #    or
10110    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10111    )* "  # closing quote
10112    # quoted strings
10113    )*
10114    <  (?: [\040\t] |  \(
10115    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10116    \)  )*                     # leading <
10117    (?:  @  (?: [\040\t] |  \(
10118    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10119    \)  )*    (?:
10120    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10121    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10122    |   \[                         # [
10123    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10124    \]                        #           ]
10125    )                           # initial subdomain
10126    (?:                                  #
10127    (?: [\040\t] |  \(
10128    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10129    \)  )*  \.                        # if led by a period...
10130    (?: [\040\t] |  \(
10131    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10132    \)  )*   (?:
10133    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10134    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10135    |   \[                         # [
10136    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10137    \]                        #           ]
10138    )                     #   ...further okay
10139    )*
10140    
10141    (?:  (?: [\040\t] |  \(
10142    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10143    \)  )*  ,  (?: [\040\t] |  \(
10144    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10145    \)  )*  @  (?: [\040\t] |  \(
10146    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10147    \)  )*    (?:
10148    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10149    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10150    |   \[                         # [
10151    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10152    \]                        #           ]
10153    )                           # initial subdomain
10154    (?:                                  #
10155    (?: [\040\t] |  \(
10156    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10157    \)  )*  \.                        # if led by a period...
10158    (?: [\040\t] |  \(
10159    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10160    \)  )*   (?:
10161    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10162    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10163    |   \[                         # [
10164    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10165    \]                        #           ]
10166    )                     #   ...further okay
10167    )*
10168    )* # further okay, if led by comma
10169    :                                # closing colon
10170    (?: [\040\t] |  \(
10171    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10172    \)  )*  )? #       optional route
10173    (?:
10174    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10175    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10176    |
10177    " (?:                      # opening quote...
10178    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10179    |                     #    or
10180    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10181    )* "  # closing quote
10182    )                    # initial word
10183    (?:  (?: [\040\t] |  \(
10184    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10185    \)  )*  \.  (?: [\040\t] |  \(
10186    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10187    \)  )*   (?:
10188    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10189    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10190    |
10191    " (?:                      # opening quote...
10192    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10193    |                     #    or
10194    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10195    )* "  # closing quote
10196    )  )* # further okay, if led by a period
10197    (?: [\040\t] |  \(
10198    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10199    \)  )*  @  (?: [\040\t] |  \(
10200    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10201    \)  )*    (?:
10202    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10203    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10204    |   \[                         # [
10205    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10206    \]                        #           ]
10207    )                           # initial subdomain
10208    (?:                                  #
10209    (?: [\040\t] |  \(
10210    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10211    \)  )*  \.                        # if led by a period...
10212    (?: [\040\t] |  \(
10213    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10214    \)  )*   (?:
10215    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10216    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10217    |   \[                         # [
10218    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10219    \]                        #           ]
10220    )                     #   ...further okay
10221    )*
10222    #       address spec
10223    (?: [\040\t] |  \(
10224    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10225    \)  )*  > #                  trailing >
10226    # name and address
10227    )  (?: [\040\t] |  \(
10228    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10229    \)  )*                       # optional trailing comment
10230    /xSI
10231    Capturing subpattern count = 0
10232    Contains explicit CR or LF match
10233    Options: extended
10234    No first char
10235    No need char
10236    Subject length lower bound = 3
10237    Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8
10238      9 = ? A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ^ _ ` a b c d e
10239      f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f
10240    
10241    /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS
10242    Capturing subpattern count = 11
10243    Options: caseless dotall
10244    First char = '<'
10245    Need char = '>'
10246    Subject length lower bound = 47
10247    No set of starting bytes
10248    
10249    "(?>.*/)foo"SI
10250    Capturing subpattern count = 0
10251    No options
10252    First char at start or follows newline
10253    Need char = 'o'
10254    Subject length lower bound = 4
10255    No set of starting bytes
10256    
10257    /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10258    Capturing subpattern count = 0
10259    Options: extended
10260    No first char
10261    Need char = '-'
10262    Subject length lower bound = 8
10263    No set of starting bytes
10264    
10265    /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10266    Capturing subpattern count = 1
10267    Options: caseless
10268    No first char
10269    No need char
10270    Subject length lower bound = 1
10271    Starting byte set: A B C a b c
10272    
10273    /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10274    Capturing subpattern count = 0
10275    No options
10276    No first char
10277    Need char = 'b'
10278    Subject length lower bound = 41
10279    Starting byte set: c d
10280    
10281    /<a[\s]+href[\s]*=[\s]*          # find <a href=
10282     ([\"\'])?                       # find single or double quote
10283     (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
10284                                     # quote, otherwise match up to next space
10285    /isxSI
10286    Capturing subpattern count = 3
10287    Max back reference = 1
10288    Options: caseless extended dotall
10289    First char = '<'
10290    Need char = '='
10291    Subject length lower bound = 9
10292    No set of starting bytes
10293    
10294    /^(?!:)                       # colon disallowed at start
10295      (?:                         # start of item
10296        (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
10297        (?(1)0 | () ) )           # if null previously matched, fail; else null
10298        :                         # followed by colon
10299      ){1,7}                      # end item; 1-7 of them required
10300      [0-9a-f]{1,4} $             # final hex number at end of string
10301      (?(1)|.)                    # check that there was an empty component
10302      /xiIS
10303    Capturing subpattern count = 1
10304    Options: anchored caseless extended
10305    No first char
10306    Need char = ':'
10307    Subject length lower bound = 2
10308    No set of starting bytes
10309    
10310    /(?|(?<a>A)|(?<a>B))/I
10311    Capturing subpattern count = 1
10312    Named capturing subpatterns:
10313      a   1
10314      a   1
10315    No options
10316    No first char
10317    No need char
10318        AB\Ca
10319     0: A
10320     1: A
10321      C A (1) a
10322        BA\Ca
10323     0: B
10324     1: B
10325      C B (1) a
10326    
10327    /(?|(?<a>A)|(?<b>B))/
10328    Failed: different names for subpatterns of the same number are not allowed at offset 15
10329    
10330    /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10331        b(?<quote> (?<apostrophe>')|(?<realquote>")) )
10332        (?('quote')[a-z]+|[0-9]+)/JIx
10333    Capturing subpattern count = 6
10334    Named capturing subpatterns:
10335      apostrophe   2
10336      apostrophe   5
10337      quote        1
10338      quote        4
10339      realquote    3
10340      realquote    6
10341    Options: extended dupnames
10342    No first char
10343    No need char
10344        a"aaaaa
10345     0: a"aaaaa
10346     1: "
10347     2: <unset>
10348     3: "
10349        b"aaaaa
10350     0: b"aaaaa
10351     1: <unset>
10352     2: <unset>
10353     3: <unset>
10354     4: "
10355     5: <unset>
10356     6: "
10357        ** Failers
10358    No match
10359        b"11111
10360    No match
10361        a"11111
10362    No match
10363    
10364    /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10365    ------------------------------------------------------------------
10366            Bra
10367            ^
10368            Bra
10369            CBra 1
10370            a
10371            Ket
10372            CBra 2
10373            b
10374            Ket
10375            CBra 3
10376            c
10377            Ket
10378            CBra 4
10379            d
10380            Ket
10381            Alt
10382            CBra 1
10383            e
10384            Ket
10385            Ket
10386            Cond
10387          4 Cond nref
10388            X
10389            Alt
10390            Y
10391            Ket
10392            Ket
10393            End
10394    ------------------------------------------------------------------
10395    Capturing subpattern count = 4
10396    Named capturing subpatterns:
10397      D   4
10398      D   1
10399    Options: anchored extended dupnames
10400    No first char
10401    No need char
10402        abcdX
10403     0: abcdX
10404     1: a
10405     2: b
10406     3: c
10407     4: d
10408        eX
10409     0: eX
10410     1: e
10411        ** Failers
10412    No match
10413        abcdY
10414    No match
10415        ey
10416    No match
10417    
10418    /(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
10419    ------------------------------------------------------------------
10420            Bra
10421            CBra 1
10422            a
10423            Ket
10424            CBra 2
10425            b
10426            Ket
10427            CBra 3
10428            c
10429            Ket
10430            CBra 4
10431            d
10432            Cond
10433            Cond nrecurse 1
10434            $
10435            Alt
10436            Once
10437            Recurse
10438            Ket
10439            Ket
10440            Ket
10441            Ket
10442            End
10443    ------------------------------------------------------------------
10444    Capturing subpattern count = 4
10445    Named capturing subpatterns:
10446      A   1
10447      A   4
10448    Options: extended dupnames
10449    First char = 'a'
10450    Need char = 'd'
10451        abcdd
10452     0: abcdd
10453     1: a
10454     2: b
10455     3: c
10456     4: dd
10457        ** Failers
10458    No match
10459        abcdde
10460    No match
10461    
10462    /abcd*/
10463        xxxxabcd\P
10464     0: abcd
10465        xxxxabcd\P\P
10466    Partial match: abcd
10467    
10468    /abcd*/i
10469        xxxxabcd\P
10470     0: abcd
10471        xxxxabcd\P\P
10472    Partial match: abcd
10473        XXXXABCD\P
10474     0: ABCD
10475        XXXXABCD\P\P
10476    Partial match: ABCD
10477    
10478    /abc\d*/
10479        xxxxabc1\P
10480     0: abc1
10481        xxxxabc1\P\P
10482    Partial match: abc1
10483    
10484    /(a)bc\1*/
10485        xxxxabca\P
10486     0: abca
10487     1: a
10488        xxxxabca\P\P
10489    Partial match: abca
10490    
10491    /abc[de]*/
10492        xxxxabcde\P
10493     0: abcde
10494        xxxxabcde\P\P
10495    Partial match: abcde
10496    
10497    /-- This is not in the Perl >= 5.10 test because Perl seems currently to be
10498        broken and not behaving as specified in that it *does* bumpalong after
10499        hitting (*COMMIT). --/
10500    
10501    /(?1)(A(*COMMIT)|B)D/
10502        ABD
10503     0: ABD
10504     1: B
10505        XABD
10506     0: ABD
10507     1: B
10508        BAD
10509     0: BAD
10510     1: A
10511        ABXABD
10512     0: ABD
10513     1: B
10514        ** Failers
10515    No match
10516        ABX
10517    No match
10518        BAXBAD
10519    No match
10520    
10521    /(\3)(\1)(a)/<JS>
10522        cat
10523     0: a
10524     1:
10525     2:
10526     3: a
10527    
10528    /(\3)(\1)(a)/SI<JS>
10529    Capturing subpattern count = 3
10530    Max back reference = 3
10531    Options:
10532    No first char
10533    Need char = 'a'
10534    Subject length lower bound = 1
10535    No set of starting bytes
10536        cat
10537     0: a
10538     1:
10539     2:
10540     3: a
10541    
10542    /(\3)(\1)(a)/SI
10543    Capturing subpattern count = 3
10544    Max back reference = 3
10545    No options