/[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 411 by ph10, Fri Apr 10 15:40:21 2009 UTC revision 598 by ph10, Sat May 7 15:37:31 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 612  Capturing subpattern count = 1 Line 643  Capturing subpattern count = 1
643  No options  No options
644  First char = 'b' (caseless)  First char = 'b' (caseless)
645  No need char  No need char
646  Study returned NULL  Subject length lower bound = 1
647    No set of starting bytes
648    
649  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
650  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
651  No options  No options
652  No first char  No first char
653  No need char  No need char
654    Subject length lower bound = 1
655  Starting byte set: C a b c d  Starting byte set: C a b c d
656    
657  /a$/I  /a$/I
# Line 668  Need char = 'c' Line 700  Need char = 'c'
700    
701  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
702  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
703  Options: anchored  Options: anchored
704  No first char  No first char
705  No need char  No need char
# Line 685  Capturing subpattern count = 0 Line 716  Capturing subpattern count = 0
716  No options  No options
717  No first char  No first char
718  No need char  No need char
719    Subject length lower bound = 1
720  Starting byte set: a b  Starting byte set: a b
721    
722  /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
# Line 692  Capturing subpattern count = 1 Line 724  Capturing subpattern count = 1
724  No options  No options
725  No first char  No first char
726  Need char = 'a'  Need char = 'a'
727    Subject length lower bound = 5
728  Starting byte set: a o  Starting byte set: a o
729    
730  /(?!alphabet)[ab]/IS  /(?!alphabet)[ab]/IS
# Line 699  Capturing subpattern count = 0 Line 732  Capturing subpattern count = 0
732  No options  No options
733  No first char  No first char
734  No need char  No need char
735    Subject length lower bound = 1
736  Starting byte set: a b  Starting byte set: a b
737    
738  /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
# Line 784  No need char Line 818  No need char
818    
819  /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
820  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
821  No options  No options
822  First char at start or follows newline  First char at start or follows newline
823  No need char  No need char
# Line 854  No match Line 887  No match
887      a      a
888  No match  No match
889    
890  /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
891  Capturing subpattern count = 0  Capturing subpattern count = 0
892  No options  No options
893  First char = 'T'  First char = 'T'
# Line 866  Max back reference = 1 Line 899  Max back reference = 1
899  Options: anchored  Options: anchored
900  No first char  No first char
901  No need char  No need char
902        aaaa
903    No match
904      aaaaaa      aaaaaa
905   0: aaaaaa  No match
906   1: aa  
907    /Perl does not fail these two for the final subjects. Neither did PCRE until/
908    /release 8.01. The problem is in backtracking into a subpattern that contains/
909    No match
910    /a recursive reference to itself. PCRE has now made these into atomic patterns./
911    No match
912    
913    /^(xa|=?\1a){2}$/
914        xa=xaa
915     0: xa=xaa
916     1: =xaa
917        ** Failers
918    No match
919        xa=xaaa
920    No match
921    
922    /^(xa|=?\1a)+$/
923        xa=xaa
924     0: xa=xaa
925     1: =xaa
926        ** Failers
927    No match
928        xa=xaaa
929    No match
930    
931  /These are syntax tests from Perl 5.005/I  /These are syntax tests from Perl 5.005/I
932  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 1003  copy substring 5 failed -7 Line 1061  copy substring 5 failed -7
1061    
1062  /(.{20})/I  /(.{20})/I
1063  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1064  No options  No options
1065  No first char  No first char
1066  No need char  No need char
# Line 1021  No need char Line 1078  No need char
1078    
1079  /(.{15})/I  /(.{15})/I
1080  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1081  No options  No options
1082  No first char  No first char
1083  No need char  No need char
# Line 1036  No need char Line 1092  No need char
1092    
1093  /(.{16})/I  /(.{16})/I
1094  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1095  No options  No options
1096  No first char  No first char
1097  No need char  No need char
# Line 1103  No need char Line 1158  No need char
1158  )((?:[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]+
1159  )?)?)?)?)?)?)?)?)?otherword/I  )?)?)?)?)?)?)?)?)?otherword/I
1160  Capturing subpattern count = 8  Capturing subpattern count = 8
 Partial matching not supported  
1161  Contains explicit CR or LF match  Contains explicit CR or LF match
1162  No options  No options
1163  First char = 'w'  First char = 'w'
# Line 1118  Need char = 'd' Line 1172  Need char = 'd'
1172          End          End
1173  ------------------------------------------------------------------  ------------------------------------------------------------------
1174  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1175  No options  No options
1176  First char at start or follows newline  First char at start or follows newline
1177  Need char = 'X'  Need char = 'X'
# Line 1132  Need char = 'X' Line 1185  Need char = 'X'
1185          End          End
1186  ------------------------------------------------------------------  ------------------------------------------------------------------
1187  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1188  Options: anchored dotall  Options: anchored dotall
1189  No first char  No first char
1190  Need char = 'X'  Need char = 'X'
# Line 1151  Need char = 'X' Line 1203  Need char = 'X'
1203          End          End
1204  ------------------------------------------------------------------  ------------------------------------------------------------------
1205  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1206  No options  No options
1207  First char at start or follows newline  First char at start or follows newline
1208  No need char  No need char
# Line 1170  No need char Line 1221  No need char
1221          End          End
1222  ------------------------------------------------------------------  ------------------------------------------------------------------
1223  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1224  Options: anchored dotall  Options: anchored dotall
1225  No first char  No first char
1226  No need char  No need char
# Line 1189  No need char Line 1239  No need char
1239          End          End
1240  ------------------------------------------------------------------  ------------------------------------------------------------------
1241  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1242  Options: anchored dotall  Options: anchored dotall
1243  No first char  No first char
1244  No need char  No need char
# Line 1211  No need char Line 1260  No need char
1260          End          End
1261  ------------------------------------------------------------------  ------------------------------------------------------------------
1262  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1263  Options: anchored  Options: anchored
1264  No first char  No first char
1265  No need char  No need char
# Line 1296  No need char Line 1344  No need char
1344    
1345  /.*iss/Ig+  /.*iss/Ig+
1346  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1347  No options  No options
1348  First char at start or follows newline  First char at start or follows newline
1349  Need char = 's'  Need char = 's'
# Line 1399  Need char = 'c' Line 1446  Need char = 'c'
1446    
1447  /a*/I  /a*/I
1448  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1449  No options  No options
1450  No first char  No first char
1451  No need char  No need char
1452    
1453  /a+/I  /a+/I
1454  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1455  No options  No options
1456  First char = 'a'  First char = 'a'
1457  No need char  No need char
1458    
1459  /(baa|a+)/I  /(baa|a+)/I
1460  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1461  No options  No options
1462  No first char  No first char
1463  Need char = 'a'  Need char = 'a'
1464    
1465  /a{0,3}/I  /a{0,3}/I
1466  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1467  No options  No options
1468  No first char  No first char
1469  No need char  No need char
1470    
1471  /baa{3,}/I  /baa{3,}/I
1472  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1473  No options  No options
1474  First char = 'b'  First char = 'b'
1475  Need char = 'a'  Need char = 'a'
1476    
1477  /"([^\\"]+|\\.)*"/I  /"([^\\"]+|\\.)*"/I
1478  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1479  No options  No options
1480  First char = '"'  First char = '"'
1481  Need char = '"'  Need char = '"'
# Line 1489  Need char = 'b' Line 1530  Need char = 'b'
1530    
1531  /abc*/I  /abc*/I
1532  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1533  No options  No options
1534  First char = 'a'  First char = 'a'
1535  Need char = 'b'  Need char = 'b'
1536    
1537  /ab.c*/I  /ab.c*/I
1538  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1539  No options  No options
1540  First char = 'a'  First char = 'a'
1541  Need char = 'b'  Need char = 'b'
1542    
1543  /a.c*/I  /a.c*/I
1544  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1545  No options  No options
1546  First char = 'a'  First char = 'a'
1547  No need char  No need char
1548    
1549  /.c*/I  /.c*/I
1550  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1551  No options  No options
1552  No first char  No first char
1553  No need char  No need char
1554    
1555  /ac*/I  /ac*/I
1556  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1557  No options  No options
1558  First char = 'a'  First char = 'a'
1559  No need char  No need char
1560    
1561  /(a.c*|b.c*)/I  /(a.c*|b.c*)/I
1562  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1563  No options  No options
1564  No first char  No first char
1565  No need char  No need char
1566    
1567  /a.c*|aba/I  /a.c*|aba/I
1568  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1569  No options  No options
1570  First char = 'a'  First char = 'a'
1571  No need char  No need char
1572    
1573  /.+a/I  /.+a/I
1574  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1575  No options  No options
1576  No first char  No first char
1577  Need char = 'a'  Need char = 'a'
1578    
1579  /(?=abcda)a.*/I  /(?=abcda)a.*/I
1580  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1581  No options  No options
1582  First char = 'a'  First char = 'a'
1583  Need char = 'a'  Need char = 'a'
1584    
1585  /(?=a)a.*/I  /(?=a)a.*/I
1586  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1587  No options  No options
1588  First char = 'a'  First char = 'a'
1589  No need char  No need char
# Line 1565  No need char Line 1596  No need char
1596    
1597  /a\d*/I  /a\d*/I
1598  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1599  No options  No options
1600  First char = 'a'  First char = 'a'
1601  No need char  No need char
1602    
1603  /ab\d*/I  /ab\d*/I
1604  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1605  No options  No options
1606  First char = 'a'  First char = 'a'
1607  Need char = 'b'  Need char = 'b'
# Line 1591  Need char = 'd' Line 1620  Need char = 'd'
1620    
1621  /ab\d+/I  /ab\d+/I
1622  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1623  No options  No options
1624  First char = 'a'  First char = 'a'
1625  Need char = 'b'  Need char = 'b'
# Line 1666  No need char Line 1694  No need char
1694      \Nabc      \Nabc
1695  No match  No match
1696    
1697  /a*(b+)(z)(z)/IP  /a*(b+)(z)(z)/P
1698      aaaabbbbzzzz      aaaabbbbzzzz
1699   0: aaaabbbbzz   0: aaaabbbbzz
1700   1: bbbb   1: bbbb
# Line 1698  Capturing subpattern count = 0 Line 1726  Capturing subpattern count = 0
1726  Options: anchored  Options: anchored
1727  No first char  No first char
1728  Need char = 'd'  Need char = 'd'
1729  Study returned NULL  Subject length lower bound = 4
1730    No set of starting bytes
1731    
1732  /\(             # ( at start  /\(             # ( at start
1733    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1709  Study returned NULL Line 1738  Study returned NULL
1738    \)            # Closing )    \)            # Closing )
1739    /Ix    /Ix
1740  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1741  Options: extended  Options: extended
1742  First char = '('  First char = '('
1743  Need char = ')'  Need char = ')'
# Line 1738  No match Line 1766  No match
1766    
1767  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1768  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1769  Options: extended  Options: extended
1770  First char = '('  First char = '('
1771  Need char = ')'  Need char = ')'
# Line 1753  Need char = ')' Line 1780  Need char = ')'
1780    
1781  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1782  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1783  Options: extended  Options: extended
1784  First char = '('  First char = '('
1785  Need char = ')'  Need char = ')'
# Line 1772  No match Line 1798  No match
1798    
1799  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1800  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1801  Options: extended  Options: extended
1802  First char = '('  First char = '('
1803  Need char = ')'  Need char = ')'
# Line 1783  Need char = ')' Line 1808  Need char = ')'
1808    
1809  /\(  ( (?>[^()]+) | (?R) )* \) /Ix  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1810  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1811  Options: extended  Options: extended
1812  First char = '('  First char = '('
1813  Need char = ')'  Need char = ')'
# Line 1793  Need char = ')' Line 1817  Need char = ')'
1817    
1818  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1819  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
1820  Options: extended  Options: extended
1821  First char = '('  First char = '('
1822  Need char = ')'  Need char = ')'
# Line 1804  Need char = ')' Line 1827  Need char = ')'
1827    
1828  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1829  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1830  Options: extended  Options: extended
1831  First char = '('  First char = '('
1832  Need char = ')'  Need char = ')'
# Line 1821  Need char = ')' Line 1843  Need char = ')'
1843    
1844  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1845  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1846  Options: extended  Options: extended
1847  First char = '('  First char = '('
1848  Need char = ')'  Need char = ')'
# Line 1838  Need char = ')' Line 1859  Need char = ')'
1859    
1860  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1861  Capturing subpattern count = 11  Capturing subpattern count = 11
 Partial matching not supported  
1862  Options: extended  Options: extended
1863  First char = '('  First char = '('
1864  Need char = ')'  Need char = ')'
# Line 1858  Need char = ')' Line 1878  Need char = ')'
1878    
1879  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1880  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1881  Options: extended  Options: extended
1882  First char = '('  First char = '('
1883  Need char = ')'  Need char = ')'
# Line 1866  Need char = ')' Line 1885  Need char = ')'
1885   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1886   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1887   2: 123   2: 123
  3: <unset>  
1888    
1889  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1890  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1891  Options: extended  Options: extended
1892  First char = '('  First char = '('
1893  Need char = ')'  Need char = ')'
# Line 1942  Capturing subpattern count = 0 Line 1959  Capturing subpattern count = 0
1959  No options  No options
1960  No first char  No first char
1961  No need char  No need char
1962    Subject length lower bound = 1
1963  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
1964    _ 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
1965    
# Line 2003  Contains explicit CR or LF match Line 2021  Contains explicit CR or LF match
2021  No options  No options
2022  No first char  No first char
2023  No need char  No need char
2024    Subject length lower bound = 1
2025  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2026    
2027  /^[[:cntrl:]]/DZ  /^[[:cntrl:]]/DZ
# Line 2249  Need char = 'd' Line 2268  Need char = 'd'
2268  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2269  Capturing subpattern count = 271  Capturing subpattern count = 271
2270  Max back reference = 270  Max back reference = 270
 Partial matching not supported  
2271  No options  No options
2272  No first char  No first char
2273  No need char  No need char
# Line 2930  Need char = 'c' Line 2948  Need char = 'c'
2948          End          End
2949  ------------------------------------------------------------------  ------------------------------------------------------------------
2950  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2951  No options  No options
2952  No first char  No first char
2953  No need char  No need char
# Line 2959  No need char Line 2976  No need char
2976          End          End
2977  ------------------------------------------------------------------  ------------------------------------------------------------------
2978  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2979  No options  No options
2980  First char = 'x'  First char = 'x'
2981  No need char  No need char
# Line 2975  No need char Line 2991  No need char
2991          End          End
2992  ------------------------------------------------------------------  ------------------------------------------------------------------
2993  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2994  No options  No options
2995  First char = 'x'  First char = 'x'
2996  No need char  No need char
# Line 2999  No need char Line 3014  No need char
3014    
3015  /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
3016  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3017  Options: anchored  Options: anchored
3018  No first char  No first char
3019  No need char  No need char
# Line 3013  No match Line 3027  No match
3027    
3028  /(\d++)(\w)/I  /(\d++)(\w)/I
3029  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3030  No options  No options
3031  No first char  No first char
3032  No need char  No need char
# Line 3028  No match Line 3041  No match
3041    
3042  /a++b/I  /a++b/I
3043  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3044  No options  No options
3045  First char = 'a'  First char = 'a'
3046  Need char = 'b'  Need char = 'b'
# Line 3037  Need char = 'b' Line 3049  Need char = 'b'
3049    
3050  /(a++b)/I  /(a++b)/I
3051  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3052  No options  No options
3053  First char = 'a'  First char = 'a'
3054  Need char = 'b'  Need char = 'b'
# Line 3047  Need char = 'b' Line 3058  Need char = 'b'
3058    
3059  /(a++)b/I  /(a++)b/I
3060  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3061  No options  No options
3062  First char = 'a'  First char = 'a'
3063  Need char = 'b'  Need char = 'b'
# Line 3057  Need char = 'b' Line 3067  Need char = 'b'
3067    
3068  /([^()]++|\([^()]*\))+/I  /([^()]++|\([^()]*\))+/I
3069  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3070  No options  No options
3071  No first char  No first char
3072  No need char  No need char
# Line 3067  No need char Line 3076  No need char
3076    
3077  /\(([^()]++|\([^()]+\))+\)/I  /\(([^()]++|\([^()]+\))+\)/I
3078  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3079  No options  No options
3080  First char = '('  First char = '('
3081  Need char = ')'  Need char = ')'
# Line 3130  Failed: nothing to repeat at offset 7 Line 3138  Failed: nothing to repeat at offset 7
3138          End          End
3139  ------------------------------------------------------------------  ------------------------------------------------------------------
3140  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3141  No options  No options
3142  First char = 'x'  First char = 'x'
3143  Need char = 'b'  Need char = 'b'
# Line 3147  Need char = 'b' Line 3154  Need char = 'b'
3154          End          End
3155  ------------------------------------------------------------------  ------------------------------------------------------------------
3156  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3157  Options: ungreedy  Options: ungreedy
3158  First char = 'x'  First char = 'x'
3159  Need char = 'b'  Need char = 'b'
# Line 3176  Need char = 'b' Line 3182  Need char = 'b'
3182          End          End
3183  ------------------------------------------------------------------  ------------------------------------------------------------------
3184  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3185  Options: anchored  Options: anchored
3186  No first char  No first char
3187  No need char  No need char
# Line 3192  No need char Line 3197  No need char
3197          End          End
3198  ------------------------------------------------------------------  ------------------------------------------------------------------
3199  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3200  Options: anchored  Options: anchored
3201  No first char  No first char
3202  Need char = 'b'  Need char = 'b'
# Line 3210  Need char = 'b' Line 3214  Need char = 'b'
3214          End          End
3215  ------------------------------------------------------------------  ------------------------------------------------------------------
3216  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3217  Options: anchored  Options: anchored
3218  No first char  No first char
3219  Need char = 'b'  Need char = 'b'
# Line 3225  Failed: POSIX collating elements are not Line 3228  Failed: POSIX collating elements are not
3228  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
3229    
3230  /\l/I  /\l/I
3231  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
3232    
3233  /\L/I  /\L/I
3234  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
3235    
3236  /\N{name}/I  /\N{name}/I
3237  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
3238    
3239  /\u/I  /\u/I
3240  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
3241    
3242  /\U/I  /\U/I
3243  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
3244    
3245  /[/I  /[/I
3246  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 3286  No need char Line 3289  No need char
3289    
3290  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3291  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3292  Options: extended  Options: extended
3293  First char = '<'  First char = '<'
3294  Need char = '>'  Need char = '>'
# Line 3336  Need char = 'X' Line 3338  Need char = 'X'
3338  /(.*)\d+\1/I  /(.*)\d+\1/I
3339  Capturing subpattern count = 1  Capturing subpattern count = 1
3340  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3341  No options  No options
3342  No first char  No first char
3343  No need char  No need char
3344    
3345  /(.*)\d+/I  /(.*)\d+/I
3346  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3347  No options  No options
3348  First char at start or follows newline  First char at start or follows newline
3349  No need char  No need char
# Line 3351  No need char Line 3351  No need char
3351  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3352  Capturing subpattern count = 1  Capturing subpattern count = 1
3353  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3354  Options: dotall  Options: dotall
3355  No first char  No first char
3356  No need char  No need char
3357    
3358  /(.*)\d+/Is  /(.*)\d+/Is
3359  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3360  Options: anchored dotall  Options: anchored dotall
3361  No first char  No first char
3362  No need char  No need char
# Line 3366  No need char Line 3364  No need char
3364  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3365  Capturing subpattern count = 2  Capturing subpattern count = 2
3366  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3367  No options  No options
3368  First char at start or follows newline  First char at start or follows newline
3369  Need char = 'z'  Need char = 'z'
# Line 3374  Need char = 'z' Line 3371  Need char = 'z'
3371  /((.*))\d+\1/I  /((.*))\d+\1/I
3372  Capturing subpattern count = 2  Capturing subpattern count = 2
3373  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3374  No options  No options
3375  No first char  No first char
3376  No need char  No need char
# Line 3391  Need char = 'b' Line 3387  Need char = 'b'
3387    
3388  /(?=a).*/I  /(?=a).*/I
3389  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3390  No options  No options
3391  First char = 'a'  First char = 'a'
3392  No need char  No need char
# Line 3497  Capturing subpattern count = 0 Line 3492  Capturing subpattern count = 0
3492  No options  No options
3493  No first char  No first char
3494  No need char  No need char
3495    Subject length lower bound = 1
3496  Starting byte set: a b  Starting byte set: a b
3497    
3498  /[^a]/I  /[^a]/I
# Line 3516  Capturing subpattern count = 0 Line 3512  Capturing subpattern count = 0
3512  No options  No options
3513  No first char  No first char
3514  Need char = '6'  Need char = '6'
3515    Subject length lower bound = 4
3516  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
3517    
3518  /a^b/I  /a^b/I
# Line 3549  Capturing subpattern count = 0 Line 3546  Capturing subpattern count = 0
3546  Options: caseless  Options: caseless
3547  No first char  No first char
3548  No need char  No need char
3549    Subject length lower bound = 1
3550  Starting byte set: A B a b  Starting byte set: A B a b
3551    
3552  /[ab](?i)cd/IS  /[ab](?i)cd/IS
# Line 3556  Capturing subpattern count = 0 Line 3554  Capturing subpattern count = 0
3554  No options  No options
3555  No first char  No first char
3556  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3557    Subject length lower bound = 3
3558  Starting byte set: a b  Starting byte set: a b
3559    
3560  /abc(?C)def/I  /abc(?C)def/I
# Line 3713  No need char Line 3712  No need char
3712    
3713  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3714  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3715  No options  No options
3716  No first char  No first char
3717  No need char  No need char
# Line 3842  Callout 0: last capture = 1 Line 3840  Callout 0: last capture = 1
3840    
3841  /a(b+)(c*)(?C1)/I  /a(b+)(c*)(?C1)/I
3842  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3843  No options  No options
3844  First char = 'a'  First char = 'a'
3845  Need char = 'b'  Need char = 'b'
# Line 3868  No match Line 3865  No match
3865    
3866  /a(b+?)(c*?)(?C1)/I  /a(b+?)(c*?)(?C1)/I
3867  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3868  No options  No options
3869  First char = 'a'  First char = 'a'
3870  Need char = 'b'  Need char = 'b'
# Line 3909  Capturing subpattern count = 0 Line 3905  Capturing subpattern count = 0
3905  No options  No options
3906  No first char  No first char
3907  No need char  No need char
3908    Subject length lower bound = 1
3909  Starting byte set: a b  Starting byte set: a b
3910    
3911  /(?R)/I  /(?R)/I
# Line 4028  No options Line 4025  No options
4025  First char = 'a'  First char = 'a'
4026  Need char = 'b'  Need char = 'b'
4027    
 /^\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  
   
4028  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
4029  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4030  Options: anchored  Options: anchored
4031  No first char  No first char
4032  No need char  No need char
# Line 4105  No match Line 4067  No match
4067    
4068  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4069  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4070  Options: extended  Options: extended
4071  First char = '<'  First char = '<'
4072  Need char = '>'  Need char = '>'
# Line 4279  Named capturing subpatterns: Line 4240  Named capturing subpatterns:
4240    one     1    one     1
4241    three   3    three   3
4242    two     2    two     2
 Partial matching not supported  
4243  Options: anchored caseless  Options: anchored caseless
4244  No first char  No first char
4245  No need char  No need char
# Line 4325  No need char Line 4285  No need char
4285    
4286  /(.*)a/Is  /(.*)a/Is
4287  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4288  Options: anchored dotall  Options: anchored dotall
4289  No first char  No first char
4290  Need char = 'a'  Need char = 'a'
# Line 4333  Need char = 'a' Line 4292  Need char = 'a'
4292  /(.*)a\1/Is  /(.*)a\1/Is
4293  Capturing subpattern count = 1  Capturing subpattern count = 1
4294  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4295  Options: dotall  Options: dotall
4296  No first char  No first char
4297  Need char = 'a'  Need char = 'a'
# Line 4341  Need char = 'a' Line 4299  Need char = 'a'
4299  /(.*)a(b)\2/Is  /(.*)a(b)\2/Is
4300  Capturing subpattern count = 2  Capturing subpattern count = 2
4301  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4302  Options: anchored dotall  Options: anchored dotall
4303  No first char  No first char
4304  Need char = 'b'  Need char = 'b'
4305    
4306  /((.*)a|(.*)b)z/Is  /((.*)a|(.*)b)z/Is
4307  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4308  Options: anchored dotall  Options: anchored dotall
4309  No first char  No first char
4310  Need char = 'z'  Need char = 'z'
# Line 4356  Need char = 'z' Line 4312  Need char = 'z'
4312  /((.*)a|(.*)b)z\1/Is  /((.*)a|(.*)b)z\1/Is
4313  Capturing subpattern count = 3  Capturing subpattern count = 3
4314  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4315  Options: dotall  Options: dotall
4316  No first char  No first char
4317  Need char = 'z'  Need char = 'z'
# Line 4364  Need char = 'z' Line 4319  Need char = 'z'
4319  /((.*)a|(.*)b)z\2/Is  /((.*)a|(.*)b)z\2/Is
4320  Capturing subpattern count = 3  Capturing subpattern count = 3
4321  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4322  Options: dotall  Options: dotall
4323  No first char  No first char
4324  Need char = 'z'  Need char = 'z'
# Line 4372  Need char = 'z' Line 4326  Need char = 'z'
4326  /((.*)a|(.*)b)z\3/Is  /((.*)a|(.*)b)z\3/Is
4327  Capturing subpattern count = 3  Capturing subpattern count = 3
4328  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4329  Options: dotall  Options: dotall
4330  No first char  No first char
4331  Need char = 'z'  Need char = 'z'
# Line 4380  Need char = 'z' Line 4333  Need char = 'z'
4333  /((.*)a|^(.*)b)z\3/Is  /((.*)a|^(.*)b)z\3/Is
4334  Capturing subpattern count = 3  Capturing subpattern count = 3
4335  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4336  Options: anchored dotall  Options: anchored dotall
4337  No first char  No first char
4338  Need char = 'z'  Need char = 'z'
4339    
4340  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4341  Capturing subpattern count = 31  Capturing subpattern count = 31
 Partial matching not supported  
4342  Options: anchored dotall  Options: anchored dotall
4343  No first char  No first char
4344  No need char  No need char
# Line 4395  No need char Line 4346  No need char
4346  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4347  Capturing subpattern count = 31  Capturing subpattern count = 31
4348  Max back reference = 31  Max back reference = 31
 Partial matching not supported  
4349  Options: dotall  Options: dotall
4350  No first char  No first char
4351  No need char  No need char
# Line 4403  No need char Line 4353  No need char
4353  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4354  Capturing subpattern count = 32  Capturing subpattern count = 32
4355  Max back reference = 32  Max back reference = 32
 Partial matching not supported  
4356  Options: dotall  Options: dotall
4357  No first char  No first char
4358  No need char  No need char
# Line 4470  Need char = 'c' Line 4419  Need char = 'c'
4419    
4420  /(a+)*zz/I  /(a+)*zz/I
4421  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4422  No options  No options
4423  No first char  No first char
4424  Need char = 'z'  Need char = 'z'
# Line 4607  Failed: two named subpatterns have the s Line 4555  Failed: two named subpatterns have the s
4555  Capturing subpattern count = 3  Capturing subpattern count = 3
4556  Named capturing subpatterns:  Named capturing subpatterns:
4557    elem   2    elem   2
 Partial matching not supported  
4558  No options  No options
4559  First char = '['  First char = '['
4560  Need char = ']'  Need char = ']'
# Line 4625  No match Line 4572  No match
4572  Capturing subpattern count = 3  Capturing subpattern count = 3
4573  Named capturing subpatterns:  Named capturing subpatterns:
4574    elem   2    elem   2
 Partial matching not supported  
4575  No options  No options
4576  First char = '['  First char = '['
4577  Need char = ']'  Need char = ']'
# Line 4732  No need char Line 4678  No need char
4678    
4679  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4680  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4681  Options: caseless  Options: caseless
4682  No first char  No first char
4683  Need char = 'g' (caseless)  Need char = 'g' (caseless)
# Line 4742  Need char = 'g' (caseless) Line 4687  Need char = 'g' (caseless)
4687    
4688  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4689  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4690  Options: caseless  Options: caseless
4691  No first char  No first char
4692  Need char = 'g' (caseless)  Need char = 'g' (caseless)
4693  Study returned NULL  Subject length lower bound = 8
4694    No set of starting bytes
4695       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
4696   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4697   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 4761  Study returned NULL Line 4706  Study returned NULL
4706          End          End
4707  ------------------------------------------------------------------  ------------------------------------------------------------------
4708  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4709  No options  No options
4710  No first char  No first char
4711  Need char = 'b'  Need char = 'b'
4712  Study returned NULL  Subject length lower bound = 1
4713    No set of starting bytes
4714    
4715  /(a|b)*.?c/ISDZ  /(a|b)*.?c/ISDZ
4716  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4785  Capturing subpattern count = 1 Line 4730  Capturing subpattern count = 1
4730  No options  No options
4731  No first char  No first char
4732  Need char = 'c'  Need char = 'c'
4733  Study returned NULL  Subject length lower bound = 1
4734    No set of starting bytes
4735    
4736  /abc(?C255)de(?C)f/DZ  /abc(?C255)de(?C)f/DZ
4737  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4854  No match Line 4800  No match
4800          End          End
4801  ------------------------------------------------------------------  ------------------------------------------------------------------
4802  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4803  Options:  Options:
4804  No first char  No first char
4805  Need char = 'b'  Need char = 'b'
# Line 4899  Need char = 'b' Line 4844  Need char = 'b'
4844          End          End
4845  ------------------------------------------------------------------  ------------------------------------------------------------------
4846  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4847  Options:  Options:
4848  First char = 'a'  First char = 'a'
4849  Need char = 'b'  Need char = 'b'
# Line 5337  No match Line 5281  No match
5281          End          End
5282  ------------------------------------------------------------------  ------------------------------------------------------------------
5283  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
5284  Options:  Options:
5285  No first char  No first char
5286  Need char = '3'  Need char = '3'
# Line 5369  Need char = '3' Line 5312  Need char = '3'
5312    
5313  /\b.*/I  /\b.*/I
5314  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5315  No options  No options
5316  No first char  No first char
5317  No need char  No need char
# Line 5378  No need char Line 5320  No need char
5320    
5321  /\b.*/Is  /\b.*/Is
5322  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5323  Options: dotall  Options: dotall
5324  No first char  No first char
5325  No need char  No need char
# Line 5387  No need char Line 5328  No need char
5328    
5329  /(?!.bcd).*/I  /(?!.bcd).*/I
5330  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5331  No options  No options
5332  No first char  No first char
5333  No need char  No need char
# Line 5400  No options Line 5340  No options
5340  First char = 'a'  First char = 'a'
5341  Need char = 'e'  Need char = 'e'
5342      ab\P      ab\P
5343  Partial match  Partial match: ab
5344      abc\P      abc\P
5345  Partial match  Partial match: abc
5346      abcd\P      abcd\P
5347  Partial match  Partial match: abcd
5348      abcde\P      abcde\P
5349   0: abcde   0: abcde
5350      the quick brown abc\P      the quick brown abc\P
5351  Partial match  Partial match: abc
5352      ** Failers\P      ** Failers\P
5353  No match  No match
5354      the quick brown abxyz fox\P      the quick brown abxyz fox\P
# Line 5433  Need char = '/' Line 5373  Need char = '/'
5373   1: 02   1: 02
5374   2: 05   2: 05
5375      1\P      1\P
5376  Partial match  Partial match: 1
5377      1/2\P      1/2\P
5378  Partial match  Partial match: 1/2
5379      1/2/0\P      1/2/0\P
5380  Partial match  Partial match: 1/2/0
5381      1/2/04\P      1/2/04\P
5382   0: 1/2/04   0: 1/2/04
5383   1: 1   1: 1
5384   2: 2   2: 2
5385      0\P      0\P
5386  Partial match  Partial match: 0
5387      02/\P      02/\P
5388  Partial match  Partial match: 02/
5389      02/0\P      02/0\P
5390  Partial match  Partial match: 02/0
5391      02/1\P      02/1\P
5392  Partial match  Partial match: 02/1
5393      ** Failers\P      ** Failers\P
5394  No match  No match
5395      \P      \P
# Line 5471  No match Line 5411  No match
5411    
5412  /0{0,2}ABC/I  /0{0,2}ABC/I
5413  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5414  No options  No options
5415  No first char  No first char
5416  Need char = 'C'  Need char = 'C'
5417    
5418  /\d{3,}ABC/I  /\d{3,}ABC/I
5419  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5420  No options  No options
5421  No first char  No first char
5422  Need char = 'C'  Need char = 'C'
5423    
5424  /\d*ABC/I  /\d*ABC/I
5425  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5426  No options  No options
5427  No first char  No first char
5428  Need char = 'C'  Need char = 'C'
5429    
5430  /[abc]+DE/I  /[abc]+DE/I
5431  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5432  No options  No options
5433  No first char  No first char
5434  Need char = 'E'  Need char = 'E'
# Line 5505  Need char = '3' Line 5441  Need char = '3'
5441      123\P      123\P
5442   0: 123   0: 123
5443      a\P      a\P
5444  Partial match  Partial match: a
5445      b\P      b\P
5446  Partial match  Partial match: b
5447      c\P      c\P
5448  Partial match  Partial match: c
5449      c12\P      c12\P
5450  Partial match  Partial match: c12
5451      c123\P      c123\P
5452   0: c123   0: c123
5453    
# Line 5521  Options: anchored Line 5457  Options: anchored
5457  No first char  No first char
5458  Need char = 'X'  Need char = 'X'
5459      1\P      1\P
5460  Partial match  Partial match: 1
5461      123\P      123\P
5462  Partial match  Partial match: 123
5463      123X      123X
5464   0: 123X   0: 123X
5465      1234\P      1234\P
5466  Partial match  Partial match: 1234
5467      1234X      1234X
5468   0: 1234X   0: 1234X
5469      12345\P      12345\P
5470  Partial match  Partial match: 12345
5471      12345X      12345X
5472   0: 12345X   0: 12345X
5473      *** Failers      *** Failers
# Line 5578  Capturing subpattern count = 1 Line 5514  Capturing subpattern count = 1
5514  No options  No options
5515  No first char  No first char
5516  No need char  No need char
5517    Subject length lower bound = 1
5518  Starting byte set: a b  Starting byte set: a b
5519  Compiled regex written to testsavedregex  Compiled regex written to testsavedregex
5520  Study data written to testsavedregex  Study data written to testsavedregex
# Line 5598  Capturing subpattern count = 1 Line 5535  Capturing subpattern count = 1
5535  No options  No options
5536  No first char  No first char
5537  No need char  No need char
5538    Subject length lower bound = 1
5539  Starting byte set: a b  Starting byte set: a b
5540  Compiled regex written to testsavedregex  Compiled regex written to testsavedregex
5541  Study data written to testsavedregex  Study data written to testsavedregex
# Line 5616  No match Line 5554  No match
5554  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5555  Capturing subpattern count = 3  Capturing subpattern count = 3
5556  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
5557  Options: multiline dotall  Options: multiline dotall
5558  First char = '<'  First char = '<'
5559  Need char = '>'  Need char = '>'
# Line 5669  No match Line 5606  No match
5606      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5607  No match  No match
5608    
5609  /ab.cd/IP  /ab.cd/P
5610      ab-cd      ab-cd
5611   0: ab-cd   0: ab-cd
5612      ab=cd      ab=cd
# Line 5679  No match: POSIX code 17: match failed Line 5616  No match: POSIX code 17: match failed
5616      ab\ncd      ab\ncd
5617  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
5618    
5619  /ab.cd/IPs  /ab.cd/Ps
5620      ab-cd      ab-cd
5621   0: ab-cd   0: ab-cd
5622      ab=cd      ab=cd
# Line 5923  Matched, but too many substrings Line 5860  Matched, but too many substrings
5860    
5861  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
5862  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5863  No options  No options
5864  No first char  No first char
5865  No need char  No need char
# Line 5936  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 5947  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 5958  No need char Line 5892  No need char
5892    
5893  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
5894  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5895  No options  No options
5896  No first char  No first char
5897  No need char  No need char
# Line 5971  No need char Line 5904  No need char
5904    
5905  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
5906  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5907  No options  No options
5908  No first char  No first char
5909  No need char  No need char
# Line 5984  No need char Line 5916  No need char
5916      ((this))      ((this))
5917   0: ((this))   0: ((this))
5918    
5919  /a(b)c/IPN  /a(b)c/PN
5920      abc      abc
5921  Matched with REG_NOSUB  Matched with REG_NOSUB
5922    
5923  /a(?P<name>b)c/IPN  /a(?P<name>b)c/PN
5924      abc      abc
5925  Matched with REG_NOSUB  Matched with REG_NOSUB
5926    
# Line 6313  Failed: octal value is greater than \377 Line 6245  Failed: octal value is greater than \377
6245    
6246  /\s*,\s*/IS  /\s*,\s*/IS
6247  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6248  No options  No options
6249  No first char  No first char
6250  Need char = ','  Need char = ','
6251    Subject length lower bound = 1
6252  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6253      \x0b,\x0b      \x0b,\x0b
6254   0: ,   0: ,
# Line 6443  Unknown newline type at: Line 6375  Unknown newline type at:
6375    
6376  /.*/I<lf>  /.*/I<lf>
6377  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6378  Options:  Options:
6379  Forced newline sequence: LF  Forced newline sequence: LF
6380  First char at start or follows newline  First char at start or follows newline
# Line 6469  No need char Line 6400  No need char
6400    
6401  /\w+(.)(.)?def/Is  /\w+(.)(.)?def/Is
6402  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
6403  Options: dotall  Options: dotall
6404  No first char  No first char
6405  Need char = 'f'  Need char = 'f'
# Line 6486  Need char = 'f' Line 6416  Need char = 'f'
6416    
6417  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6418  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6419  No options  No options
6420  No first char  No first char
6421  No need char  No need char
# Line 6621  No need char Line 6550  No need char
6550    
6551  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
6552  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6553  No options  No options
6554  No first char  No first char
6555  No need char  No need char
6556    Subject length lower bound = 1
6557  Starting byte set: C a b c d  Starting byte set: C a b c d
6558    
6559  /()[ab]xyz/IS  /()[ab]xyz/IS
# Line 6632  Capturing subpattern count = 1 Line 6561  Capturing subpattern count = 1
6561  No options  No options
6562  No first char  No first char
6563  Need char = 'z'  Need char = 'z'
6564    Subject length lower bound = 4
6565  Starting byte set: a b  Starting byte set: a b
6566    
6567  /(|)[ab]xyz/IS  /(|)[ab]xyz/IS
# Line 6639  Capturing subpattern count = 1 Line 6569  Capturing subpattern count = 1
6569  No options  No options
6570  No first char  No first char
6571  Need char = 'z'  Need char = 'z'
6572    Subject length lower bound = 4
6573  Starting byte set: a b  Starting byte set: a b
6574    
6575  /(|c)[ab]xyz/IS  /(|c)[ab]xyz/IS
# Line 6646  Capturing subpattern count = 1 Line 6577  Capturing subpattern count = 1
6577  No options  No options
6578  No first char  No first char
6579  Need char = 'z'  Need char = 'z'
6580    Subject length lower bound = 4
6581  Starting byte set: a b c  Starting byte set: a b c
6582    
6583  /(|c?)[ab]xyz/IS  /(|c?)[ab]xyz/IS
# Line 6653  Capturing subpattern count = 1 Line 6585  Capturing subpattern count = 1
6585  No options  No options
6586  No first char  No first char
6587  Need char = 'z'  Need char = 'z'
6588    Subject length lower bound = 4
6589  Starting byte set: a b c  Starting byte set: a b c
6590    
6591  /(d?|c?)[ab]xyz/IS  /(d?|c?)[ab]xyz/IS
# Line 6660  Capturing subpattern count = 1 Line 6593  Capturing subpattern count = 1
6593  No options  No options
6594  No first char  No first char
6595  Need char = 'z'  Need char = 'z'
6596    Subject length lower bound = 4
6597  Starting byte set: a b c d  Starting byte set: a b c d
6598    
6599  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
# Line 6667  Capturing subpattern count = 1 Line 6601  Capturing subpattern count = 1
6601  No options  No options
6602  No first char  No first char
6603  Need char = 'z'  Need char = 'z'
6604    Subject length lower bound = 4
6605  Starting byte set: a b c d  Starting byte set: a b c d
6606    
6607  /^a*b\d/DZ  /^a*b\d/DZ
# Line 6680  Starting byte set: a b c d Line 6615  Starting byte set: a b c d
6615          End          End
6616  ------------------------------------------------------------------  ------------------------------------------------------------------
6617  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6618  Options: anchored  Options: anchored
6619  No first char  No first char
6620  Need char = 'b'  Need char = 'b'
# Line 6696  Need char = 'b' Line 6630  Need char = 'b'
6630          End          End
6631  ------------------------------------------------------------------  ------------------------------------------------------------------
6632  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6633  Options: anchored  Options: anchored
6634  No first char  No first char
6635  Need char = 'b'  Need char = 'b'
# Line 6712  Need char = 'b' Line 6645  Need char = 'b'
6645          End          End
6646  ------------------------------------------------------------------  ------------------------------------------------------------------
6647  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6648  Options: anchored  Options: anchored
6649  No first char  No first char
6650  Need char = 'b'  Need char = 'b'
# Line 6728  Need char = 'b' Line 6660  Need char = 'b'
6660          End          End
6661  ------------------------------------------------------------------  ------------------------------------------------------------------
6662  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6663  Options: anchored  Options: anchored
6664  No first char  No first char
6665  Need char = 'A'  Need char = 'A'
# Line 6750  No match Line 6681  No match
6681          End          End
6682  ------------------------------------------------------------------  ------------------------------------------------------------------
6683  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6684  Options: anchored caseless  Options: anchored caseless
6685  No first char  No first char
6686  Need char = 'A' (caseless)  Need char = 'A' (caseless)
# Line 6761  Need char = 'A' (caseless) Line 6691  Need char = 'A' (caseless)
6691    
6692  /(a*|b*)[cd]/IS  /(a*|b*)[cd]/IS
6693  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6694  No options  No options
6695  No first char  No first char
6696  No need char  No need char
6697    Subject length lower bound = 1
6698  Starting byte set: a b c d  Starting byte set: a b c d
6699    
6700  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
6701  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6702  No options  No options
6703  No first char  No first char
6704  No need char  No need char
6705    Subject length lower bound = 1
6706  Starting byte set: a b c d  Starting byte set: a b c d
6707    
6708  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
6709  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6710  No options  No options
6711  No first char  No first char
6712  No need char  No need char
6713    Subject length lower bound = 1
6714  Starting byte set: a b c d  Starting byte set: a b c d
6715    
6716  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
6717  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6718  No options  No options
6719  No first char  No first char
6720  No need char  No need char
6721    Subject length lower bound = 2
6722  Starting byte set: a b  Starting byte set: a b
6723    
6724  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
# Line 7594  No match Line 7524  No match
7524          ^          ^
7525          CBra 1          CBra 1
7526          Cond          Cond
7527        2 Cond ref        2 Cond nref
7528          y          y
7529          Ket          Ket
7530          [()]          [()]
# Line 7660  Named capturing subpatterns: Line 7590  Named capturing subpatterns:
7590    one     1    one     1
7591    three   3    three   3
7592    two     2    two     2
 Partial matching not supported  
7593  Options: anchored caseless  Options: anchored caseless
7594  No first char  No first char
7595  No need char  No need char
# Line 7694  No match Line 7623  No match
7623  /(?=(\w+))\1:/I  /(?=(\w+))\1:/I
7624  Capturing subpattern count = 1  Capturing subpattern count = 1
7625  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
7626  No options  No options
7627  No first char  No first char
7628  Need char = ':'  Need char = ':'
# Line 7707  Capturing subpattern count = 1 Line 7635  Capturing subpattern count = 1
7635  Max back reference = 1  Max back reference = 1
7636  Named capturing subpatterns:  Named capturing subpatterns:
7637    abc   1    abc   1
 Partial matching not supported  
7638  No options  No options
7639  No first char  No first char
7640  Need char = ':'  Need char = ':'
# Line 7715  Need char = ':' Line 7642  Need char = ':'
7642   0: abcd:   0: abcd:
7643   1: abcd   1: abcd
7644    
 /(?'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  
   
7645  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7646      adaa      adaa
7647   0: adaa   0: adaa
# Line 7755  No match Line 7668  No match
7668      bddd      bddd
7669  No match  No match
7670    
 /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x  
     abd  
  0: abd  
  1: a  
     ce  
  0: ce  
   
7671  /(?(<bc))/  /(?(<bc))/
7672  Failed: malformed number or name after (?( at offset 6  Failed: malformed number or name after (?( at offset 6
7673    
# Line 7792  Failed: reference to non-existent subpat Line 7698  Failed: reference to non-existent subpat
7698   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7699   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7700    
 /^(?(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>  
   
7701  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7702  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7703    
# Line 7987  Need char = 'P' Line 7875  Need char = 'P'
7875   0: PXP   0: PXP
7876   1: P   1: P
7877    
 /(?(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  
   
7878  /(?:a(?&abc)b)*(?<abc>x)/  /(?:a(?&abc)b)*(?<abc>x)/
7879      123axbaxbaxbx456      123axbaxbaxbx456
7880   0: axbaxbaxbx   0: axbaxbaxbx
# Line 8064  No match Line 7912  No match
7912     DEFabcABCXYZ     DEFabcABCXYZ
7913  No match  No match
7914    
 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/  
     ababababbbabZXXXX  
  0: ababababbbabZ  
  1: ab  
  2: b  
   
7915  /^(a)\g-2/  /^(a)\g-2/
7916  Failed: reference to non-existent subpattern at offset 7  Failed: reference to non-existent subpattern at offset 7
7917    
# Line 8325  Failed: reference to non-existent subpat Line 8167  Failed: reference to non-existent subpat
8167   0: Y!   0: Y!
8168   1: !   1: !
8169    
 /(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  
   
8170  /(?<A>tom|bon)-\k{A}/  /(?<A>tom|bon)-\k{A}/
8171      tom-tom      tom-tom
8172   0: tom-tom   0: tom-tom
# Line 8357  No match Line 8179  No match
8179      tom-bon      tom-bon
8180  No match  No match
8181    
 /(?<A>tom|bon)-\g{A}/  
     tom-tom  
  0: tom-tom  
  1: tom  
     bon-bon  
  0: bon-bon  
  1: bon  
   
8182  /\g{A/  /\g{A/
8183  Failed: syntax error in subpattern name (missing terminator) at offset 4  Failed: syntax error in subpattern name (missing terminator) at offset 4
8184    
# Line 8459  Failed: syntax error in subpattern name Line 8273  Failed: syntax error in subpattern name
8273   3: <unset>   3: <unset>
8274   4: x   4: x
8275    
 /(?|(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  
   
8276  /[\h]/BZ  /[\h]/BZ
8277  ------------------------------------------------------------------  ------------------------------------------------------------------
8278          Bra          Bra
# Line 8831  Failed: missing terminating ] for charac Line 8569  Failed: missing terminating ] for charac
8569          End          End
8570  ------------------------------------------------------------------  ------------------------------------------------------------------
8571    
 /^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  
   
8572  /^a+(*FAIL)/C  /^a+(*FAIL)/C
8573      aaaaaa      aaaaaa
8574  --->aaaaaa  --->aaaaaa
# Line 9040  No match Line 8697  No match
8697  +13   ^  ^      (*FAIL)  +13   ^  ^      (*FAIL)
8698  No match  No match
8699    
 /a(*PRUNE:XXX)b/  
 Failed: (*VERB) with an argument is not supported at offset 8  
   
8700  /a(*MARK)b/  /a(*MARK)b/
8701  Failed: (*VERB) not recognized at offset 7  Failed: (*MARK) must have an argument at offset 7
8702    
8703  /(?i:A{1,}\6666666666)/  /(?i:A{1,}\6666666666)/
8704  Failed: number is too big at offset 19  Failed: number is too big at offset 19
# Line 9133  No match Line 8787  No match
8787  No match  No match
8788      a\x85b      a\x85b
8789  No match  No match
8790    
8791    /(*ANY).*/g
8792        abc\r\ndef
8793     0: abc
8794     0:
8795     0: def
8796     0:
8797    
8798    /(*ANYCRLF).*/g
8799        abc\r\ndef
8800     0: abc
8801     0:
8802     0: def
8803     0:
8804    
8805    /(*CRLF).*/g
8806        abc\r\ndef
8807     0: abc
8808     0:
8809     0: def
8810     0:
8811    
8812  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
8813  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 9216  No match Line 8891  No match
8891    
8892  /a\R{2,4}b/I<bsr_anycrlf>  /a\R{2,4}b/I<bsr_anycrlf>
8893  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
8894  Options: bsr_anycrlf  Options: bsr_anycrlf
8895  First char = 'a'  First char = 'a'
8896  Need char = 'b'  Need char = 'b'
# Line 9235  No match Line 8909  No match
8909    
8910  /a\R{2,4}b/I<bsr_unicode>  /a\R{2,4}b/I<bsr_unicode>
8911  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
8912  Options: bsr_unicode  Options: bsr_unicode
8913  First char = 'a'  First char = 'a'
8914  Need char = 'b'  Need char = 'b'
# Line 9385  Failed: unknown POSIX class name at offs Line 9058  Failed: unknown POSIX class name at offs
9058  /[[:a\dz:]]/  /[[:a\dz:]]/
9059  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
9060    
9061  /^(?<name>a|b\g<name>c)/  /(^(a|b\g<-1'c))/
9062      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  
9063    
9064  /^(?<name>a|b\g'name'c)/  /^(?+1)(?<a>x|y){0}z/
9065      aaaa      xzxx
9066   0: a   0: xz
9067   1: a      yzyy
9068      bacxxx   0: yz
9069   0: bac      ** Failers
9070   1: bac  No match
9071      bbaccxxx      xxz
9072   0: bbacc  No match
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
9073    
9074  /^(a|b\g<1>c)/  /(\3)(\1)(a)/
9075      aaaa      cat
9076   0: a  No match
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
9077    
9078  /^(a|b\g'1'c)/  /(\3)(\1)(a)/<JS>
9079      aaaa      cat
  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  
   
 /(\3)(\1)(a)/<JS>  
     cat  
9080   0: a   0: a
9081   1:   1:
9082   2:   2:
# Line 9636  Capturing subpattern count = 1 Line 9180  Capturing subpattern count = 1
9180  No options  No options
9181  No first char  No first char
9182  No need char  No need char
9183    Subject length lower bound = 1
9184  Starting byte set: x y z  Starting byte set: x y z
9185    
9186  /(?(?=.*b)b|^)/CI  /(?(?=.*b)b|^)/CI
9187  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
9188  Options:  Options:
9189  No first char  No first char
9190  No need char  No need char
# Line 9680  No need char Line 9224  No need char
9224    
9225  /(?(?=b).*b|^d)/I  /(?(?=b).*b|^d)/I
9226  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
9227  No options  No options
9228  No first char  No first char
9229  No need char  No need char
9230    
9231  /(?(?=.*b).*b|^d)/I  /(?(?=.*b).*b|^d)/I
9232  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
9233  No options  No options
9234  First char at start or follows newline  First char at start or follows newline
9235  No need char  No need char
# Line 9752  No match Line 9294  No match
9294   +0        ^     x   +0        ^     x
9295   +0         ^    x   +0         ^    x
9296  No match  No match
9297    
9298    /(*NO_START_OPT)xyz/C
9299      abcxyz
9300    --->abcxyz
9301    +15 ^          x
9302    +15  ^         x
9303    +15   ^        x
9304    +15    ^       x
9305    +16    ^^      y
9306    +17    ^ ^     z
9307    +18    ^  ^
9308     0: xyz
9309    
9310    /xyz/CY
9311      abcxyz
9312    --->abcxyz
9313     +0 ^          x
9314     +0  ^         x
9315     +0   ^        x
9316     +0    ^       x
9317     +1    ^^      y
9318     +2    ^ ^     z
9319     +3    ^  ^
9320     0: xyz
9321    
9322  /^"((?(?=[a])[^"])|b)*"$/C  /^"((?(?=[a])[^"])|b)*"$/C
9323      "ab"      "ab"
# Line 9786  No match Line 9352  No match
9352   0: "ab"   0: "ab"
9353   1:   1:
9354    
 /^X(?5)(a)(?|(b)|(q))(c)(d)(Y)/  
     XYabcdY  
  0: XYabcdY  
  1: a  
  2: b  
  3: c  
  4: d  
  5: Y  
   
9355  /^X(?5)(a)(?|(b)|(q))(c)(d)Y/  /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9356  Failed: reference to non-existent subpattern at offset 5  Failed: reference to non-existent subpattern at offset 5
9357    
# Line 9807  Failed: reference to non-existent subpat Line 9364  Failed: reference to non-existent subpat
9364   4: d   4: d
9365   5: Y   5: Y
9366    
9367  /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/  /Xa{2,4}b/
9368      XYabcdY      X\P
9369   0: XYabcdY  Partial match: X
9370   1: a      Xa\P
9371   2: b  Partial match: Xa
9372   3: <unset>      Xaa\P
9373   4: <unset>  Partial match: Xaa
9374   5: c      Xaaa\P
9375   6: d  Partial match: Xaaa
9376   7: Y      Xaaaa\P
9377    Partial match: Xaaaa
9378    
9379    /Xa{2,4}?b/
9380        X\P
9381    Partial match: X
9382        Xa\P
9383    Partial match: Xa
9384        Xaa\P
9385    Partial match: Xaa
9386        Xaaa\P
9387    Partial match: Xaaa
9388        Xaaaa\P
9389    Partial match: Xaaaa
9390    
9391    /Xa{2,4}+b/
9392        X\P
9393    Partial match: X
9394        Xa\P
9395    Partial match: Xa
9396        Xaa\P
9397    Partial match: Xaa
9398        Xaaa\P
9399    Partial match: Xaaa
9400        Xaaaa\P
9401    Partial match: Xaaaa
9402    
9403    /X\d{2,4}b/
9404        X\P
9405    Partial match: X
9406        X3\P
9407    Partial match: X3
9408        X33\P
9409    Partial match: X33
9410        X333\P
9411    Partial match: X333
9412        X3333\P
9413    Partial match: X3333
9414    
9415    /X\d{2,4}?b/
9416        X\P
9417    Partial match: X
9418        X3\P
9419    Partial match: X3
9420        X33\P
9421    Partial match: X33
9422        X333\P
9423    Partial match: X333
9424        X3333\P
9425    Partial match: X3333
9426    
9427    /X\d{2,4}+b/
9428        X\P
9429    Partial match: X
9430        X3\P
9431    Partial match: X3
9432        X33\P
9433    Partial match: X33
9434        X333\P
9435    Partial match: X333
9436        X3333\P
9437    Partial match: X3333
9438    
9439    /X\D{2,4}b/
9440        X\P
9441    Partial match: X
9442        Xa\P
9443    Partial match: Xa
9444        Xaa\P
9445    Partial match: Xaa
9446        Xaaa\P
9447    Partial match: Xaaa
9448        Xaaaa\P
9449    Partial match: Xaaaa
9450    
9451    /X\D{2,4}?b/
9452        X\P
9453    Partial match: X
9454        Xa\P
9455    Partial match: Xa
9456        Xaa\P
9457    Partial match: Xaa
9458        Xaaa\P
9459    Partial match: Xaaa
9460        Xaaaa\P
9461    Partial match: Xaaaa
9462    
9463    /X\D{2,4}+b/
9464        X\P
9465    Partial match: X
9466        Xa\P
9467    Partial match: Xa
9468        Xaa\P
9469    Partial match: Xaa
9470        Xaaa\P
9471    Partial match: Xaaa
9472        Xaaaa\P
9473    Partial match: Xaaaa
9474    
9475    /X[abc]{2,4}b/
9476        X\P
9477    Partial match: X
9478        Xa\P
9479    Partial match: Xa
9480        Xaa\P
9481    Partial match: Xaa
9482        Xaaa\P
9483    Partial match: Xaaa
9484        Xaaaa\P
9485    Partial match: Xaaaa
9486    
9487    /X[abc]{2,4}?b/
9488        X\P
9489    Partial match: X
9490        Xa\P
9491    Partial match: Xa
9492        Xaa\P
9493    Partial match: Xaa
9494        Xaaa\P
9495    Partial match: Xaaa
9496        Xaaaa\P
9497    Partial match: Xaaaa
9498    
9499    /X[abc]{2,4}+b/
9500        X\P
9501    Partial match: X
9502        Xa\P
9503    Partial match: Xa
9504        Xaa\P
9505    Partial match: Xaa
9506        Xaaa\P
9507    Partial match: Xaaa
9508        Xaaaa\P
9509    Partial match: Xaaaa
9510    
9511    /X[^a]{2,4}b/
9512        X\P
9513    Partial match: X
9514        Xz\P
9515    Partial match: Xz
9516        Xzz\P
9517    Partial match: Xzz
9518        Xzzz\P
9519    Partial match: Xzzz
9520        Xzzzz\P
9521    Partial match: Xzzzz
9522    
9523    /X[^a]{2,4}?b/
9524        X\P
9525    Partial match: X
9526        Xz\P
9527    Partial match: Xz
9528        Xzz\P
9529    Partial match: Xzz
9530        Xzzz\P
9531    Partial match: Xzzz
9532        Xzzzz\P
9533    Partial match: Xzzzz
9534    
9535    /X[^a]{2,4}+b/
9536        X\P
9537    Partial match: X
9538        Xz\P
9539    Partial match: Xz
9540        Xzz\P
9541    Partial match: Xzz
9542        Xzzz\P
9543    Partial match: Xzzz
9544        Xzzzz\P
9545    Partial match: Xzzzz
9546    
9547    /(Y)X\1{2,4}b/
9548        YX\P
9549    Partial match: YX
9550        YXY\P
9551    Partial match: YXY
9552        YXYY\P
9553    Partial match: YXYY
9554        YXYYY\P
9555    Partial match: YXYYY
9556        YXYYYY\P
9557    Partial match: YXYYYY
9558    
9559    /(Y)X\1{2,4}?b/
9560        YX\P
9561    Partial match: YX
9562        YXY\P
9563    Partial match: YXY
9564        YXYY\P
9565    Partial match: YXYY
9566        YXYYY\P
9567    Partial match: YXYYY
9568        YXYYYY\P
9569    Partial match: YXYYYY
9570    
9571    /(Y)X\1{2,4}+b/
9572        YX\P
9573    Partial match: YX
9574        YXY\P
9575    Partial match: YXY
9576        YXYY\P
9577    Partial match: YXYY
9578        YXYYY\P
9579    Partial match: YXYYY
9580        YXYYYY\P
9581    Partial match: YXYYYY
9582    
9583    /\++\KZ|\d+X|9+Y/
9584        ++++123999\P
9585    Partial match: 123999
9586        ++++123999Y\P
9587     0: 999Y
9588        ++++Z1234\P
9589     0: Z
9590    
9591  /^X(?7)(a)(?|(b|(r)(s))|(q))(c)(d)(Y)/  /Z(*F)/
9592      XYabcdY      Z\P
9593   0: XYabcdY  No match
9594   1: a      ZA\P
9595   2: b  No match
9596   3: <unset>  
9597   4: <unset>  /Z(?!)/
9598   5: c      Z\P
9599   6: d  No match
9600   7: Y      ZA\P
9601    No match
9602    
9603  /^X(?7)(a)(?|(b|(?|(r)|(t))(s))|(q))(c)(d)(Y)/  /dog(sbody)?/
9604      XYabcdY      dogs\P
9605   0: XYabcdY   0: dog
9606   1: a      dogs\P\P
9607   2: b  Partial match: dogs
9608   3: <unset>  
9609   4: <unset>  /dog(sbody)??/
9610   5: c      dogs\P
9611   6: d   0: dog
9612   7: Y      dogs\P\P
9613     0: dog
9614    
9615    /dog|dogsbody/
9616        dogs\P
9617     0: dog
9618        dogs\P\P
9619     0: dog
9620    
9621    /dogsbody|dog/
9622        dogs\P
9623     0: dog
9624        dogs\P\P
9625    Partial match: dogs
9626    
9627    /\bthe cat\b/
9628        the cat\P
9629     0: the cat
9630        the cat\P\P
9631    Partial match: the cat
9632    
9633    /abc/
9634       abc\P
9635     0: abc
9636       abc\P\P
9637     0: abc
9638    
9639    /\w+A/P
9640       CDAAAAB
9641     0: CDAAAA
9642    
9643    /\w+A/PU
9644       CDAAAAB
9645     0: CDA
9646    
9647    /abc\K123/
9648        xyzabc123pqr
9649     0: 123
9650        xyzabc12\P
9651    Partial match: abc12
9652        xyzabc12\P\P
9653    Partial match: abc12
9654    
9655    /(?<=abc)123/
9656        xyzabc123pqr
9657     0: 123
9658        xyzabc12\P
9659    Partial match: abc12
9660        xyzabc12\P\P
9661    Partial match: abc12
9662    
9663    /\babc\b/
9664        +++abc+++
9665     0: abc
9666        +++ab\P
9667    Partial match: +ab
9668        +++ab\P\P
9669    Partial match: +ab
9670    
9671    /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9672    ------------------------------------------------------------------
9673            Bra
9674            Once
9675            Recurse
9676            Ket
9677            Once
9678            Recurse
9679            Ket
9680            Cond
9681            Cond def
9682            CBra 1
9683            <
9684            [^m]
9685            [^>]
9686            >
9687            [^<]
9688            Ket
9689            CBra 2
9690            \w*+
9691            Ket
9692            Ket
9693            Ket
9694            End
9695    ------------------------------------------------------------------
9696    
9697    /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9698    ------------------------------------------------------------------
9699            Bra
9700            Once
9701            Recurse
9702            Ket
9703            Once
9704            Recurse
9705            Ket
9706            Cond
9707            Cond def
9708            CBra 1
9709            <
9710            [\x00-/:-\xff] (neg)
9711            [^>]
9712            >
9713            [^<]
9714            Ket
9715            CBra 2
9716            \w*+
9717            Ket
9718            Ket
9719            Ket
9720            End
9721    ------------------------------------------------------------------
9722    
9723    /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9724    ------------------------------------------------------------------
9725            Bra
9726            CBra 1
9727            ab
9728            Ket
9729            CBra 2
9730            x
9731            CBra 3
9732            y
9733            Ket
9734            z
9735            CBra 4
9736            cd
9737            Close 4
9738            Close 2
9739            *ACCEPT
9740            Ket
9741            Ket
9742            pq
9743            Ket
9744            End
9745    ------------------------------------------------------------------
9746    
9747    /abc\K/+
9748        abcdef
9749     0:
9750     0+ def
9751        abcdef\N\N
9752     0:
9753     0+ def
9754        xyzabcdef\N\N
9755     0:
9756     0+ def
9757        ** Failers
9758    No match
9759        abcdef\N
9760    No match
9761        xyzabcdef\N
9762    No match
9763    
9764    /^(?:(?=abc)|abc\K)/+
9765        abcdef
9766     0:
9767     0+ abcdef
9768        abcdef\N\N
9769     0:
9770     0+ def
9771        ** Failers
9772    No match
9773        abcdef\N
9774    No match
9775    
9776    /a?b?/+
9777        xyz
9778     0:
9779     0+ xyz
9780        xyzabc
9781     0:
9782     0+ xyzabc
9783        xyzabc\N
9784     0: ab
9785     0+ c
9786        xyzabc\N\N
9787     0:
9788     0+ yzabc
9789        xyz\N\N
9790     0:
9791     0+ yz
9792        ** Failers
9793     0:
9794     0+ ** Failers
9795        xyz\N
9796    No match
9797    
9798    /^a?b?/+
9799        xyz
9800     0:
9801     0+ xyz
9802        xyzabc
9803     0:
9804     0+ xyzabc
9805        ** Failers
9806     0:
9807     0+ ** Failers
9808        xyzabc\N
9809    No match
9810        xyzabc\N\N
9811    No match
9812        xyz\N\N
9813    No match
9814        xyz\N
9815    No match
9816    
9817    /^(?<name>a|b\g<name>c)/
9818        aaaa
9819     0: a
9820     1: a
9821        bacxxx
9822     0: bac
9823     1: bac
9824        bbaccxxx
9825     0: bbacc
9826     1: bbacc
9827        bbbacccxx
9828     0: bbbaccc
9829     1: bbbaccc
9830    
9831    /^(?<name>a|b\g'name'c)/
9832        aaaa
9833     0: a
9834     1: a
9835        bacxxx
9836     0: bac
9837     1: bac
9838        bbaccxxx
9839     0: bbacc
9840     1: bbacc
9841        bbbacccxx
9842     0: bbbaccc
9843     1: bbbaccc
9844    
9845    /^(a|b\g<1>c)/
9846        aaaa
9847     0: a
9848     1: a
9849        bacxxx
9850     0: bac
9851     1: bac
9852        bbaccxxx
9853     0: bbacc
9854     1: bbacc
9855        bbbacccxx
9856     0: bbbaccc
9857     1: bbbaccc
9858    
9859    /^(a|b\g'1'c)/
9860        aaaa
9861     0: a
9862     1: a
9863        bacxxx
9864     0: bac
9865     1: bac
9866        bbaccxxx
9867     0: bbacc
9868     1: bbacc
9869        bbbacccxx
9870     0: bbbaccc
9871     1: bbbaccc
9872    
9873    /^(a|b\g'-1'c)/
9874        aaaa
9875     0: a
9876     1: a
9877        bacxxx
9878     0: bac
9879     1: bac
9880        bbaccxxx
9881     0: bbacc
9882     1: bbacc
9883        bbbacccxx
9884     0: bbbaccc
9885     1: bbbaccc
9886    
9887    /(^(a|b\g<-1>c))/
9888        aaaa
9889     0: a
9890     1: a
9891     2: a
9892        bacxxx
9893     0: bac
9894     1: bac
9895     2: bac
9896        bbaccxxx
9897     0: bbacc
9898     1: bbacc
9899     2: bbacc
9900        bbbacccxx
9901     0: bbbaccc
9902     1: bbbaccc
9903     2: bbbaccc
9904    
9905    /(?-i:\g<name>)(?i:(?<name>a))/
9906        XaaX
9907     0: aa
9908     1: a
9909        XAAX
9910     0: AA
9911     1: A
9912    
9913    /(?i:\g<name>)(?-i:(?<name>a))/
9914        XaaX
9915     0: aa
9916     1: a
9917        ** Failers
9918    No match
9919        XAAX
9920    No match
9921    
9922    /(?-i:\g<+1>)(?i:(a))/
9923        XaaX
9924     0: aa
9925     1: a
9926        XAAX
9927     0: AA
9928     1: A
9929    
9930    /(?=(?<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>\})\}))\{/
9931    
9932    /(?<n>a|b|c)\g<n>*/
9933       abc
9934     0: abc
9935     1: a
9936       accccbbb
9937     0: accccbbb
9938     1: a
9939    
9940    /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
9941        XYabcdY
9942     0: XYabcdY
9943     1: a
9944     2: b
9945     3: <unset>
9946     4: <unset>
9947     5: c
9948     6: d
9949     7: Y
9950    
9951    /(?<=b(?1)|zzz)(a)/
9952        xbaax
9953     0: a
9954     1: a
9955        xzzzax
9956     0: a
9957     1: a
9958    
9959    /(a)(?<=b\1)/
9960    Failed: lookbehind assertion is not fixed length at offset 10
9961    
9962    /(a)(?<=b+(?1))/
9963    Failed: lookbehind assertion is not fixed length at offset 13
9964    
9965    /(a+)(?<=b(?1))/
9966    Failed: lookbehind assertion is not fixed length at offset 14
9967    
9968    /(a(?<=b(?1)))/
9969    Failed: lookbehind assertion is not fixed length at offset 13
9970    
9971    /(?<=b(?1))xyz/
9972    Failed: reference to non-existent subpattern at offset 8
9973    
9974    /(?<=b(?1))xyz(b+)pqrstuvew/
9975    Failed: lookbehind assertion is not fixed length at offset 26
9976    
9977    /(a|bc)\1/SI
9978    Capturing subpattern count = 1
9979    Max back reference = 1
9980    No options
9981    No first char
9982    No need char
9983    Subject length lower bound = 2
9984    Starting byte set: a b
9985    
9986    /(a|bc)\1{2,3}/SI
9987    Capturing subpattern count = 1
9988    Max back reference = 1
9989    No options
9990    No first char
9991    No need char
9992    Subject length lower bound = 3
9993    Starting byte set: a b
9994    
9995    /(a|bc)(?1)/SI
9996    Capturing subpattern count = 1
9997    No options
9998    No first char
9999    No need char
10000    Subject length lower bound = 2
10001    Starting byte set: a b
10002    
10003    /(a|b\1)(a|b\1)/SI
10004    Capturing subpattern count = 2
10005    Max back reference = 1
10006    No options
10007    No first char
10008    No need char
10009    Subject length lower bound = 2
10010    Starting byte set: a b
10011    
10012    /(a|b\1){2}/SI
10013    Capturing subpattern count = 1
10014    Max back reference = 1
10015    No options
10016    No first char
10017    No need char
10018    Subject length lower bound = 2
10019    Starting byte set: a b
10020    
10021    /(a|bbbb\1)(a|bbbb\1)/SI
10022    Capturing subpattern count = 2
10023    Max back reference = 1
10024    No options
10025    No first char
10026    No need char
10027    Subject length lower bound = 2
10028    Starting byte set: a b
10029    
10030    /(a|bbbb\1){2}/SI
10031    Capturing subpattern count = 1
10032    Max back reference = 1
10033    No options
10034    No first char
10035    No need char
10036    Subject length lower bound = 2
10037    Starting byte set: a b
10038    
10039    /^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
10040    Capturing subpattern count = 1
10041    Options: anchored
10042    No first char
10043    Need char = ':'
10044    Subject length lower bound = 22
10045    No set of starting bytes
10046    
10047    /  (?: [\040\t] |  \(
10048    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10049    \)  )*                          # optional leading comment
10050    (?:    (?:
10051    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10052    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10053    |
10054    " (?:                      # opening quote...
10055    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10056    |                     #    or
10057    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10058    )* "  # closing quote
10059    )                    # initial word
10060    (?:  (?: [\040\t] |  \(
10061    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10062    \)  )*  \.  (?: [\040\t] |  \(
10063    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10064    \)  )*   (?:
10065    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10066    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10067    |
10068    " (?:                      # opening quote...
10069    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10070    |                     #    or
10071    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10072    )* "  # closing quote
10073    )  )* # further okay, if led by a period
10074    (?: [\040\t] |  \(
10075    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10076    \)  )*  @  (?: [\040\t] |  \(
10077    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10078    \)  )*    (?:
10079    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10080    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10081    |   \[                         # [
10082    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10083    \]                        #           ]
10084    )                           # initial subdomain
10085    (?:                                  #
10086    (?: [\040\t] |  \(
10087    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10088    \)  )*  \.                        # if led by a period...
10089    (?: [\040\t] |  \(
10090    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
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    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10096    \]                        #           ]
10097    )                     #   ...further okay
10098    )*
10099    # address
10100    |                     #  or
10101    (?:
10102    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10103    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10104    |
10105    " (?:                      # opening quote...
10106    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10107    |                     #    or
10108    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10109    )* "  # closing quote
10110    )             # one word, optionally followed by....
10111    (?:
10112    [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
10113    \(
10114    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10115    \)       |  # comments, or...
10116    
10117    " (?:                      # opening quote...
10118    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10119    |                     #    or
10120    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10121    )* "  # closing quote
10122    # quoted strings
10123    )*
10124    <  (?: [\040\t] |  \(
10125    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10126    \)  )*                     # leading <
10127    (?:  @  (?: [\040\t] |  \(
10128    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10129    \)  )*    (?:
10130    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10131    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10132    |   \[                         # [
10133    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10134    \]                        #           ]
10135    )                           # initial subdomain
10136    (?:                                  #
10137    (?: [\040\t] |  \(
10138    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10139    \)  )*  \.                        # if led by a period...
10140    (?: [\040\t] |  \(
10141    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10142    \)  )*   (?:
10143    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10144    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10145    |   \[                         # [
10146    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10147    \]                        #           ]
10148    )                     #   ...further okay
10149    )*
10150    
10151    (?:  (?: [\040\t] |  \(
10152    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10153    \)  )*  ,  (?: [\040\t] |  \(
10154    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10155    \)  )*  @  (?: [\040\t] |  \(
10156    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10157    \)  )*    (?:
10158    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10159    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10160    |   \[                         # [
10161    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10162    \]                        #           ]
10163    )                           # initial subdomain
10164    (?:                                  #
10165    (?: [\040\t] |  \(
10166    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10167    \)  )*  \.                        # if led by a period...
10168    (?: [\040\t] |  \(
10169    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10170    \)  )*   (?:
10171    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10172    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10173    |   \[                         # [
10174    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10175    \]                        #           ]
10176    )                     #   ...further okay
10177    )*
10178    )* # further okay, if led by comma
10179    :                                # closing colon
10180    (?: [\040\t] |  \(
10181    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10182    \)  )*  )? #       optional route
10183    (?:
10184    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10185    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10186    |
10187    " (?:                      # opening quote...
10188    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10189    |                     #    or
10190    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10191    )* "  # closing quote
10192    )                    # initial word
10193    (?:  (?: [\040\t] |  \(
10194    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10195    \)  )*  \.  (?: [\040\t] |  \(
10196    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10197    \)  )*   (?:
10198    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10199    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10200    |
10201    " (?:                      # opening quote...
10202    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10203    |                     #    or
10204    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10205    )* "  # closing quote
10206    )  )* # further okay, if led by a period
10207    (?: [\040\t] |  \(
10208    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10209    \)  )*  @  (?: [\040\t] |  \(
10210    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10211    \)  )*    (?:
10212    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10213    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10214    |   \[                         # [
10215    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10216    \]                        #           ]
10217    )                           # initial subdomain
10218    (?:                                  #
10219    (?: [\040\t] |  \(
10220    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10221    \)  )*  \.                        # if led by a period...
10222    (?: [\040\t] |  \(
10223    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10224    \)  )*   (?:
10225    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10226    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10227    |   \[                         # [
10228    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10229    \]                        #           ]
10230    )                     #   ...further okay
10231    )*
10232    #       address spec
10233    (?: [\040\t] |  \(
10234    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10235    \)  )*  > #                  trailing >
10236    # name and address
10237    )  (?: [\040\t] |  \(
10238    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10239    \)  )*                       # optional trailing comment
10240    /xSI
10241    Capturing subpattern count = 0
10242    Contains explicit CR or LF match
10243    Options: extended
10244    No first char
10245    No need char
10246    Subject length lower bound = 3
10247    Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8
10248      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
10249      f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f
10250    
10251    /<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
10252    Capturing subpattern count = 11
10253    Options: caseless dotall
10254    First char = '<'
10255    Need char = '>'
10256    Subject length lower bound = 47
10257    No set of starting bytes
10258    
10259    "(?>.*/)foo"SI
10260    Capturing subpattern count = 0
10261    No options
10262    First char at start or follows newline
10263    Need char = 'o'
10264    Subject length lower bound = 4
10265    No set of starting bytes
10266    
10267    /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10268    Capturing subpattern count = 0
10269    Options: extended
10270    No first char
10271    Need char = '-'
10272    Subject length lower bound = 8
10273    No set of starting bytes
10274    
10275    /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10276    Capturing subpattern count = 1
10277    Options: caseless
10278    No first char
10279    No need char
10280    Subject length lower bound = 1
10281    Starting byte set: A B C a b c
10282    
10283    /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10284    Capturing subpattern count = 0
10285    No options
10286    No first char
10287    Need char = 'b'
10288    Subject length lower bound = 41
10289    Starting byte set: c d
10290    
10291    /<a[\s]+href[\s]*=[\s]*          # find <a href=
10292     ([\"\'])?                       # find single or double quote
10293     (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
10294                                     # quote, otherwise match up to next space
10295    /isxSI
10296    Capturing subpattern count = 3
10297    Max back reference = 1
10298    Options: caseless extended dotall
10299    First char = '<'
10300    Need char = '='
10301    Subject length lower bound = 9
10302    No set of starting bytes
10303    
10304    /^(?!:)                       # colon disallowed at start
10305      (?:                         # start of item
10306        (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
10307        (?(1)0 | () ) )           # if null previously matched, fail; else null
10308        :                         # followed by colon
10309      ){1,7}                      # end item; 1-7 of them required
10310      [0-9a-f]{1,4} $             # final hex number at end of string
10311      (?(1)|.)                    # check that there was an empty component
10312      /xiIS
10313    Capturing subpattern count = 1
10314    Options: anchored caseless extended
10315    No first char
10316    Need char = ':'
10317    Subject length lower bound = 2
10318    No set of starting bytes
10319    
10320    /(?|(?<a>A)|(?<a>B))/I
10321    Capturing subpattern count = 1
10322    Named capturing subpatterns:
10323      a   1
10324      a   1
10325    No options
10326    No first char
10327    No need char
10328        AB\Ca
10329     0: A
10330     1: A
10331      C A (1) a
10332        BA\Ca
10333     0: B
10334     1: B
10335      C B (1) a
10336    
10337    /(?|(?<a>A)|(?<b>B))/
10338    Failed: different names for subpatterns of the same number are not allowed at offset 15
10339    
10340    /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10341        b(?<quote> (?<apostrophe>')|(?<realquote>")) )
10342        (?('quote')[a-z]+|[0-9]+)/JIx
10343    Capturing subpattern count = 6
10344    Named capturing subpatterns:
10345      apostrophe   2
10346      apostrophe   5
10347      quote        1
10348      quote        4
10349      realquote    3
10350      realquote    6
10351    Options: extended dupnames
10352    No first char
10353    No need char
10354        a"aaaaa
10355     0: a"aaaaa
10356     1: "
10357     2: <unset>
10358     3: "
10359        b"aaaaa
10360     0: b"aaaaa
10361     1: <unset>
10362     2: <unset>
10363     3: <unset>
10364     4: "
10365     5: <unset>
10366     6: "
10367        ** Failers
10368    No match
10369        b"11111
10370    No match
10371        a"11111
10372    No match
10373    
10374    /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10375    ------------------------------------------------------------------
10376            Bra
10377            ^
10378            Bra
10379            CBra 1
10380            a
10381            Ket
10382            CBra 2
10383            b
10384            Ket
10385            CBra 3
10386            c
10387            Ket
10388            CBra 4
10389            d
10390            Ket
10391            Alt
10392            CBra 1
10393            e
10394            Ket
10395            Ket
10396            Cond
10397          4 Cond nref
10398            X
10399            Alt
10400            Y
10401            Ket
10402            Ket
10403            End
10404    ------------------------------------------------------------------
10405    Capturing subpattern count = 4
10406    Named capturing subpatterns:
10407      D   4
10408      D   1
10409    Options: anchored extended dupnames
10410    No first char
10411    No need char
10412        abcdX
10413     0: abcdX
10414     1: a
10415     2: b
10416     3: c
10417     4: d
10418        eX
10419     0: eX
10420     1: e
10421        ** Failers
10422    No match
10423        abcdY
10424    No match
10425        ey
10426    No match
10427    
10428    /(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
10429    ------------------------------------------------------------------
10430            Bra
10431            CBra 1
10432            a
10433            Ket
10434            CBra 2
10435            b
10436            Ket
10437            CBra 3
10438            c
10439            Ket
10440            CBra 4
10441            d
10442            Cond
10443            Cond nrecurse 1
10444            $
10445            Alt
10446            Once
10447            Recurse
10448            Ket
10449            Ket
10450            Ket
10451            Ket
10452            End
10453    ------------------------------------------------------------------
10454    Capturing subpattern count = 4
10455    Named capturing subpatterns:
10456      A   1
10457      A   4
10458    Options: extended dupnames
10459    First char = 'a'
10460    Need char = 'd'
10461        abcdd
10462     0: abcdd
10463     1: a
10464     2: b
10465     3: c
10466     4: dd
10467        ** Failers
10468    No match
10469        abcdde
10470    No match
10471    
10472    /abcd*/
10473        xxxxabcd\P
10474     0: abcd
10475        xxxxabcd\P\P
10476    Partial match: abcd
10477    
10478    /abcd*/i
10479        xxxxabcd\P
10480     0: abcd
10481        xxxxabcd\P\P
10482    Partial match: abcd
10483        XXXXABCD\P
10484     0: ABCD
10485        XXXXABCD\P\P
10486    Partial match: ABCD
10487    
10488    /abc\d*/
10489        xxxxabc1\P
10490     0: abc1
10491        xxxxabc1\P\P
10492    Partial match: abc1
10493    
10494    /(a)bc\1*/
10495        xxxxabca\P
10496     0: abca
10497     1: a
10498        xxxxabca\P\P
10499    Partial match: abca
10500    
10501    /abc[de]*/
10502        xxxxabcde\P
10503     0: abcde
10504        xxxxabcde\P\P
10505    Partial match: abcde
10506    
10507    /-- This is not in the Perl >= 5.10 test because Perl seems currently to be
10508        broken and not behaving as specified in that it *does* bumpalong after
10509        hitting (*COMMIT). --/
10510    
10511    /(?1)(A(*COMMIT)|B)D/
10512        ABD
10513     0: ABD
10514     1: B
10515        XABD
10516     0: ABD
10517     1: B
10518        BAD
10519     0: BAD
10520     1: A
10521        ABXABD
10522     0: ABD
10523     1: B
10524        ** Failers
10525    No match
10526        ABX
10527    No match
10528        BAXBAD
10529    No match
10530    
10531    /(\3)(\1)(a)/<JS>
10532        cat
10533     0: a
10534     1:
10535     2:
10536     3: a
10537    
10538    /(\3)(\1)(a)/SI<JS>
10539    Capturing subpattern count = 3
10540    Max back reference = 3
10541    Options:
10542    No first char
10543    Need char = 'a'
10544    Subject length lower bound = 1
10545    No set of starting bytes
10546        cat
10547     0: a
10548     1:
10549     2:
10550     3: a
10551    
10552    /(\3)(\1)(a)/SI
10553    Capturing subpattern count = 3
10554    Max back reference = 3
10555    No options
10556    No first char
10557    Need char = 'a'
10558    Subject length lower bound = 3
10559    No set of starting bytes
10560        cat
10561    No match
10562    
10563    /i(?(DEFINE)(?<s>a))/SI
10564    Capturing subpattern count = 1
10565    Named capturing subpatterns:
10566      s   1
10567    No options
10568    First char = 'i'
10569    No need char
10570    Subject length lower bound = 1
10571    No set of starting bytes
10572        i
10573     0: i
10574    
10575    /()i(?(1)a)/SI
10576    Capturing subpattern count = 1
10577    No options
10578    No first char
10579    Need char = 'i'
10580    Subject length lower bound = 1
10581    Starting byte set: i
10582        ia
10583     0: ia
10584     1:
10585    
10586    /(?i)a(?-i)b|c/BZ
10587    ------------------------------------------------------------------
10588            Bra
10589         NC a
10590         00 Opt
10591            b
10592            Alt
10593         00 Opt
10594            c
10595            Ket
10596            End
10597    ------------------------------------------------------------------
10598        XabX
10599     0: ab
10600        XAbX
10601     0: Ab
10602        CcC
10603     0: c
10604        ** Failers
10605    No match
10606        XABX
10607    No match
10608    
10609    /(?i)a(?s)b|c/BZ
10610    ------------------------------------------------------------------
10611            Bra
10612         NC a
10613         05 Opt
10614         NC b
10615            Alt
10616         05 Opt
10617         NC c
10618            Ket
10619            End
10620    ------------------------------------------------------------------
10621    
10622    /(?i)a(?s-i)b|c/BZ
10623    ------------------------------------------------------------------
10624            Bra
10625         NC a
10626         04 Opt
10627            b
10628            Alt
10629         04 Opt
10630            c
10631            Ket
10632            End
10633    ------------------------------------------------------------------
10634    
10635    /^(ab(c\1)d|x){2}$/BZ
10636    ------------------------------------------------------------------
10637            Bra
10638            ^
10639            Once
10640            CBra 1
10641            ab
10642            CBra 2
10643            c
10644            \1
10645            Ket
10646            d
10647            Alt
10648            x
10649            Ket
10650            Ket
10651            Once
10652            CBra 1
10653            ab
10654            CBra 2
10655            c
10656            \1
10657            Ket
10658            d
10659            Alt
10660            x
10661            Ket
10662            Ket
10663            $
10664            Ket
10665            End
10666    ------------------------------------------------------------------
10667        xabcxd
10668     0: xabcxd
10669     1: abcxd
10670     2: cx
10671    
10672    /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10673    ------------------------------------------------------------------
10674            Bra
10675            ^
10676            Once
10677            Brazero
10678            Once
10679            Recurse
10680            KetRmax
10681            Ket
10682            Cond
10683            Cond def
10684            CBra 1
10685            Any
10686            Ket
10687            Ket
10688            $
10689            Ket
10690            End
10691    ------------------------------------------------------------------
10692    
10693    /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10694    ------------------------------------------------------------------
10695            Bra
10696            ^
10697            Brazero
10698            Once
10699            Recurse
10700            KetRmax
10701            Cond
10702            Cond def
10703            CBra 1
10704            Any
10705            Ket
10706            Ket
10707            $
10708            Ket
10709            End
10710    ------------------------------------------------------------------
10711    
10712    / -- The first four of these are not in the Perl >= 5.10 test because Perl
10713         documents that the use of \K in assertions is "not well defined". The
10714         last is here because Perl gives the match as "b" rather than "ab". I
10715         believe this to be a Perl bug. --/
10716    
10717    /(?=a\Kb)ab/
10718        ab
10719     0: b
10720    
10721    /(?!a\Kb)ac/
10722        ac
10723     0: ac
10724    
10725    /^abc(?<=b\Kc)d/
10726        abcd
10727     0: cd
10728    
10729    /^abc(?<!b\Kq)d/
10730        abcd
10731     0: abcd
10732    
10733    /(?>a\Kb)z|(ab)/
10734        ab
10735     0: ab
10736     1: ab
10737    
10738    /----------------------/
10739    
10740    /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10741    Failed: recursive call could loop indefinitely at offset 31
10742    
10743    /abc(*MARK:)pqr/
10744    Failed: (*MARK) must have an argument at offset 10
10745    
10746    /abc(*:)pqr/
10747    Failed: (*MARK) must have an argument at offset 6
10748    
10749    /abc(*FAIL:123)xyz/
10750    Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10751    
10752    /--- This should, and does, fail. In Perl, it does not, which I think is a
10753         bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10754    
10755    /A(*COMMIT)B/+K
10756        ACABX
10757    No match
10758    
10759    /--- These should be different, but in Perl 5.11 are not, which I think
10760         is a bug in Perl. ---/
10761    
10762    /A(*THEN)B|A(*THEN)C/K
10763        AC
10764     0: AC
10765    
10766    /A(*PRUNE)B|A(*PRUNE)C/K
10767        AC
10768    No match
10769    
10770    /--- A whole lot of tests of verbs with arguments are here rather than in test
10771         11 because Perl doesn't seem to follow its specification entirely
10772         correctly. ---/
10773    
10774    /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is
10775         not clear how Perl defines "involved in the failure of the match". ---/
10776    
10777    /^(A(*THEN:A)B|C(*THEN:B)D)/K
10778        AB
10779     0: AB
10780     1: AB
10781        CD
10782     0: CD
10783     1: CD
10784        ** Failers
10785    No match
10786        AC
10787    No match
10788        CB
10789    No match, mark = B
10790    
10791    /--- Check the use of names for success and failure. PCRE doesn't show these
10792    names for success, though Perl does, contrary to its spec. ---/
10793    
10794    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
10795        AB
10796     0: AB
10797     1: AB
10798        CD
10799     0: CD
10800     1: CD
10801        ** Failers
10802    No match
10803        AC
10804    No match, mark = A
10805        CB
10806    No match, mark = B
10807    
10808    /--- An empty name does not pass back an empty string. It is the same as if no
10809    name were given. ---/
10810    
10811    /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K
10812        AB
10813     0: AB
10814     1: AB
10815        CD
10816     0: CD
10817     1: CD
10818    
10819    /--- PRUNE goes to next bumpalong; COMMIT does not. ---/
10820    
10821    /A(*PRUNE:A)B/K
10822        ACAB
10823     0: AB
10824    
10825    /(*MARK:A)(*PRUNE:B)(C|X)/K
10826        C
10827     0: C
10828     1: C
10829    MK: A
10830        D
10831    No match, mark = B
10832    
10833    /(*MARK:A)(*THEN:B)(C|X)/K
10834        C
10835     0: C
10836     1: C
10837    MK: A
10838        D
10839    No match, mark = B
10840    
10841    /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/
10842    
10843    /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK
10844        AAAC
10845    No match
10846    
10847    /--- Same --/
10848    
10849    /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK
10850        AAAC
10851    No match
10852    
10853    /--- This should fail; the SKIP advances by one, but when we get to AC, the
10854         PRUNE kills it. ---/
10855    
10856    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
10857        AAAC
10858    No match
10859    
10860    /A(*:A)A+(*SKIP)(B|Z) | AC/xK
10861        AAAC
10862    No match
10863    
10864    /--- This should fail, as a null name is the same as no name ---/
10865    
10866    /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK
10867        AAAC
10868    No match
10869    
10870    /--- This fails in PCRE, and I think that is in accordance with Perl's
10871         documentation, though in Perl it succeeds. ---/
10872    
10873    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK
10874        AAAC
10875    No match
10876    
10877    /--- Mark names can be duplicated ---/
10878    
10879    /A(*:A)B|X(*:A)Y/K
10880        AABC
10881     0: AB
10882    MK: A
10883        XXYZ
10884     0: XY
10885    MK: A
10886    
10887    /^A(*:A)B|^X(*:A)Y/K
10888        ** Failers
10889    No match
10890        XAQQ
10891    No match, mark = A
10892    
10893    /--- A check on what happens after hitting a mark and them bumping along to
10894    something that does not even start. Perl reports tags after the failures here,
10895    though it does not when the individual letters are made into something
10896    more complicated. ---/
10897    
10898    /A(*:A)B|XX(*:B)Y/K
10899        AABC
10900     0: AB
10901    MK: A
10902        XXYZ
10903     0: XXY
10904    MK: B
10905        ** Failers
10906    No match
10907        XAQQ
10908    No match
10909        XAQQXZZ
10910    No match
10911        AXQQQ
10912    No match
10913        AXXQQQ
10914    No match
10915    
10916    /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10917    optimizations defeat this. So does the PCRE optimization unless we disable it
10918    with \Y. ---/
10919    
10920    /(*COMMIT)ABC/
10921        ABCDEFG
10922     0: ABC
10923        ** Failers
10924    No match
10925        DEFGABC\Y
10926    No match
10927    
10928    /--- Repeat some tests with added studying. ---/
10929    
10930    /A(*COMMIT)B/+KS
10931        ACABX
10932    No match
10933    
10934    /A(*THEN)B|A(*THEN)C/KS
10935        AC
10936     0: AC
10937