/[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 269 by ph10, Fri Nov 16 16:22:24 2007 UTC revision 511 by ph10, Mon Mar 29 09:25:38 2010 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 potential Perl
6        bug. --/
7    
8    /-- Originally, the Perl 5.10 things were in here too, but now I have separated
9        many (most?) of them out into test 11. However, there may still be some
10        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 113  Failed: unrecognized character after (? Line 120  Failed: unrecognized character after (?
120    
121  /.*b/I  /.*b/I
122  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
123  No options  No options
124  First char at start or follows newline  First char at start or follows newline
125  Need char = 'b'  Need char = 'b'
126    
127  /.*?b/I  /.*?b/I
128  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
129  No options  No options
130  First char at start or follows newline  First char at start or follows newline
131  Need char = 'b'  Need char = 'b'
# Line 140  Capturing subpattern count = 0 Line 145  Capturing subpattern count = 0
145  No options  No options
146  No first char  No first char
147  No need char  No need char
148    Subject length lower bound = 3
149  Starting byte set: c d e  Starting byte set: c d e
150      this sentence eventually mentions a cat      this sentence eventually mentions a cat
151   0: cat   0: cat
# Line 151  Capturing subpattern count = 0 Line 157  Capturing subpattern count = 0
157  Options: caseless  Options: caseless
158  No first char  No first char
159  No need char  No need char
160    Subject length lower bound = 3
161  Starting byte set: C D E c d e  Starting byte set: C D E c d e
162      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
163   0: CAT   0: CAT
# Line 162  Capturing subpattern count = 0 Line 169  Capturing subpattern count = 0
169  No options  No options
170  No first char  No first char
171  No need char  No need char
172    Subject length lower bound = 1
173  Starting byte set: a b c d  Starting byte set: a b c d
174    
175  /(a|[^\dZ])/IS  /(a|[^\dZ])/IS
# Line 169  Capturing subpattern count = 1 Line 177  Capturing subpattern count = 1
177  No options  No options
178  No first char  No first char
179  No need char  No need char
180    Subject length lower bound = 1
181  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
182    \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
183    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
# Line 189  Capturing subpattern count = 1 Line 198  Capturing subpattern count = 1
198  No options  No options
199  No first char  No first char
200  No need char  No need char
201    Subject length lower bound = 1
202  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
203    
204  /(ab\2)/  /(ab\2)/
# Line 324  No need char Line 334  No need char
334    
335  /.*((abc)$|(def))/I  /.*((abc)$|(def))/I
336  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
337  No options  No options
338  First char at start or follows newline  First char at start or follows newline
339  No need char  No need char
# Line 338  No need char Line 347  No need char
347   2: <unset>   2: <unset>
348   3: def   3: def
349    
350  /abc/IP  /abc/P
351      abc      abc
352   0: abc   0: abc
353      *** Failers      *** Failers
354  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
355    
356  /^abc|def/IP  /^abc|def/P
357      abcdef      abcdef
358   0: abc   0: abc
359      abcdef\B      abcdef\B
360   0: def   0: def
361    
362  /.*((abc)$|(def))/IP  /.*((abc)$|(def))/P
363      defabc      defabc
364   0: defabc   0: defabc
365   1: abc   1: abc
# Line 360  No match: POSIX code 17: match failed Line 369  No match: POSIX code 17: match failed
369   1: def   1: def
370   3: def   3: def
371    
372  /the quick brown fox/IP  /the quick brown fox/P
373      the quick brown fox      the quick brown fox
374   0: the quick brown fox   0: the quick brown fox
375      *** Failers      *** Failers
# Line 368  No match: POSIX code 17: match failed Line 377  No match: POSIX code 17: match failed
377      The Quick Brown Fox      The Quick Brown Fox
378  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
379    
380  /the quick brown fox/IPi  /the quick brown fox/Pi
381      the quick brown fox      the quick brown fox
382   0: the quick brown fox   0: the quick brown fox
383      The Quick Brown Fox      The Quick Brown Fox
384   0: The Quick Brown Fox   0: The Quick Brown Fox
385    
386  /abc.def/IP  /abc.def/P
387      *** Failers      *** Failers
388  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
389      abc\ndef      abc\ndef
390  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
391    
392  /abc$/IP  /abc$/P
393      abc      abc
394   0: abc   0: abc
395      abc\n      abc\n
396   0: abc   0: abc
397    
398  /(abc)\2/IP  /(abc)\2/P
399  Failed: POSIX code 15: bad back reference at offset 7  Failed: POSIX code 15: bad back reference at offset 7
400    
401  /(abc\1)/IP  /(abc\1)/P
402      abc      abc
403  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
404    
# Line 401  Failed: missing terminating ] for charac Line 410  Failed: missing terminating ] for charac
410    
411  /[^aeiou ]{3,}/I  /[^aeiou ]{3,}/I
412  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
413  No options  No options
414  No first char  No first char
415  No need char  No need char
# Line 410  No need char Line 418  No need char
418    
419  /<.*>/I  /<.*>/I
420  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
421  No options  No options
422  First char = '<'  First char = '<'
423  Need char = '>'  Need char = '>'
# Line 419  Need char = '>' Line 426  Need char = '>'
426    
427  /<.*?>/I  /<.*?>/I
428  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
429  No options  No options
430  First char = '<'  First char = '<'
431  Need char = '>'  Need char = '>'
# Line 428  Need char = '>' Line 434  Need char = '>'
434    
435  /<.*>/IU  /<.*>/IU
436  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
437  Options: ungreedy  Options: ungreedy
438  First char = '<'  First char = '<'
439  Need char = '>'  Need char = '>'
# Line 437  Need char = '>' Line 442  Need char = '>'
442    
443  /(?U)<.*>/I  /(?U)<.*>/I
444  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
445  Options: ungreedy  Options: ungreedy
446  First char = '<'  First char = '<'
447  Need char = '>'  Need char = '>'
# Line 446  Need char = '>' Line 450  Need char = '>'
450    
451  /<.*?>/IU  /<.*?>/IU
452  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
453  Options: ungreedy  Options: ungreedy
454  First char = '<'  First char = '<'
455  Need char = '>'  Need char = '>'
# Line 455  Need char = '>' Line 458  Need char = '>'
458    
459  /={3,}/IU  /={3,}/IU
460  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
461  Options: ungreedy  Options: ungreedy
462  First char = '='  First char = '='
463  Need char = '='  Need char = '='
# Line 464  Need char = '=' Line 466  Need char = '='
466    
467  /(?U)={3,}?/I  /(?U)={3,}?/I
468  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
469  Options: ungreedy  Options: ungreedy
470  First char = '='  First char = '='
471  Need char = '='  Need char = '='
# Line 522  No need char Line 523  No need char
523    
524  /(?s).*/I  /(?s).*/I
525  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
526  Options: anchored dotall  Options: anchored dotall
527  No first char  No first char
528  No need char  No need char
# Line 532  Capturing subpattern count = 0 Line 532  Capturing subpattern count = 0
532  No options  No options
533  No first char  No first char
534  No need char  No need char
535    Subject length lower bound = 1
536  Starting byte set: a b c d  Starting byte set: a b c d
537    
538  /(?i)[abcd]/IS  /(?i)[abcd]/IS
# Line 539  Capturing subpattern count = 0 Line 540  Capturing subpattern count = 0
540  Options: caseless  Options: caseless
541  No first char  No first char
542  No need char  No need char
543    Subject length lower bound = 1
544  Starting byte set: A B C D a b c d  Starting byte set: A B C D a b c d
545    
546  /(?m)[xy]|(b|c)/IS  /(?m)[xy]|(b|c)/IS
# Line 546  Capturing subpattern count = 1 Line 548  Capturing subpattern count = 1
548  Options: multiline  Options: multiline
549  No first char  No first char
550  No need char  No need char
551    Subject length lower bound = 1
552  Starting byte set: b c x y  Starting byte set: b c x y
553    
554  /(^a|^b)/Im  /(^a|^b)/Im
# Line 584  Failed: syntax error in subpattern name Line 587  Failed: syntax error in subpattern name
587  /((?s)blah)\s+\1/I  /((?s)blah)\s+\1/I
588  Capturing subpattern count = 1  Capturing subpattern count = 1
589  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
590  No options  No options
591  First char = 'b'  First char = 'b'
592  Need char = 'h'  Need char = 'h'
# Line 592  Need char = 'h' Line 594  Need char = 'h'
594  /((?i)blah)\s+\1/I  /((?i)blah)\s+\1/I
595  Capturing subpattern count = 1  Capturing subpattern count = 1
596  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
597  No options  No options
598  First char = 'b' (caseless)  First char = 'b' (caseless)
599  Need char = 'h' (caseless)  Need char = 'h' (caseless)
# Line 612  Capturing subpattern count = 1 Line 613  Capturing subpattern count = 1
613  No options  No options
614  First char = 'b' (caseless)  First char = 'b' (caseless)
615  No need char  No need char
616  Study returned NULL  Subject length lower bound = 1
617    No set of starting bytes
618    
619  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
620  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
621  No options  No options
622  No first char  No first char
623  No need char  No need char
624    Subject length lower bound = 1
625  Starting byte set: C a b c d  Starting byte set: C a b c d
626    
627  /a$/I  /a$/I
# Line 668  Need char = 'c' Line 670  Need char = 'c'
670    
671  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
672  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
673  Options: anchored  Options: anchored
674  No first char  No first char
675  No need char  No need char
# Line 685  Capturing subpattern count = 0 Line 686  Capturing subpattern count = 0
686  No options  No options
687  No first char  No first char
688  No need char  No need char
689    Subject length lower bound = 1
690  Starting byte set: a b  Starting byte set: a b
691    
692  /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
# Line 692  Capturing subpattern count = 1 Line 694  Capturing subpattern count = 1
694  No options  No options
695  No first char  No first char
696  Need char = 'a'  Need char = 'a'
697    Subject length lower bound = 5
698  Starting byte set: a o  Starting byte set: a o
699    
700  /(?!alphabet)[ab]/IS  /(?!alphabet)[ab]/IS
# Line 699  Capturing subpattern count = 0 Line 702  Capturing subpattern count = 0
702  No options  No options
703  No first char  No first char
704  No need char  No need char
705    Subject length lower bound = 1
706  Starting byte set: a b  Starting byte set: a b
707    
708  /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
# Line 784  No need char Line 788  No need char
788    
789  /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
790  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
791  No options  No options
792  First char at start or follows newline  First char at start or follows newline
793  No need char  No need char
# Line 854  No match Line 857  No match
857      a      a
858  No match  No match
859    
860  /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
861  Capturing subpattern count = 0  Capturing subpattern count = 0
862  No options  No options
863  First char = 'T'  First char = 'T'
# Line 866  Max back reference = 1 Line 869  Max back reference = 1
869  Options: anchored  Options: anchored
870  No first char  No first char
871  No need char  No need char
872        aaaa
873    No match
874      aaaaaa      aaaaaa
875   0: aaaaaa  No match
876   1: aa  
877    /Perl does not fail these two for the final subjects. Neither did PCRE until/
878    /release 8.01. The problem is in backtracking into a subpattern that contains/
879    No match
880    /a recursive reference to itself. PCRE has now made these into atomic patterns./
881    No match
882    
883    /^(xa|=?\1a){2}$/
884        xa=xaa
885     0: xa=xaa
886     1: =xaa
887        ** Failers
888    No match
889        xa=xaaa
890    No match
891    
892    /^(xa|=?\1a)+$/
893        xa=xaa
894     0: xa=xaa
895     1: =xaa
896        ** Failers
897    No match
898        xa=xaaa
899    No match
900    
901  /These are syntax tests from Perl 5.005/I  /These are syntax tests from Perl 5.005/I
902  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 963  Failed: unrecognized character after (? Line 991  Failed: unrecognized character after (?
991  /(?(1?)a|b)/  /(?(1?)a|b)/
992  Failed: malformed number or name after (?( at offset 4  Failed: malformed number or name after (?( at offset 4
993    
 /(?(1)a|b|c)/  
 Failed: conditional group contains more than two branches at offset 10  
   
994  /[a[:xyz:/  /[a[:xyz:/
995  Failed: missing terminating ] for character class at offset 8  Failed: missing terminating ] for character class at offset 8
996    
# Line 1006  copy substring 5 failed -7 Line 1031  copy substring 5 failed -7
1031    
1032  /(.{20})/I  /(.{20})/I
1033  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1034  No options  No options
1035  No first char  No first char
1036  No need char  No need char
# Line 1024  No need char Line 1048  No need char
1048    
1049  /(.{15})/I  /(.{15})/I
1050  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1051  No options  No options
1052  No first char  No first char
1053  No need char  No need char
# Line 1039  No need char Line 1062  No need char
1062    
1063  /(.{16})/I  /(.{16})/I
1064  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1065  No options  No options
1066  No first char  No first char
1067  No need char  No need char
# Line 1106  No need char Line 1128  No need char
1128  )((?:[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]+
1129  )?)?)?)?)?)?)?)?)?otherword/I  )?)?)?)?)?)?)?)?)?otherword/I
1130  Capturing subpattern count = 8  Capturing subpattern count = 8
 Partial matching not supported  
1131  Contains explicit CR or LF match  Contains explicit CR or LF match
1132  No options  No options
1133  First char = 'w'  First char = 'w'
# Line 1121  Need char = 'd' Line 1142  Need char = 'd'
1142          End          End
1143  ------------------------------------------------------------------  ------------------------------------------------------------------
1144  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1145  No options  No options
1146  First char at start or follows newline  First char at start or follows newline
1147  Need char = 'X'  Need char = 'X'
# Line 1129  Need char = 'X' Line 1149  Need char = 'X'
1149  /.*X/IDZs  /.*X/IDZs
1150  ------------------------------------------------------------------  ------------------------------------------------------------------
1151          Bra          Bra
1152          Any*          AllAny*
1153          X          X
1154          Ket          Ket
1155          End          End
1156  ------------------------------------------------------------------  ------------------------------------------------------------------
1157  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1158  Options: anchored dotall  Options: anchored dotall
1159  No first char  No first char
1160  Need char = 'X'  Need char = 'X'
# Line 1154  Need char = 'X' Line 1173  Need char = 'X'
1173          End          End
1174  ------------------------------------------------------------------  ------------------------------------------------------------------
1175  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1176  No options  No options
1177  First char at start or follows newline  First char at start or follows newline
1178  No need char  No need char
# Line 1163  No need char Line 1181  No need char
1181  ------------------------------------------------------------------  ------------------------------------------------------------------
1182          Bra          Bra
1183          CBra 1          CBra 1
1184          Any*          AllAny*
1185          X          X
1186          Alt          Alt
1187          ^          ^
# Line 1173  No need char Line 1191  No need char
1191          End          End
1192  ------------------------------------------------------------------  ------------------------------------------------------------------
1193  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1194  Options: anchored dotall  Options: anchored dotall
1195  No first char  No first char
1196  No need char  No need char
# Line 1182  No need char Line 1199  No need char
1199  ------------------------------------------------------------------  ------------------------------------------------------------------
1200          Bra          Bra
1201          CBra 1          CBra 1
1202          Any*          AllAny*
1203          X          X
1204          Alt          Alt
1205          ^          ^
# Line 1192  No need char Line 1209  No need char
1209          End          End
1210  ------------------------------------------------------------------  ------------------------------------------------------------------
1211  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1212  Options: anchored dotall  Options: anchored dotall
1213  No first char  No first char
1214  No need char  No need char
# Line 1202  No need char Line 1218  No need char
1218          Bra          Bra
1219          Bra          Bra
1220       04 Opt       04 Opt
1221          Any*          AllAny*
1222          X          X
1223          Alt          Alt
1224       04 Opt       04 Opt
# Line 1214  No need char Line 1230  No need char
1230          End          End
1231  ------------------------------------------------------------------  ------------------------------------------------------------------
1232  Capturing subpattern count = 0  Capturing subpattern count = 0
1233  Partial matching not supported  Options: anchored
1234  No options  No first char
 First char at start or follows newline  
1235  No need char  No need char
1236    
1237  /\Biss\B/I+  /\Biss\B/I+
# Line 1299  No need char Line 1314  No need char
1314    
1315  /.*iss/Ig+  /.*iss/Ig+
1316  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1317  No options  No options
1318  First char at start or follows newline  First char at start or follows newline
1319  Need char = 's'  Need char = 's'
# Line 1402  Need char = 'c' Line 1416  Need char = 'c'
1416    
1417  /a*/I  /a*/I
1418  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1419  No options  No options
1420  No first char  No first char
1421  No need char  No need char
1422    
1423  /a+/I  /a+/I
1424  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1425  No options  No options
1426  First char = 'a'  First char = 'a'
1427  No need char  No need char
1428    
1429  /(baa|a+)/I  /(baa|a+)/I
1430  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1431  No options  No options
1432  No first char  No first char
1433  Need char = 'a'  Need char = 'a'
1434    
1435  /a{0,3}/I  /a{0,3}/I
1436  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1437  No options  No options
1438  No first char  No first char
1439  No need char  No need char
1440    
1441  /baa{3,}/I  /baa{3,}/I
1442  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1443  No options  No options
1444  First char = 'b'  First char = 'b'
1445  Need char = 'a'  Need char = 'a'
1446    
1447  /"([^\\"]+|\\.)*"/I  /"([^\\"]+|\\.)*"/I
1448  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1449  No options  No options
1450  First char = '"'  First char = '"'
1451  Need char = '"'  Need char = '"'
# Line 1492  Need char = 'b' Line 1500  Need char = 'b'
1500    
1501  /abc*/I  /abc*/I
1502  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1503  No options  No options
1504  First char = 'a'  First char = 'a'
1505  Need char = 'b'  Need char = 'b'
1506    
1507  /ab.c*/I  /ab.c*/I
1508  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1509  No options  No options
1510  First char = 'a'  First char = 'a'
1511  Need char = 'b'  Need char = 'b'
1512    
1513  /a.c*/I  /a.c*/I
1514  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1515  No options  No options
1516  First char = 'a'  First char = 'a'
1517  No need char  No need char
1518    
1519  /.c*/I  /.c*/I
1520  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1521  No options  No options
1522  No first char  No first char
1523  No need char  No need char
1524    
1525  /ac*/I  /ac*/I
1526  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1527  No options  No options
1528  First char = 'a'  First char = 'a'
1529  No need char  No need char
1530    
1531  /(a.c*|b.c*)/I  /(a.c*|b.c*)/I
1532  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1533  No options  No options
1534  No first char  No first char
1535  No need char  No need char
1536    
1537  /a.c*|aba/I  /a.c*|aba/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  No need char  No need char
1542    
1543  /.+a/I  /.+a/I
1544  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1545  No options  No options
1546  No first char  No first char
1547  Need char = 'a'  Need char = 'a'
1548    
1549  /(?=abcda)a.*/I  /(?=abcda)a.*/I
1550  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1551  No options  No options
1552  First char = 'a'  First char = 'a'
1553  Need char = 'a'  Need char = 'a'
1554    
1555  /(?=a)a.*/I  /(?=a)a.*/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
# Line 1568  No need char Line 1566  No need char
1566    
1567  /a\d*/I  /a\d*/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  /ab\d*/I  /ab\d*/I
1574  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1575  No options  No options
1576  First char = 'a'  First char = 'a'
1577  Need char = 'b'  Need char = 'b'
# Line 1594  Need char = 'd' Line 1590  Need char = 'd'
1590    
1591  /ab\d+/I  /ab\d+/I
1592  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1593  No options  No options
1594  First char = 'a'  First char = 'a'
1595  Need char = 'b'  Need char = 'b'
1596    
1597  /a(?(1)b)/I  /a(?(1)b)(.)/I
1598  Capturing subpattern count = 0  Capturing subpattern count = 1
1599  No options  No options
1600  First char = 'a'  First char = 'a'
1601  No need char  No need char
1602    
1603  /a(?(1)bag|big)/I  /a(?(1)bag|big)(.)/I
1604  Capturing subpattern count = 0  Capturing subpattern count = 1
1605  No options  No options
1606  First char = 'a'  First char = 'a'
1607  Need char = 'g'  Need char = 'g'
1608    
1609  /a(?(1)bag|big)*/I  /a(?(1)bag|big)*(.)/I
1610  Capturing subpattern count = 0  Capturing subpattern count = 1
1611  No options  No options
1612  First char = 'a'  First char = 'a'
1613  No need char  No need char
1614    
1615  /a(?(1)bag|big)+/I  /a(?(1)bag|big)+(.)/I
1616  Capturing subpattern count = 0  Capturing subpattern count = 1
1617  No options  No options
1618  First char = 'a'  First char = 'a'
1619  Need char = 'g'  Need char = 'g'
1620    
1621  /a(?(1)b..|b..)/I  /a(?(1)b..|b..)(.)/I
1622  Capturing subpattern count = 0  Capturing subpattern count = 1
1623  No options  No options
1624  First char = 'a'  First char = 'a'
1625  Need char = 'b'  Need char = 'b'
# Line 1669  No need char Line 1664  No need char
1664      \Nabc      \Nabc
1665  No match  No match
1666    
1667  /a*(b+)(z)(z)/IP  /a*(b+)(z)(z)/P
1668      aaaabbbbzzzz      aaaabbbbzzzz
1669   0: aaaabbbbzz   0: aaaabbbbzz
1670   1: bbbb   1: bbbb
# Line 1701  Capturing subpattern count = 0 Line 1696  Capturing subpattern count = 0
1696  Options: anchored  Options: anchored
1697  No first char  No first char
1698  Need char = 'd'  Need char = 'd'
1699  Study returned NULL  Subject length lower bound = 4
1700    No set of starting bytes
1701    
1702  /\(             # ( at start  /\(             # ( at start
1703    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1712  Study returned NULL Line 1708  Study returned NULL
1708    \)            # Closing )    \)            # Closing )
1709    /Ix    /Ix
1710  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1711  Options: extended  Options: extended
1712  First char = '('  First char = '('
1713  Need char = ')'  Need char = ')'
# Line 1741  No match Line 1736  No match
1736    
1737  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1738  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1739  Options: extended  Options: extended
1740  First char = '('  First char = '('
1741  Need char = ')'  Need char = ')'
# Line 1756  Need char = ')' Line 1750  Need char = ')'
1750    
1751  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1752  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1753  Options: extended  Options: extended
1754  First char = '('  First char = '('
1755  Need char = ')'  Need char = ')'
# Line 1775  No match Line 1768  No match
1768    
1769  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1770  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1771  Options: extended  Options: extended
1772  First char = '('  First char = '('
1773  Need char = ')'  Need char = ')'
# Line 1786  Need char = ')' Line 1778  Need char = ')'
1778    
1779  /\(  ( (?>[^()]+) | (?R) )* \) /Ix  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1780  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1781  Options: extended  Options: extended
1782  First char = '('  First char = '('
1783  Need char = ')'  Need char = ')'
# Line 1796  Need char = ')' Line 1787  Need char = ')'
1787    
1788  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1789  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
1790  Options: extended  Options: extended
1791  First char = '('  First char = '('
1792  Need char = ')'  Need char = ')'
# Line 1807  Need char = ')' Line 1797  Need char = ')'
1797    
1798  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1799  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1800  Options: extended  Options: extended
1801  First char = '('  First char = '('
1802  Need char = ')'  Need char = ')'
# Line 1824  Need char = ')' Line 1813  Need char = ')'
1813    
1814  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1815  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1816  Options: extended  Options: extended
1817  First char = '('  First char = '('
1818  Need char = ')'  Need char = ')'
# Line 1841  Need char = ')' Line 1829  Need char = ')'
1829    
1830  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1831  Capturing subpattern count = 11  Capturing subpattern count = 11
 Partial matching not supported  
1832  Options: extended  Options: extended
1833  First char = '('  First char = '('
1834  Need char = ')'  Need char = ')'
# Line 1861  Need char = ')' Line 1848  Need char = ')'
1848    
1849  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1850  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1851  Options: extended  Options: extended
1852  First char = '('  First char = '('
1853  Need char = ')'  Need char = ')'
# Line 1869  Need char = ')' Line 1855  Need char = ')'
1855   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1856   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1857   2: 123   2: 123
  3: <unset>  
1858    
1859  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1860  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1861  Options: extended  Options: extended
1862  First char = '('  First char = '('
1863  Need char = ')'  Need char = ')'
# Line 1945  Capturing subpattern count = 0 Line 1929  Capturing subpattern count = 0
1929  No options  No options
1930  No first char  No first char
1931  No need char  No need char
1932    Subject length lower bound = 1
1933  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
1934    _ 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
1935    
# Line 2006  Contains explicit CR or LF match Line 1991  Contains explicit CR or LF match
1991  No options  No options
1992  No first char  No first char
1993  No need char  No need char
1994    Subject length lower bound = 1
1995  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1996    
1997  /^[[:cntrl:]]/DZ  /^[[:cntrl:]]/DZ
# Line 2252  Need char = 'd' Line 2238  Need char = 'd'
2238  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2239  Capturing subpattern count = 271  Capturing subpattern count = 271
2240  Max back reference = 270  Max back reference = 270
 Partial matching not supported  
2241  No options  No options
2242  No first char  No first char
2243  No need char  No need char
# Line 2933  Need char = 'c' Line 2918  Need char = 'c'
2918          End          End
2919  ------------------------------------------------------------------  ------------------------------------------------------------------
2920  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2921  No options  No options
2922  No first char  No first char
2923  No need char  No need char
# Line 2962  No need char Line 2946  No need char
2946          End          End
2947  ------------------------------------------------------------------  ------------------------------------------------------------------
2948  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2949  No options  No options
2950  First char = 'x'  First char = 'x'
2951  No need char  No need char
# Line 2978  No need char Line 2961  No need char
2961          End          End
2962  ------------------------------------------------------------------  ------------------------------------------------------------------
2963  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2964  No options  No options
2965  First char = 'x'  First char = 'x'
2966  No need char  No need char
# Line 3002  No need char Line 2984  No need char
2984    
2985  /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
2986  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2987  Options: anchored  Options: anchored
2988  No first char  No first char
2989  No need char  No need char
# Line 3016  No match Line 2997  No match
2997    
2998  /(\d++)(\w)/I  /(\d++)(\w)/I
2999  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3000  No options  No options
3001  No first char  No first char
3002  No need char  No need char
# Line 3031  No match Line 3011  No match
3011    
3012  /a++b/I  /a++b/I
3013  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3014  No options  No options
3015  First char = 'a'  First char = 'a'
3016  Need char = 'b'  Need char = 'b'
# Line 3040  Need char = 'b' Line 3019  Need char = 'b'
3019    
3020  /(a++b)/I  /(a++b)/I
3021  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3022  No options  No options
3023  First char = 'a'  First char = 'a'
3024  Need char = 'b'  Need char = 'b'
# Line 3050  Need char = 'b' Line 3028  Need char = 'b'
3028    
3029  /(a++)b/I  /(a++)b/I
3030  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3031  No options  No options
3032  First char = 'a'  First char = 'a'
3033  Need char = 'b'  Need char = 'b'
# Line 3060  Need char = 'b' Line 3037  Need char = 'b'
3037    
3038  /([^()]++|\([^()]*\))+/I  /([^()]++|\([^()]*\))+/I
3039  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3040  No options  No options
3041  No first char  No first char
3042  No need char  No need char
# Line 3070  No need char Line 3046  No need char
3046    
3047  /\(([^()]++|\([^()]+\))+\)/I  /\(([^()]++|\([^()]+\))+\)/I
3048  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3049  No options  No options
3050  First char = '('  First char = '('
3051  Need char = ')'  Need char = ')'
# Line 3133  Failed: nothing to repeat at offset 7 Line 3108  Failed: nothing to repeat at offset 7
3108          End          End
3109  ------------------------------------------------------------------  ------------------------------------------------------------------
3110  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3111  No options  No options
3112  First char = 'x'  First char = 'x'
3113  Need char = 'b'  Need char = 'b'
# Line 3150  Need char = 'b' Line 3124  Need char = 'b'
3124          End          End
3125  ------------------------------------------------------------------  ------------------------------------------------------------------
3126  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3127  Options: ungreedy  Options: ungreedy
3128  First char = 'x'  First char = 'x'
3129  Need char = 'b'  Need char = 'b'
# Line 3179  Need char = 'b' Line 3152  Need char = 'b'
3152          End          End
3153  ------------------------------------------------------------------  ------------------------------------------------------------------
3154  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3155  Options: anchored  Options: anchored
3156  No first char  No first char
3157  No need char  No need char
# Line 3195  No need char Line 3167  No need char
3167          End          End
3168  ------------------------------------------------------------------  ------------------------------------------------------------------
3169  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3170  Options: anchored  Options: anchored
3171  No first char  No first char
3172  Need char = 'b'  Need char = 'b'
# Line 3213  Need char = 'b' Line 3184  Need char = 'b'
3184          End          End
3185  ------------------------------------------------------------------  ------------------------------------------------------------------
3186  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3187  Options: anchored  Options: anchored
3188  No first char  No first char
3189  Need char = 'b'  Need char = 'b'
# Line 3289  No need char Line 3259  No need char
3259    
3260  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3261  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3262  Options: extended  Options: extended
3263  First char = '<'  First char = '<'
3264  Need char = '>'  Need char = '>'
# Line 3339  Need char = 'X' Line 3308  Need char = 'X'
3308  /(.*)\d+\1/I  /(.*)\d+\1/I
3309  Capturing subpattern count = 1  Capturing subpattern count = 1
3310  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3311  No options  No options
3312  No first char  No first char
3313  No need char  No need char
3314    
3315  /(.*)\d+/I  /(.*)\d+/I
3316  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3317  No options  No options
3318  First char at start or follows newline  First char at start or follows newline
3319  No need char  No need char
# Line 3354  No need char Line 3321  No need char
3321  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3322  Capturing subpattern count = 1  Capturing subpattern count = 1
3323  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3324  Options: dotall  Options: dotall
3325  No first char  No first char
3326  No need char  No need char
3327    
3328  /(.*)\d+/Is  /(.*)\d+/Is
3329  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3330  Options: anchored dotall  Options: anchored dotall
3331  No first char  No first char
3332  No need char  No need char
# Line 3369  No need char Line 3334  No need char
3334  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3335  Capturing subpattern count = 2  Capturing subpattern count = 2
3336  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3337  No options  No options
3338  First char at start or follows newline  First char at start or follows newline
3339  Need char = 'z'  Need char = 'z'
# Line 3377  Need char = 'z' Line 3341  Need char = 'z'
3341  /((.*))\d+\1/I  /((.*))\d+\1/I
3342  Capturing subpattern count = 2  Capturing subpattern count = 2
3343  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3344  No options  No options
3345  No first char  No first char
3346  No need char  No need char
# Line 3394  Need char = 'b' Line 3357  Need char = 'b'
3357    
3358  /(?=a).*/I  /(?=a).*/I
3359  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3360  No options  No options
3361  First char = 'a'  First char = 'a'
3362  No need char  No need char
# Line 3441  No options Line 3403  No options
3403  No first char  No first char
3404  Need char = 'a'  Need char = 'a'
3405    
3406  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3407  Capturing subpattern count = 0  Capturing subpattern count = 1
3408  No options  No options
3409  First char = 'a'  First char = 'a'
3410  No need char  No need char
3411    
3412  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3413  Capturing subpattern count = 0  Capturing subpattern count = 1
3414  No options  No options
3415  First char = 'a'  First char = 'a'
3416  Need char = 'z'  Need char = 'z'
3417    
3418  /(?(1)abz)/I  /(?(1)abz)(.)/I
3419  Capturing subpattern count = 0  Capturing subpattern count = 1
3420  No options  No options
3421  No first char  No first char
3422  No need char  No need char
3423    
3424  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3425  Capturing subpattern count = 0  Capturing subpattern count = 1
3426  No options  No options
3427  No first char  No first char
3428  Need char = '3'  Need char = '3'
# Line 3500  Capturing subpattern count = 0 Line 3462  Capturing subpattern count = 0
3462  No options  No options
3463  No first char  No first char
3464  No need char  No need char
3465    Subject length lower bound = 1
3466  Starting byte set: a b  Starting byte set: a b
3467    
3468  /[^a]/I  /[^a]/I
# Line 3519  Capturing subpattern count = 0 Line 3482  Capturing subpattern count = 0
3482  No options  No options
3483  No first char  No first char
3484  Need char = '6'  Need char = '6'
3485    Subject length lower bound = 4
3486  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
3487    
3488  /a^b/I  /a^b/I
# Line 3552  Capturing subpattern count = 0 Line 3516  Capturing subpattern count = 0
3516  Options: caseless  Options: caseless
3517  No first char  No first char
3518  No need char  No need char
3519    Subject length lower bound = 1
3520  Starting byte set: A B a b  Starting byte set: A B a b
3521    
3522  /[ab](?i)cd/IS  /[ab](?i)cd/IS
# Line 3559  Capturing subpattern count = 0 Line 3524  Capturing subpattern count = 0
3524  No options  No options
3525  No first char  No first char
3526  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3527    Subject length lower bound = 3
3528  Starting byte set: a b  Starting byte set: a b
3529    
3530  /abc(?C)def/I  /abc(?C)def/I
# Line 3716  No need char Line 3682  No need char
3682    
3683  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3684  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3685  No options  No options
3686  No first char  No first char
3687  No need char  No need char
# Line 3845  Callout 0: last capture = 1 Line 3810  Callout 0: last capture = 1
3810    
3811  /a(b+)(c*)(?C1)/I  /a(b+)(c*)(?C1)/I
3812  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3813  No options  No options
3814  First char = 'a'  First char = 'a'
3815  Need char = 'b'  Need char = 'b'
# Line 3871  No match Line 3835  No match
3835    
3836  /a(b+?)(c*?)(?C1)/I  /a(b+?)(c*?)(?C1)/I
3837  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3838  No options  No options
3839  First char = 'a'  First char = 'a'
3840  Need char = 'b'  Need char = 'b'
# Line 3912  Capturing subpattern count = 0 Line 3875  Capturing subpattern count = 0
3875  No options  No options
3876  No first char  No first char
3877  No need char  No need char
3878    Subject length lower bound = 1
3879  Starting byte set: a b  Starting byte set: a b
3880    
3881  /(?R)/I  /(?R)/I
# Line 4031  No options Line 3995  No options
3995  First char = 'a'  First char = 'a'
3996  Need char = 'b'  Need char = 'b'
3997    
 /^\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  
   
3998  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3999  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4000  Options: anchored  Options: anchored
4001  No first char  No first char
4002  No need char  No need char
# Line 4108  No match Line 4037  No match
4037    
4038  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4039  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4040  Options: extended  Options: extended
4041  First char = '<'  First char = '<'
4042  Need char = '>'  Need char = '>'
# Line 4282  Named capturing subpatterns: Line 4210  Named capturing subpatterns:
4210    one     1    one     1
4211    three   3    three   3
4212    two     2    two     2
 Partial matching not supported  
4213  Options: anchored caseless  Options: anchored caseless
4214  No first char  No first char
4215  No need char  No need char
# Line 4328  No need char Line 4255  No need char
4255    
4256  /(.*)a/Is  /(.*)a/Is
4257  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4258  Options: anchored dotall  Options: anchored dotall
4259  No first char  No first char
4260  Need char = 'a'  Need char = 'a'
# Line 4336  Need char = 'a' Line 4262  Need char = 'a'
4262  /(.*)a\1/Is  /(.*)a\1/Is
4263  Capturing subpattern count = 1  Capturing subpattern count = 1
4264  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4265  Options: dotall  Options: dotall
4266  No first char  No first char
4267  Need char = 'a'  Need char = 'a'
# Line 4344  Need char = 'a' Line 4269  Need char = 'a'
4269  /(.*)a(b)\2/Is  /(.*)a(b)\2/Is
4270  Capturing subpattern count = 2  Capturing subpattern count = 2
4271  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4272  Options: anchored dotall  Options: anchored dotall
4273  No first char  No first char
4274  Need char = 'b'  Need char = 'b'
4275    
4276  /((.*)a|(.*)b)z/Is  /((.*)a|(.*)b)z/Is
4277  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4278  Options: anchored dotall  Options: anchored dotall
4279  No first char  No first char
4280  Need char = 'z'  Need char = 'z'
# Line 4359  Need char = 'z' Line 4282  Need char = 'z'
4282  /((.*)a|(.*)b)z\1/Is  /((.*)a|(.*)b)z\1/Is
4283  Capturing subpattern count = 3  Capturing subpattern count = 3
4284  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4285  Options: dotall  Options: dotall
4286  No first char  No first char
4287  Need char = 'z'  Need char = 'z'
# Line 4367  Need char = 'z' Line 4289  Need char = 'z'
4289  /((.*)a|(.*)b)z\2/Is  /((.*)a|(.*)b)z\2/Is
4290  Capturing subpattern count = 3  Capturing subpattern count = 3
4291  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4292  Options: dotall  Options: dotall
4293  No first char  No first char
4294  Need char = 'z'  Need char = 'z'
# Line 4375  Need char = 'z' Line 4296  Need char = 'z'
4296  /((.*)a|(.*)b)z\3/Is  /((.*)a|(.*)b)z\3/Is
4297  Capturing subpattern count = 3  Capturing subpattern count = 3
4298  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4299  Options: dotall  Options: dotall
4300  No first char  No first char
4301  Need char = 'z'  Need char = 'z'
# Line 4383  Need char = 'z' Line 4303  Need char = 'z'
4303  /((.*)a|^(.*)b)z\3/Is  /((.*)a|^(.*)b)z\3/Is
4304  Capturing subpattern count = 3  Capturing subpattern count = 3
4305  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4306  Options: anchored dotall  Options: anchored dotall
4307  No first char  No first char
4308  Need char = 'z'  Need char = 'z'
4309    
4310  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4311  Capturing subpattern count = 31  Capturing subpattern count = 31
 Partial matching not supported  
4312  Options: anchored dotall  Options: anchored dotall
4313  No first char  No first char
4314  No need char  No need char
# Line 4398  No need char Line 4316  No need char
4316  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4317  Capturing subpattern count = 31  Capturing subpattern count = 31
4318  Max back reference = 31  Max back reference = 31
 Partial matching not supported  
4319  Options: dotall  Options: dotall
4320  No first char  No first char
4321  No need char  No need char
# Line 4406  No need char Line 4323  No need char
4323  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4324  Capturing subpattern count = 32  Capturing subpattern count = 32
4325  Max back reference = 32  Max back reference = 32
 Partial matching not supported  
4326  Options: dotall  Options: dotall
4327  No first char  No first char
4328  No need char  No need char
# Line 4473  Need char = 'c' Line 4389  Need char = 'c'
4389    
4390  /(a+)*zz/I  /(a+)*zz/I
4391  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4392  No options  No options
4393  No first char  No first char
4394  Need char = 'z'  Need char = 'z'
# Line 4610  Failed: two named subpatterns have the s Line 4525  Failed: two named subpatterns have the s
4525  Capturing subpattern count = 3  Capturing subpattern count = 3
4526  Named capturing subpatterns:  Named capturing subpatterns:
4527    elem   2    elem   2
 Partial matching not supported  
4528  No options  No options
4529  First char = '['  First char = '['
4530  Need char = ']'  Need char = ']'
# Line 4628  No match Line 4542  No match
4542  Capturing subpattern count = 3  Capturing subpattern count = 3
4543  Named capturing subpatterns:  Named capturing subpatterns:
4544    elem   2    elem   2
 Partial matching not supported  
4545  No options  No options
4546  First char = '['  First char = '['
4547  Need char = ']'  Need char = ']'
# Line 4735  No need char Line 4648  No need char
4648    
4649  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4650  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4651  Options: caseless  Options: caseless
4652  No first char  No first char
4653  Need char = 'g' (caseless)  Need char = 'g' (caseless)
# Line 4745  Need char = 'g' (caseless) Line 4657  Need char = 'g' (caseless)
4657    
4658  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4659  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4660  Options: caseless  Options: caseless
4661  No first char  No first char
4662  Need char = 'g' (caseless)  Need char = 'g' (caseless)
4663  Study returned NULL  Subject length lower bound = 8
4664    No set of starting bytes
4665       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
4666   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4667   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 4764  Study returned NULL Line 4676  Study returned NULL
4676          End          End
4677  ------------------------------------------------------------------  ------------------------------------------------------------------
4678  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4679  No options  No options
4680  No first char  No first char
4681  Need char = 'b'  Need char = 'b'
4682  Study returned NULL  Subject length lower bound = 1
4683    No set of starting bytes
4684    
4685  /(a|b)*.?c/ISDZ  /(a|b)*.?c/ISDZ
4686  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4788  Capturing subpattern count = 1 Line 4700  Capturing subpattern count = 1
4700  No options  No options
4701  No first char  No first char
4702  Need char = 'c'  Need char = 'c'
4703  Study returned NULL  Subject length lower bound = 1
4704    No set of starting bytes
4705    
4706  /abc(?C255)de(?C)f/DZ  /abc(?C255)de(?C)f/DZ
4707  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4857  No match Line 4770  No match
4770          End          End
4771  ------------------------------------------------------------------  ------------------------------------------------------------------
4772  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4773  Options:  Options:
4774  No first char  No first char
4775  Need char = 'b'  Need char = 'b'
# Line 4902  Need char = 'b' Line 4814  Need char = 'b'
4814          End          End
4815  ------------------------------------------------------------------  ------------------------------------------------------------------
4816  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4817  Options:  Options:
4818  First char = 'a'  First char = 'a'
4819  Need char = 'b'  Need char = 'b'
# Line 5340  No match Line 5251  No match
5251          End          End
5252  ------------------------------------------------------------------  ------------------------------------------------------------------
5253  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
5254  Options:  Options:
5255  No first char  No first char
5256  Need char = '3'  Need char = '3'
# Line 5372  Need char = '3' Line 5282  Need char = '3'
5282    
5283  /\b.*/I  /\b.*/I
5284  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5285  No options  No options
5286  No first char  No first char
5287  No need char  No need char
# Line 5381  No need char Line 5290  No need char
5290    
5291  /\b.*/Is  /\b.*/Is
5292  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5293  Options: dotall  Options: dotall
5294  No first char  No first char
5295  No need char  No need char
# Line 5390  No need char Line 5298  No need char
5298    
5299  /(?!.bcd).*/I  /(?!.bcd).*/I
5300  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5301  No options  No options
5302  No first char  No first char
5303  No need char  No need char
# Line 5403  No options Line 5310  No options
5310  First char = 'a'  First char = 'a'
5311  Need char = 'e'  Need char = 'e'
5312      ab\P      ab\P
5313  Partial match  Partial match: ab
5314      abc\P      abc\P
5315  Partial match  Partial match: abc
5316      abcd\P      abcd\P
5317  Partial match  Partial match: abcd
5318      abcde\P      abcde\P
5319   0: abcde   0: abcde
5320      the quick brown abc\P      the quick brown abc\P
5321  Partial match  Partial match: abc
5322      ** Failers\P      ** Failers\P
5323  No match  No match
5324      the quick brown abxyz fox\P      the quick brown abxyz fox\P
# Line 5436  Need char = '/' Line 5343  Need char = '/'
5343   1: 02   1: 02
5344   2: 05   2: 05
5345      1\P      1\P
5346  Partial match  Partial match: 1
5347      1/2\P      1/2\P
5348  Partial match  Partial match: 1/2
5349      1/2/0\P      1/2/0\P
5350  Partial match  Partial match: 1/2/0
5351      1/2/04\P      1/2/04\P
5352   0: 1/2/04   0: 1/2/04
5353   1: 1   1: 1
5354   2: 2   2: 2
5355      0\P      0\P
5356  Partial match  Partial match: 0
5357      02/\P      02/\P
5358  Partial match  Partial match: 02/
5359      02/0\P      02/0\P
5360  Partial match  Partial match: 02/0
5361      02/1\P      02/1\P
5362  Partial match  Partial match: 02/1
5363      ** Failers\P      ** Failers\P
5364  No match  No match
5365      \P      \P
# Line 5474  No match Line 5381  No match
5381    
5382  /0{0,2}ABC/I  /0{0,2}ABC/I
5383  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5384  No options  No options
5385  No first char  No first char
5386  Need char = 'C'  Need char = 'C'
5387    
5388  /\d{3,}ABC/I  /\d{3,}ABC/I
5389  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5390  No options  No options
5391  No first char  No first char
5392  Need char = 'C'  Need char = 'C'
5393    
5394  /\d*ABC/I  /\d*ABC/I
5395  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5396  No options  No options
5397  No first char  No first char
5398  Need char = 'C'  Need char = 'C'
5399    
5400  /[abc]+DE/I  /[abc]+DE/I
5401  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5402  No options  No options
5403  No first char  No first char
5404  Need char = 'E'  Need char = 'E'
# Line 5508  Need char = '3' Line 5411  Need char = '3'
5411      123\P      123\P
5412   0: 123   0: 123
5413      a\P      a\P
5414  Partial match  Partial match: a
5415      b\P      b\P
5416  Partial match  Partial match: b
5417      c\P      c\P
5418  Partial match  Partial match: c
5419      c12\P      c12\P
5420  Partial match  Partial match: c12
5421      c123\P      c123\P
5422   0: c123   0: c123
5423    
# Line 5524  Options: anchored Line 5427  Options: anchored
5427  No first char  No first char
5428  Need char = 'X'  Need char = 'X'
5429      1\P      1\P
5430  Partial match  Partial match: 1
5431      123\P      123\P
5432  Partial match  Partial match: 123
5433      123X      123X
5434   0: 123X   0: 123X
5435      1234\P      1234\P
5436  Partial match  Partial match: 1234
5437      1234X      1234X
5438   0: 1234X   0: 1234X
5439      12345\P      12345\P
5440  Partial match  Partial match: 12345
5441      12345X      12345X
5442   0: 12345X   0: 12345X
5443      *** Failers      *** Failers
# Line 5581  Capturing subpattern count = 1 Line 5484  Capturing subpattern count = 1
5484  No options  No options
5485  No first char  No first char
5486  No need char  No need char
5487    Subject length lower bound = 1
5488  Starting byte set: a b  Starting byte set: a b
5489  Compiled regex written to testsavedregex  Compiled regex written to testsavedregex
5490  Study data written to testsavedregex  Study data written to testsavedregex
# Line 5601  Capturing subpattern count = 1 Line 5505  Capturing subpattern count = 1
5505  No options  No options
5506  No first char  No first char
5507  No need char  No need char
5508    Subject length lower bound = 1
5509  Starting byte set: a b  Starting byte set: a b
5510  Compiled regex written to testsavedregex  Compiled regex written to testsavedregex
5511  Study data written to testsavedregex  Study data written to testsavedregex
# Line 5619  No match Line 5524  No match
5524  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5525  Capturing subpattern count = 3  Capturing subpattern count = 3
5526  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
5527  Options: multiline dotall  Options: multiline dotall
5528  First char = '<'  First char = '<'
5529  Need char = '>'  Need char = '>'
# Line 5672  No match Line 5576  No match
5576      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5577  No match  No match
5578    
5579  /ab.cd/IP  /ab.cd/P
5580      ab-cd      ab-cd
5581   0: ab-cd   0: ab-cd
5582      ab=cd      ab=cd
# Line 5682  No match: POSIX code 17: match failed Line 5586  No match: POSIX code 17: match failed
5586      ab\ncd      ab\ncd
5587  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
5588    
5589  /ab.cd/IPs  /ab.cd/Ps
5590      ab-cd      ab-cd
5591   0: ab-cd   0: ab-cd
5592      ab=cd      ab=cd
# Line 5926  Matched, but too many substrings Line 5830  Matched, but too many substrings
5830    
5831  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
5832  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5833  No options  No options
5834  No first char  No first char
5835  No need char  No need char
# Line 5939  No need char Line 5842  No need char
5842    
5843  /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
5844  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5845  No options  No options
5846  No first char  No first char
5847  No need char  No need char
# Line 5950  No need char Line 5852  No need char
5852    
5853  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
5854  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5855  No options  No options
5856  No first char  No first char
5857  No need char  No need char
# Line 5961  No need char Line 5862  No need char
5862    
5863  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
5864  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5865  No options  No options
5866  No first char  No first char
5867  No need char  No need char
# Line 5974  No need char Line 5874  No need char
5874    
5875  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
5876  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5877  No options  No options
5878  No first char  No first char
5879  No need char  No need char
# Line 5987  No need char Line 5886  No need char
5886      ((this))      ((this))
5887   0: ((this))   0: ((this))
5888    
5889  /a(b)c/IPN  /a(b)c/PN
5890      abc      abc
5891  Matched with REG_NOSUB  Matched with REG_NOSUB
5892    
5893  /a(?P<name>b)c/IPN  /a(?P<name>b)c/PN
5894      abc      abc
5895  Matched with REG_NOSUB  Matched with REG_NOSUB
5896    
# Line 6316  Failed: octal value is greater than \377 Line 6215  Failed: octal value is greater than \377
6215    
6216  /\s*,\s*/IS  /\s*,\s*/IS
6217  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6218  No options  No options
6219  No first char  No first char
6220  Need char = ','  Need char = ','
6221    Subject length lower bound = 1
6222  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6223      \x0b,\x0b      \x0b,\x0b
6224   0: ,   0: ,
# Line 6446  Unknown newline type at: <bad> Line 6345  Unknown newline type at: <bad>
6345    
6346  /.*/I<lf>  /.*/I<lf>
6347  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6348  Options:  Options:
6349  Forced newline sequence: LF  Forced newline sequence: LF
6350  First char at start or follows newline  First char at start or follows newline
# Line 6472  No need char Line 6370  No need char
6370    
6371  /\w+(.)(.)?def/Is  /\w+(.)(.)?def/Is
6372  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
6373  Options: dotall  Options: dotall
6374  No first char  No first char
6375  Need char = 'f'  Need char = 'f'
# Line 6489  Need char = 'f' Line 6386  Need char = 'f'
6386    
6387  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6388  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6389  No options  No options
6390  No first char  No first char
6391  No need char  No need char
# Line 6624  No need char Line 6520  No need char
6520    
6521  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
6522  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6523  No options  No options
6524  No first char  No first char
6525  No need char  No need char
6526    Subject length lower bound = 1
6527  Starting byte set: C a b c d  Starting byte set: C a b c d
6528    
6529  /()[ab]xyz/IS  /()[ab]xyz/IS
# Line 6635  Capturing subpattern count = 1 Line 6531  Capturing subpattern count = 1
6531  No options  No options
6532  No first char  No first char
6533  Need char = 'z'  Need char = 'z'
6534    Subject length lower bound = 4
6535  Starting byte set: a b  Starting byte set: a b
6536    
6537  /(|)[ab]xyz/IS  /(|)[ab]xyz/IS
# Line 6642  Capturing subpattern count = 1 Line 6539  Capturing subpattern count = 1
6539  No options  No options
6540  No first char  No first char
6541  Need char = 'z'  Need char = 'z'
6542    Subject length lower bound = 4
6543  Starting byte set: a b  Starting byte set: a b
6544    
6545  /(|c)[ab]xyz/IS  /(|c)[ab]xyz/IS
# Line 6649  Capturing subpattern count = 1 Line 6547  Capturing subpattern count = 1
6547  No options  No options
6548  No first char  No first char
6549  Need char = 'z'  Need char = 'z'
6550    Subject length lower bound = 4
6551  Starting byte set: a b c  Starting byte set: a b c
6552    
6553  /(|c?)[ab]xyz/IS  /(|c?)[ab]xyz/IS
# Line 6656  Capturing subpattern count = 1 Line 6555  Capturing subpattern count = 1
6555  No options  No options
6556  No first char  No first char
6557  Need char = 'z'  Need char = 'z'
6558    Subject length lower bound = 4
6559  Starting byte set: a b c  Starting byte set: a b c
6560    
6561  /(d?|c?)[ab]xyz/IS  /(d?|c?)[ab]xyz/IS
# Line 6663  Capturing subpattern count = 1 Line 6563  Capturing subpattern count = 1
6563  No options  No options
6564  No first char  No first char
6565  Need char = 'z'  Need char = 'z'
6566    Subject length lower bound = 4
6567  Starting byte set: a b c d  Starting byte set: a b c d
6568    
6569  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
# Line 6670  Capturing subpattern count = 1 Line 6571  Capturing subpattern count = 1
6571  No options  No options
6572  No first char  No first char
6573  Need char = 'z'  Need char = 'z'
6574    Subject length lower bound = 4
6575  Starting byte set: a b c d  Starting byte set: a b c d
6576    
6577  /^a*b\d/DZ  /^a*b\d/DZ
# Line 6683  Starting byte set: a b c d Line 6585  Starting byte set: a b c d
6585          End          End
6586  ------------------------------------------------------------------  ------------------------------------------------------------------
6587  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6588  Options: anchored  Options: anchored
6589  No first char  No first char
6590  Need char = 'b'  Need char = 'b'
# Line 6699  Need char = 'b' Line 6600  Need char = 'b'
6600          End          End
6601  ------------------------------------------------------------------  ------------------------------------------------------------------
6602  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6603  Options: anchored  Options: anchored
6604  No first char  No first char
6605  Need char = 'b'  Need char = 'b'
# Line 6715  Need char = 'b' Line 6615  Need char = 'b'
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 6731  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 = 'A'  Need char = 'A'
# Line 6753  No match Line 6651  No match
6651          End          End
6652  ------------------------------------------------------------------  ------------------------------------------------------------------
6653  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6654  Options: anchored caseless  Options: anchored caseless
6655  No first char  No first char
6656  Need char = 'A' (caseless)  Need char = 'A' (caseless)
# Line 6764  Need char = 'A' (caseless) Line 6661  Need char = 'A' (caseless)
6661    
6662  /(a*|b*)[cd]/IS  /(a*|b*)[cd]/IS
6663  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6664  No options  No options
6665  No first char  No first char
6666  No need char  No need char
6667    Subject length lower bound = 1
6668  Starting byte set: a b c d  Starting byte set: a b c d
6669    
6670  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
6671  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6672  No options  No options
6673  No first char  No first char
6674  No need char  No need char
6675    Subject length lower bound = 1
6676  Starting byte set: a b c d  Starting byte set: a b c d
6677    
6678  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
6679  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6680  No options  No options
6681  No first char  No first char
6682  No need char  No need char
6683    Subject length lower bound = 1
6684  Starting byte set: a b c d  Starting byte set: a b c d
6685    
6686  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
6687  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6688  No options  No options
6689  No first char  No first char
6690  No need char  No need char
6691    Subject length lower bound = 2
6692  Starting byte set: a b  Starting byte set: a b
6693    
6694  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
# Line 7597  No match Line 7494  No match
7494          ^          ^
7495          CBra 1          CBra 1
7496          Cond          Cond
7497        2 Cond ref        2 Cond nref
7498          y          y
7499          Ket          Ket
7500          [()]          [()]
# Line 7663  Named capturing subpatterns: Line 7560  Named capturing subpatterns:
7560    one     1    one     1
7561    three   3    three   3
7562    two     2    two     2
 Partial matching not supported  
7563  Options: anchored caseless  Options: anchored caseless
7564  No first char  No first char
7565  No need char  No need char
# Line 7697  No match Line 7593  No match
7593  /(?=(\w+))\1:/I  /(?=(\w+))\1:/I
7594  Capturing subpattern count = 1  Capturing subpattern count = 1
7595  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
7596  No options  No options
7597  No first char  No first char
7598  Need char = ':'  Need char = ':'
# Line 7710  Capturing subpattern count = 1 Line 7605  Capturing subpattern count = 1
7605  Max back reference = 1  Max back reference = 1
7606  Named capturing subpatterns:  Named capturing subpatterns:
7607    abc   1    abc   1
 Partial matching not supported  
7608  No options  No options
7609  No first char  No first char
7610  Need char = ':'  Need char = ':'
# Line 7718  Need char = ':' Line 7612  Need char = ':'
7612   0: abcd:   0: abcd:
7613   1: abcd   1: abcd
7614    
 /(?'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  
   
7615  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7616      adaa      adaa
7617   0: adaa   0: adaa
# Line 7758  No match Line 7638  No match
7638      bddd      bddd
7639  No match  No match
7640    
 /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x  
     abd  
  0: abd  
  1: a  
     ce  
  0: ce  
   
7641  /(?(<bc))/  /(?(<bc))/
7642  Failed: malformed number or name after (?( at offset 6  Failed: malformed number or name after (?( at offset 6
7643    
# Line 7795  Failed: reference to non-existent subpat Line 7668  Failed: reference to non-existent subpat
7668   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7669   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7670    
 /^(?(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>  
   
7671  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7672  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7673    
# Line 7854  No match Line 7709  No match
7709  No match  No match
7710    
7711  /^abc./mgx<any>  /^abc./mgx<any>
7712      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
7713   0: abc1   0: abc1
7714   0: abc2   0: abc2
7715   0: abc3   0: abc3
# Line 7864  No match Line 7719  No match
7719   0: abc7   0: abc7
7720    
7721  /abc.$/mgx<any>  /abc.$/mgx<any>
7722      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
7723   0: abc1   0: abc1
7724   0: abc2   0: abc2
7725   0: abc3   0: abc3
# Line 7990  Need char = 'P' Line 7845  Need char = 'P'
7845   0: PXP   0: PXP
7846   1: P   1: P
7847    
 /(?(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  
   
7848  /(?:a(?&abc)b)*(?<abc>x)/  /(?:a(?&abc)b)*(?<abc>x)/
7849      123axbaxbaxbx456      123axbaxbaxbx456
7850   0: axbaxbaxbx   0: axbaxbaxbx
# Line 8067  No match Line 7882  No match
7882     DEFabcABCXYZ     DEFabcABCXYZ
7883  No match  No match
7884    
 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/  
     ababababbbabZXXXX  
  0: ababababbbabZ  
  1: ab  
  2: b  
   
7885  /^(a)\g-2/  /^(a)\g-2/
7886  Failed: reference to non-existent subpattern at offset 7  Failed: reference to non-existent subpattern at offset 7
7887    
7888  /^(a)\g/  /^(a)\g/
7889  Failed: \g is not followed by a braced name or an optionally braced non-zero number at offset 5  Failed: a numbered reference must not be zero at offset 5
7890    
7891  /^(a)\g{0}/  /^(a)\g{0}/
7892  Failed: \g is not followed by a braced name or an optionally braced non-zero number at offset 7  Failed: a numbered reference must not be zero at offset 8
7893    
7894  /^(a)\g{3/  /^(a)\g{3/
7895  Failed: \g is not followed by a braced name or an optionally braced non-zero number at offset 8  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
7896    
7897  /^(a)\g{4a}/  /^(a)\g{4a}/
7898  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
# Line 8166  No match Line 7975  No match
7975   0+   0+
7976    
7977  /abc.$/mgx<anycrlf>  /abc.$/mgx<anycrlf>
7978      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
7979   0: abc1   0: abc1
7980   0: abc4   0: abc4
7981   0: abc5   0: abc5
# Line 8220  No match Line 8029  No match
8029  No match  No match
8030    
8031  /x(?-0)y/  /x(?-0)y/
8032  Failed: (?+ or (?- or (?(+ or (?(- must be followed by a non-zero number at offset 5  Failed: a numbered reference must not be zero at offset 5
8033    
8034  /x(?-1)y/  /x(?-1)y/
8035  Failed: reference to non-existent subpattern at offset 5  Failed: reference to non-existent subpattern at offset 5
8036    
8037  /x(?+0)y/  /x(?+0)y/
8038  Failed: (?+ or (?- or (?(+ or (?(- must be followed by a non-zero number at offset 5  Failed: a numbered reference must not be zero at offset 5
8039    
8040  /x(?+1)y/  /x(?+1)y/
8041  Failed: reference to non-existent subpattern at offset 5  Failed: reference to non-existent subpattern at offset 5
# Line 8308  Failed: reference to non-existent subpat Line 8117  Failed: reference to non-existent subpat
8117  /((?(-2)a))/BZ  /((?(-2)a))/BZ
8118  Failed: reference to non-existent subpattern at offset 7  Failed: reference to non-existent subpattern at offset 7
8119    
8120  /^(?(+1)X|Y)/BZ  /^(?(+1)X|Y)(.)/BZ
8121  ------------------------------------------------------------------  ------------------------------------------------------------------
8122          Bra          Bra
8123          ^          ^
# Line 8318  Failed: reference to non-existent subpat Line 8127  Failed: reference to non-existent subpat
8127          Alt          Alt
8128          Y          Y
8129          Ket          Ket
8130            CBra 1
8131            Any
8132            Ket
8133          Ket          Ket
8134          End          End
8135  ------------------------------------------------------------------  ------------------------------------------------------------------
8136      Y      Y!
8137   0: Y   0: Y!
8138     1: !
 /(foo)\Kbar/  
     foobar  
  0: bar  
  1: foo  
   
 /(foo)(\Kbar|baz)/  
     foobar  
  0: bar  
  1: foo  
  2: bar  
     foobaz  
  0: foobaz  
  1: foo  
  2: baz  
   
 /(foo\Kbar)baz/  
     foobarbaz  
  0: barbaz  
  1: foobar  
8139    
8140  /(?<A>tom|bon)-\k{A}/  /(?<A>tom|bon)-\k{A}/
8141      tom-tom      tom-tom
# Line 8356  No match Line 8149  No match
8149      tom-bon      tom-bon
8150  No match  No match
8151    
 /(?<A>tom|bon)-\g{A}/  
     tom-tom  
  0: tom-tom  
  1: tom  
     bon-bon  
  0: bon-bon  
  1: bon  
   
8152  /\g{A/  /\g{A/
8153  Failed: syntax error in subpattern name (missing terminator) at offset 4  Failed: syntax error in subpattern name (missing terminator) at offset 4
8154    
# Line 8458  Failed: syntax error in subpattern name Line 8243  Failed: syntax error in subpattern name
8243   3: <unset>   3: <unset>
8244   4: x   4: x
8245    
 /(?|(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  
   
8246  /[\h]/BZ  /[\h]/BZ
8247  ------------------------------------------------------------------  ------------------------------------------------------------------
8248          Bra          Bra
# Line 8830  Failed: missing terminating ] for charac Line 8539  Failed: missing terminating ] for charac
8539          End          End
8540  ------------------------------------------------------------------  ------------------------------------------------------------------
8541    
 /^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  
   
8542  /^a+(*FAIL)/C  /^a+(*FAIL)/C
8543      aaaaaa      aaaaaa
8544  --->aaaaaa  --->aaaaaa
# Line 9039  No match Line 8667  No match
8667  +13   ^  ^      (*FAIL)  +13   ^  ^      (*FAIL)
8668  No match  No match
8669    
 /a(*PRUNE:XXX)b/  
 Failed: (*VERB) with an argument is not supported at offset 8  
   
8670  /a(*MARK)b/  /a(*MARK)b/
8671  Failed: (*VERB) not recognized at offset 7  Failed: (*MARK) must have an argument at offset 7
8672    
8673  /(?i:A{1,}\6666666666)/  /(?i:A{1,}\6666666666)/
8674  Failed: number is too big at offset 19  Failed: number is too big at offset 19
# Line 9215  No match Line 8840  No match
8840    
8841  /a\R{2,4}b/I<bsr_anycrlf>  /a\R{2,4}b/I<bsr_anycrlf>
8842  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
8843  Options: bsr_anycrlf  Options: bsr_anycrlf
8844  First char = 'a'  First char = 'a'
8845  Need char = 'b'  Need char = 'b'
# Line 9234  No match Line 8858  No match
8858    
8859  /a\R{2,4}b/I<bsr_unicode>  /a\R{2,4}b/I<bsr_unicode>
8860  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
8861  Options: bsr_unicode  Options: bsr_unicode
8862  First char = 'a'  First char = 'a'
8863  Need char = 'b'  Need char = 'b'
# Line 9303  First char = 'a' Line 8926  First char = 'a'
8926  Need char = 'b'  Need char = 'b'
8927    
8928  /(?<a>)(?&)/  /(?<a>)(?&)/
8929  Failed: subpattern name expected after (?& at offset 9  Failed: subpattern name expected at offset 9
8930    
8931  /(?<abc>)(?&a)/  /(?<abc>)(?&a)/
8932  Failed: reference to non-existent subpattern at offset 12  Failed: reference to non-existent subpattern at offset 12
# Line 9317  Failed: digit expected after (?+ at offs Line 8940  Failed: digit expected after (?+ at offs
8940  /(?-+a)/  /(?-+a)/
8941  Failed: unrecognized character after (? or (?- at offset 3  Failed: unrecognized character after (? or (?- at offset 3
8942    
8943  / End of testinput2 /  /(?(-1))/
8944    Failed: reference to non-existent subpattern at offset 6
8945    
8946    /(?(+10))/
8947    Failed: reference to non-existent subpattern at offset 7
8948    
8949    /(?(10))/
8950    Failed: reference to non-existent subpattern at offset 6
8951    
8952    /(?(+2))()()/
8953    
8954    /(?(2))()()/
8955    
8956    /\k''/
8957    Failed: subpattern name expected at offset 3
8958    
8959    /\k<>/
8960    Failed: subpattern name expected at offset 3
8961    
8962    /\k{}/
8963    Failed: subpattern name expected at offset 3
8964    
8965    /(?P=)/
8966    Failed: subpattern name expected at offset 4
8967    
8968    /(?P>)/
8969    Failed: subpattern name expected at offset 4
8970    
8971    /(?!\w)(?R)/
8972    Failed: recursive call could loop indefinitely at offset 9
8973    
8974    /(?=\w)(?R)/
8975    Failed: recursive call could loop indefinitely at offset 9
8976    
8977    /(?<!\w)(?R)/
8978    Failed: recursive call could loop indefinitely at offset 10
8979    
8980    /(?<=\w)(?R)/
8981    Failed: recursive call could loop indefinitely at offset 10
8982    
8983    /[[:foo:]]/
8984    Failed: unknown POSIX class name at offset 3
8985    
8986    /[[:1234:]]/
8987    Failed: unknown POSIX class name at offset 3
8988    
8989    /[[:f\oo:]]/
8990    Failed: unknown POSIX class name at offset 3
8991    
8992    /[[: :]]/
8993    Failed: unknown POSIX class name at offset 3
8994    
8995    /[[:...:]]/
8996    Failed: unknown POSIX class name at offset 3
8997    
8998    /[[:l\ower:]]/
8999    Failed: unknown POSIX class name at offset 3
9000    
9001    /[[:abc\:]]/
9002    Failed: unknown POSIX class name at offset 3
9003    
9004    /[abc[:x\]pqr:]]/
9005    Failed: unknown POSIX class name at offset 6
9006    
9007    /[[:a\dz:]]/
9008    Failed: unknown POSIX class name at offset 3
9009    
9010    /(^(a|b\g<-1'c))/
9011    Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
9012    
9013    /^(?+1)(?<a>x|y){0}z/
9014        xzxx
9015     0: xz
9016        yzyy
9017     0: yz
9018        ** Failers
9019    No match
9020        xxz
9021    No match
9022    
9023    /(\3)(\1)(a)/
9024        cat
9025    No match
9026    
9027    /(\3)(\1)(a)/<JS>
9028        cat
9029     0: a
9030     1:
9031     2:
9032     3: a
9033    
9034    /TA]/
9035        The ACTA] comes
9036     0: TA]
9037    
9038    /TA]/<JS>
9039    Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
9040    
9041    /(?2)[]a()b](abc)/
9042    Failed: reference to non-existent subpattern at offset 3
9043    
9044    /(?2)[^]a()b](abc)/
9045    Failed: reference to non-existent subpattern at offset 3
9046    
9047    /(?1)[]a()b](abc)/
9048        abcbabc
9049     0: abcbabc
9050     1: abc
9051        ** Failers
9052    No match
9053        abcXabc
9054    No match
9055    
9056    /(?1)[^]a()b](abc)/
9057        abcXabc
9058     0: abcXabc
9059     1: abc
9060        ** Failers
9061    No match
9062        abcbabc
9063    No match
9064    
9065    /(?2)[]a()b](abc)(xyz)/
9066        xyzbabcxyz
9067     0: xyzbabcxyz
9068     1: abc
9069     2: xyz
9070    
9071    /(?&N)[]a(?<N>)](?<M>abc)/
9072    Failed: reference to non-existent subpattern at offset 4
9073    
9074    /(?&N)[]a(?<N>)](abc)/
9075    Failed: reference to non-existent subpattern at offset 4
9076    
9077    /a[]b/
9078    Failed: missing terminating ] for character class at offset 4
9079    
9080    /a[^]b/
9081    Failed: missing terminating ] for character class at offset 5
9082    
9083    /a[]b/<JS>
9084        ** Failers
9085    No match
9086        ab
9087    No match
9088    
9089    /a[]+b/<JS>
9090        ** Failers
9091    No match
9092        ab
9093    No match
9094    
9095    /a[]*+b/<JS>
9096        ** Failers
9097    No match
9098        ab
9099    No match
9100    
9101    /a[^]b/<JS>
9102        aXb
9103     0: aXb
9104        a\nb
9105     0: a\x0ab
9106        ** Failers
9107    No match
9108        ab
9109    No match
9110    
9111    /a[^]+b/<JS>
9112        aXb
9113     0: aXb
9114        a\nX\nXb
9115     0: a\x0aX\x0aXb
9116        ** Failers
9117    No match
9118        ab
9119    No match
9120    
9121    /a(?!)+b/
9122    Failed: nothing to repeat at offset 5
9123    
9124    /a(*FAIL)+b/
9125    Failed: nothing to repeat at offset 8
9126    
9127    /(abc|pqr|123){0}[xyz]/SI
9128    Capturing subpattern count = 1
9129    No options
9130    No first char
9131    No need char
9132    Subject length lower bound = 1
9133    Starting byte set: x y z
9134    
9135    /(?(?=.*b)b|^)/CI
9136    Capturing subpattern count = 0
9137    Options:
9138    No first char
9139    No need char
9140       adc
9141    --->adc
9142     +0 ^       (?(?=.*b)b|^)
9143     +2 ^       (?=.*b)
9144     +5 ^       .*
9145     +7 ^  ^    b
9146     +7 ^ ^     b
9147     +7 ^^      b
9148     +7 ^       b
9149    +12 ^       )
9150    +13 ^
9151     0:
9152       abc
9153    --->abc
9154     +0 ^       (?(?=.*b)b|^)
9155     +2 ^       (?=.*b)
9156     +5 ^       .*
9157     +7 ^  ^    b
9158     +7 ^ ^     b
9159     +7 ^^      b
9160     +8 ^ ^     )
9161     +9 ^       b
9162     +0  ^      (?(?=.*b)b|^)
9163     +2  ^      (?=.*b)
9164     +5  ^      .*
9165     +7  ^ ^    b
9166     +7  ^^     b
9167     +7  ^      b
9168     +8  ^^     )
9169     +9  ^      b
9170    +10  ^^     |
9171    +13  ^^
9172     0: b
9173    
9174    /(?(?=b).*b|^d)/I
9175    Capturing subpattern count = 0
9176    No options
9177    No first char
9178    No need char
9179    
9180    /(?(?=.*b).*b|^d)/I
9181    Capturing subpattern count = 0
9182    No options
9183    First char at start or follows newline
9184    No need char
9185    
9186    /a?|b?/P
9187        abc
9188     0: a
9189        ** Failers
9190     0:
9191        ddd\N
9192    No match: POSIX code 17: match failed
9193    
9194    /xyz/C
9195      xyz
9196    --->xyz
9197     +0 ^       x
9198     +1 ^^      y
9199     +2 ^ ^     z
9200     +3 ^  ^
9201     0: xyz
9202      abcxyz
9203    --->abcxyz
9204     +0    ^       x
9205     +1    ^^      y
9206     +2    ^ ^     z
9207     +3    ^  ^
9208     0: xyz
9209      abcxyz\Y
9210    --->abcxyz
9211     +0 ^          x
9212     +0  ^         x
9213     +0   ^        x
9214     +0    ^       x
9215     +1    ^^      y
9216     +2    ^ ^     z
9217     +3    ^  ^
9218     0: xyz
9219      ** Failers
9220    No match
9221      abc
9222    No match
9223      abc\Y
9224    --->abc
9225     +0 ^       x
9226     +0  ^      x
9227     +0   ^     x
9228     +0    ^    x
9229    No match
9230      abcxypqr
9231    No match
9232      abcxypqr\Y
9233    --->abcxypqr
9234     +0 ^            x
9235     +0  ^           x
9236     +0   ^          x
9237     +0    ^         x
9238     +1    ^^        y
9239     +2    ^ ^       z
9240     +0     ^        x
9241     +0      ^       x
9242     +0       ^      x
9243     +0        ^     x
9244     +0         ^    x
9245    No match
9246    
9247    /^"((?(?=[a])[^"])|b)*"$/C
9248        "ab"
9249    --->"ab"
9250     +0 ^        ^
9251     +1 ^        "
9252     +2 ^^       ((?(?=[a])[^"])|b)*
9253     +3 ^^       (?(?=[a])[^"])
9254     +5 ^^       (?=[a])
9255     +8 ^^       [a]
9256    +11 ^ ^      )
9257    +12 ^^       [^"]
9258    +16 ^ ^      )
9259    +17 ^ ^      |
9260     +3 ^ ^      (?(?=[a])[^"])
9261     +5 ^ ^      (?=[a])
9262     +8 ^ ^      [a]
9263    +21 ^ ^      "
9264    +18 ^ ^      b
9265    +19 ^  ^     )
9266     +3 ^  ^     (?(?=[a])[^"])
9267     +5 ^  ^     (?=[a])
9268     +8 ^  ^     [a]
9269    +21 ^  ^     "
9270    +22 ^   ^    $
9271    +23 ^   ^
9272     0: "ab"
9273     1:
9274    
9275    /^"((?(?=[a])[^"])|b)*"$/
9276        "ab"
9277     0: "ab"
9278     1:
9279    
9280    /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9281    Failed: reference to non-existent subpattern at offset 5
9282    
9283    /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9284        XYabcdY
9285     0: XYabcdY
9286     1: a
9287     2: b
9288     3: c
9289     4: d
9290     5: Y
9291    
9292    /Xa{2,4}b/
9293        X\P
9294    Partial match: X
9295        Xa\P
9296    Partial match: Xa
9297        Xaa\P
9298    Partial match: Xaa
9299        Xaaa\P
9300    Partial match: Xaaa
9301        Xaaaa\P
9302    Partial match: Xaaaa
9303    
9304    /Xa{2,4}?b/
9305        X\P
9306    Partial match: X
9307        Xa\P
9308    Partial match: Xa
9309        Xaa\P
9310    Partial match: Xaa
9311        Xaaa\P
9312    Partial match: Xaaa
9313        Xaaaa\P
9314    Partial match: Xaaaa
9315    
9316    /Xa{2,4}+b/
9317        X\P
9318    Partial match: X
9319        Xa\P
9320    Partial match: Xa
9321        Xaa\P
9322    Partial match: Xaa
9323        Xaaa\P
9324    Partial match: Xaaa
9325        Xaaaa\P
9326    Partial match: Xaaaa
9327    
9328    /X\d{2,4}b/
9329        X\P
9330    Partial match: X
9331        X3\P
9332    Partial match: X3
9333        X33\P
9334    Partial match: X33
9335        X333\P
9336    Partial match: X333
9337        X3333\P
9338    Partial match: X3333
9339    
9340    /X\d{2,4}?b/
9341        X\P
9342    Partial match: X
9343        X3\P
9344    Partial match: X3
9345        X33\P
9346    Partial match: X33
9347        X333\P
9348    Partial match: X333
9349        X3333\P
9350    Partial match: X3333
9351    
9352    /X\d{2,4}+b/
9353        X\P
9354    Partial match: X
9355        X3\P
9356    Partial match: X3
9357        X33\P
9358    Partial match: X33
9359        X333\P
9360    Partial match: X333
9361        X3333\P
9362    Partial match: X3333
9363    
9364    /X\D{2,4}b/
9365        X\P
9366    Partial match: X
9367        Xa\P
9368    Partial match: Xa
9369        Xaa\P
9370    Partial match: Xaa
9371        Xaaa\P
9372    Partial match: Xaaa
9373        Xaaaa\P
9374    Partial match: Xaaaa
9375    
9376    /X\D{2,4}?b/
9377        X\P
9378    Partial match: X
9379        Xa\P
9380    Partial match: Xa
9381        Xaa\P
9382    Partial match: Xaa
9383        Xaaa\P
9384    Partial match: Xaaa
9385        Xaaaa\P
9386    Partial match: Xaaaa
9387    
9388    /X\D{2,4}+b/
9389        X\P
9390    Partial match: X
9391        Xa\P
9392    Partial match: Xa
9393        Xaa\P
9394    Partial match: Xaa
9395        Xaaa\P
9396    Partial match: Xaaa
9397        Xaaaa\P
9398    Partial match: Xaaaa
9399    
9400    /X[abc]{2,4}b/
9401        X\P
9402    Partial match: X
9403        Xa\P
9404    Partial match: Xa
9405        Xaa\P
9406    Partial match: Xaa
9407        Xaaa\P
9408    Partial match: Xaaa
9409        Xaaaa\P
9410    Partial match: Xaaaa
9411    
9412    /X[abc]{2,4}?b/
9413        X\P
9414    Partial match: X
9415        Xa\P
9416    Partial match: Xa
9417        Xaa\P
9418    Partial match: Xaa
9419        Xaaa\P
9420    Partial match: Xaaa
9421        Xaaaa\P
9422    Partial match: Xaaaa
9423    
9424    /X[abc]{2,4}+b/
9425        X\P
9426    Partial match: X
9427        Xa\P
9428    Partial match: Xa
9429        Xaa\P
9430    Partial match: Xaa
9431        Xaaa\P
9432    Partial match: Xaaa
9433        Xaaaa\P
9434    Partial match: Xaaaa
9435    
9436    /X[^a]{2,4}b/
9437        X\P
9438    Partial match: X
9439        Xz\P
9440    Partial match: Xz
9441        Xzz\P
9442    Partial match: Xzz
9443        Xzzz\P
9444    Partial match: Xzzz
9445        Xzzzz\P
9446    Partial match: Xzzzz
9447    
9448    /X[^a]{2,4}?b/
9449        X\P
9450    Partial match: X
9451        Xz\P
9452    Partial match: Xz
9453        Xzz\P
9454    Partial match: Xzz
9455        Xzzz\P
9456    Partial match: Xzzz
9457        Xzzzz\P
9458    Partial match: Xzzzz
9459    
9460    /X[^a]{2,4}+b/
9461        X\P
9462    Partial match: X
9463        Xz\P
9464    Partial match: Xz
9465        Xzz\P
9466    Partial match: Xzz
9467        Xzzz\P
9468    Partial match: Xzzz
9469        Xzzzz\P
9470    Partial match: Xzzzz
9471    
9472    /(Y)X\1{2,4}b/
9473        YX\P
9474    Partial match: YX
9475        YXY\P
9476    Partial match: YXY
9477        YXYY\P
9478    Partial match: YXYY
9479        YXYYY\P
9480    Partial match: YXYYY
9481        YXYYYY\P
9482    Partial match: YXYYYY
9483    
9484    /(Y)X\1{2,4}?b/
9485        YX\P
9486    Partial match: YX
9487        YXY\P
9488    Partial match: YXY
9489        YXYY\P
9490    Partial match: YXYY
9491        YXYYY\P
9492    Partial match: YXYYY
9493        YXYYYY\P
9494    Partial match: YXYYYY
9495    
9496    /(Y)X\1{2,4}+b/
9497        YX\P
9498    Partial match: YX
9499        YXY\P
9500    Partial match: YXY
9501        YXYY\P
9502    Partial match: YXYY
9503        YXYYY\P
9504    Partial match: YXYYY
9505        YXYYYY\P
9506    Partial match: YXYYYY
9507    
9508    /\++\KZ|\d+X|9+Y/
9509        ++++123999\P
9510    Partial match: 123999
9511        ++++123999Y\P
9512     0: 999Y
9513        ++++Z1234\P
9514     0: Z
9515    
9516    /Z(*F)/
9517        Z\P
9518    No match
9519        ZA\P
9520    No match
9521    
9522    /Z(?!)/
9523        Z\P
9524    No match
9525        ZA\P
9526    No match
9527    
9528    /dog(sbody)?/
9529        dogs\P
9530     0: dog
9531        dogs\P\P
9532    Partial match: dogs
9533    
9534    /dog(sbody)??/
9535        dogs\P
9536     0: dog
9537        dogs\P\P
9538     0: dog
9539    
9540    /dog|dogsbody/
9541        dogs\P
9542     0: dog
9543        dogs\P\P
9544     0: dog
9545    
9546    /dogsbody|dog/
9547        dogs\P
9548     0: dog
9549        dogs\P\P
9550    Partial match: dogs
9551    
9552    /\bthe cat\b/
9553        the cat\P
9554     0: the cat
9555        the cat\P\P
9556    Partial match: the cat
9557    
9558    /abc/
9559       abc\P
9560     0: abc
9561       abc\P\P
9562     0: abc
9563    
9564    /\w+A/P
9565       CDAAAAB
9566     0: CDAAAA
9567    
9568    /\w+A/PU
9569       CDAAAAB
9570     0: CDA
9571    
9572    /abc\K123/
9573        xyzabc123pqr
9574     0: 123
9575        xyzabc12\P
9576    Partial match: abc12
9577        xyzabc12\P\P
9578    Partial match: abc12
9579    
9580    /(?<=abc)123/
9581        xyzabc123pqr
9582     0: 123
9583        xyzabc12\P
9584    Partial match: abc12
9585        xyzabc12\P\P
9586    Partial match: abc12
9587    
9588    /\babc\b/
9589        +++abc+++
9590     0: abc
9591        +++ab\P
9592    Partial match: +ab
9593        +++ab\P\P
9594    Partial match: +ab
9595    
9596    /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9597    ------------------------------------------------------------------
9598            Bra
9599            Once
9600            Recurse
9601            Ket
9602            Once
9603            Recurse
9604            Ket
9605            Cond
9606            Cond def
9607            CBra 1
9608            <
9609            [^m]
9610            [^>]
9611            >
9612            [^<]
9613            Ket
9614            CBra 2
9615            \w*+
9616            Ket
9617            Ket
9618            Ket
9619            End
9620    ------------------------------------------------------------------
9621    
9622    /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9623    ------------------------------------------------------------------
9624            Bra
9625            Once
9626            Recurse
9627            Ket
9628            Once
9629            Recurse
9630            Ket
9631            Cond
9632            Cond def
9633            CBra 1
9634            <
9635            [\x00-/:-\xff] (neg)
9636            [^>]
9637            >
9638            [^<]
9639            Ket
9640            CBra 2
9641            \w*+
9642            Ket
9643            Ket
9644            Ket
9645            End
9646    ------------------------------------------------------------------
9647    
9648    /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9649    ------------------------------------------------------------------
9650            Bra
9651            CBra 1
9652            ab
9653            Ket
9654            CBra 2
9655            x
9656            CBra 3
9657            y
9658            Ket
9659            z
9660            CBra 4
9661            cd
9662            Close 4
9663            Close 2
9664            *ACCEPT
9665            Ket
9666            Ket
9667            pq
9668            Ket
9669            End
9670    ------------------------------------------------------------------
9671    
9672    /abc\K/+
9673        abcdef
9674     0:
9675     0+ def
9676        abcdef\N\N
9677     0:
9678     0+ def
9679        xyzabcdef\N\N
9680     0:
9681     0+ def
9682        ** Failers
9683    No match
9684        abcdef\N
9685    No match
9686        xyzabcdef\N
9687    No match
9688    
9689    /^(?:(?=abc)|abc\K)/+
9690        abcdef
9691     0:
9692     0+ abcdef
9693        abcdef\N\N
9694     0:
9695     0+ def
9696        ** Failers
9697    No match
9698        abcdef\N
9699    No match
9700    
9701    /a?b?/+
9702        xyz
9703     0:
9704     0+ xyz
9705        xyzabc
9706     0:
9707     0+ xyzabc
9708        xyzabc\N
9709     0: ab
9710     0+ c
9711        xyzabc\N\N
9712     0:
9713     0+ yzabc
9714        xyz\N\N
9715     0:
9716     0+ yz
9717        ** Failers
9718     0:
9719     0+ ** Failers
9720        xyz\N
9721    No match
9722    
9723    /^a?b?/+
9724        xyz
9725     0:
9726     0+ xyz
9727        xyzabc
9728     0:
9729     0+ xyzabc
9730        ** Failers
9731     0:
9732     0+ ** Failers
9733        xyzabc\N
9734    No match
9735        xyzabc\N\N
9736    No match
9737        xyz\N\N
9738    No match
9739        xyz\N
9740    No match
9741    
9742    /^(?<name>a|b\g<name>c)/
9743        aaaa
9744     0: a
9745     1: a
9746        bacxxx
9747     0: bac
9748     1: bac
9749        bbaccxxx
9750     0: bbacc
9751     1: bbacc
9752        bbbacccxx
9753     0: bbbaccc
9754     1: bbbaccc
9755    
9756    /^(?<name>a|b\g'name'c)/
9757        aaaa
9758     0: a
9759     1: a
9760        bacxxx
9761     0: bac
9762     1: bac
9763        bbaccxxx
9764     0: bbacc
9765     1: bbacc
9766        bbbacccxx
9767     0: bbbaccc
9768     1: bbbaccc
9769    
9770    /^(a|b\g<1>c)/
9771        aaaa
9772     0: a
9773     1: a
9774        bacxxx
9775     0: bac
9776     1: bac
9777        bbaccxxx
9778     0: bbacc
9779     1: bbacc
9780        bbbacccxx
9781     0: bbbaccc
9782     1: bbbaccc
9783    
9784    /^(a|b\g'1'c)/
9785        aaaa
9786     0: a
9787     1: a
9788        bacxxx
9789     0: bac
9790     1: bac
9791        bbaccxxx
9792     0: bbacc
9793     1: bbacc
9794        bbbacccxx
9795     0: bbbaccc
9796     1: bbbaccc
9797    
9798    /^(a|b\g'-1'c)/
9799        aaaa
9800     0: a
9801     1: a
9802        bacxxx
9803     0: bac
9804     1: bac
9805        bbaccxxx
9806     0: bbacc
9807     1: bbacc
9808        bbbacccxx
9809     0: bbbaccc
9810     1: bbbaccc
9811    
9812    /(^(a|b\g<-1>c))/
9813        aaaa
9814     0: a
9815     1: a
9816     2: a
9817        bacxxx
9818     0: bac
9819     1: bac
9820     2: bac
9821        bbaccxxx
9822     0: bbacc
9823     1: bbacc
9824     2: bbacc
9825        bbbacccxx
9826     0: bbbaccc
9827     1: bbbaccc
9828     2: bbbaccc
9829    
9830    /(?-i:\g<name>)(?i:(?<name>a))/
9831        XaaX
9832     0: aa
9833     1: a
9834        XAAX
9835     0: AA
9836     1: A
9837    
9838    /(?i:\g<name>)(?-i:(?<name>a))/
9839        XaaX
9840     0: aa
9841     1: a
9842        ** Failers
9843    No match
9844        XAAX
9845    No match
9846    
9847    /(?-i:\g<+1>)(?i:(a))/
9848        XaaX
9849     0: aa
9850     1: a
9851        XAAX
9852     0: AA
9853     1: A
9854    
9855    /(?=(?<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>\})\}))\{/
9856    
9857    /(?<n>a|b|c)\g<n>*/
9858       abc
9859     0: abc
9860     1: a
9861       accccbbb
9862     0: accccbbb
9863     1: a
9864    
9865    /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
9866        XYabcdY
9867     0: XYabcdY
9868     1: a
9869     2: b
9870     3: <unset>
9871     4: <unset>
9872     5: c
9873     6: d
9874     7: Y
9875    
9876    /(?<=b(?1)|zzz)(a)/
9877        xbaax
9878     0: a
9879     1: a
9880        xzzzax
9881     0: a
9882     1: a
9883    
9884    /(a)(?<=b\1)/
9885    Failed: lookbehind assertion is not fixed length at offset 10
9886    
9887    /(a)(?<=b+(?1))/
9888    Failed: lookbehind assertion is not fixed length at offset 13
9889    
9890    /(a+)(?<=b(?1))/
9891    Failed: lookbehind assertion is not fixed length at offset 14
9892    
9893    /(a(?<=b(?1)))/
9894    Failed: lookbehind assertion is not fixed length at offset 13
9895    
9896    /(?<=b(?1))xyz/
9897    Failed: reference to non-existent subpattern at offset 8
9898    
9899    /(?<=b(?1))xyz(b+)pqrstuvew/
9900    Failed: lookbehind assertion is not fixed length at offset 26
9901    
9902    /(a|bc)\1/SI
9903    Capturing subpattern count = 1
9904    Max back reference = 1
9905    No options
9906    No first char
9907    No need char
9908    Subject length lower bound = 2
9909    Starting byte set: a b
9910    
9911    /(a|bc)\1{2,3}/SI
9912    Capturing subpattern count = 1
9913    Max back reference = 1
9914    No options
9915    No first char
9916    No need char
9917    Subject length lower bound = 3
9918    Starting byte set: a b
9919    
9920    /(a|bc)(?1)/SI
9921    Capturing subpattern count = 1
9922    No options
9923    No first char
9924    No need char
9925    Subject length lower bound = 2
9926    Starting byte set: a b
9927    
9928    /(a|b\1)(a|b\1)/SI
9929    Capturing subpattern count = 2
9930    Max back reference = 1
9931    No options
9932    No first char
9933    No need char
9934    Subject length lower bound = 2
9935    Starting byte set: a b
9936    
9937    /(a|b\1){2}/SI
9938    Capturing subpattern count = 1
9939    Max back reference = 1
9940    No options
9941    No first char
9942    No need char
9943    Subject length lower bound = 2
9944    Starting byte set: a b
9945    
9946    /(a|bbbb\1)(a|bbbb\1)/SI
9947    Capturing subpattern count = 2
9948    Max back reference = 1
9949    No options
9950    No first char
9951    No need char
9952    Subject length lower bound = 2
9953    Starting byte set: a b
9954    
9955    /(a|bbbb\1){2}/SI
9956    Capturing subpattern count = 1
9957    Max back reference = 1
9958    No options
9959    No first char
9960    No need char
9961    Subject length lower bound = 2
9962    Starting byte set: a b
9963    
9964    /^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
9965    Capturing subpattern count = 1
9966    Options: anchored
9967    No first char
9968    Need char = ':'
9969    Subject length lower bound = 22
9970    No set of starting bytes
9971    
9972    /  (?: [\040\t] |  \(
9973    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
9974    \)  )*                          # optional leading comment
9975    (?:    (?:
9976    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
9977    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
9978    |
9979    " (?:                      # opening quote...
9980    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
9981    |                     #    or
9982    \\ [^\x80-\xff]           #   Escaped something (something != CR)
9983    )* "  # closing quote
9984    )                    # initial word
9985    (?:  (?: [\040\t] |  \(
9986    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
9987    \)  )*  \.  (?: [\040\t] |  \(
9988    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
9989    \)  )*   (?:
9990    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
9991    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
9992    |
9993    " (?:                      # opening quote...
9994    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
9995    |                     #    or
9996    \\ [^\x80-\xff]           #   Escaped something (something != CR)
9997    )* "  # closing quote
9998    )  )* # further okay, if led by a period
9999    (?: [\040\t] |  \(
10000    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10001    \)  )*  @  (?: [\040\t] |  \(
10002    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10003    \)  )*    (?:
10004    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10005    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10006    |   \[                         # [
10007    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10008    \]                        #           ]
10009    )                           # initial subdomain
10010    (?:                                  #
10011    (?: [\040\t] |  \(
10012    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10013    \)  )*  \.                        # if led by a period...
10014    (?: [\040\t] |  \(
10015    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10016    \)  )*   (?:
10017    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10018    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10019    |   \[                         # [
10020    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10021    \]                        #           ]
10022    )                     #   ...further okay
10023    )*
10024    # address
10025    |                     #  or
10026    (?:
10027    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10028    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10029    |
10030    " (?:                      # opening quote...
10031    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10032    |                     #    or
10033    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10034    )* "  # closing quote
10035    )             # one word, optionally followed by....
10036    (?:
10037    [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
10038    \(
10039    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10040    \)       |  # comments, or...
10041    
10042    " (?:                      # opening quote...
10043    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10044    |                     #    or
10045    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10046    )* "  # closing quote
10047    # quoted strings
10048    )*
10049    <  (?: [\040\t] |  \(
10050    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10051    \)  )*                     # leading <
10052    (?:  @  (?: [\040\t] |  \(
10053    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10054    \)  )*    (?:
10055    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10056    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10057    |   \[                         # [
10058    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10059    \]                        #           ]
10060    )                           # initial subdomain
10061    (?:                                  #
10062    (?: [\040\t] |  \(
10063    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10064    \)  )*  \.                        # if led by a period...
10065    (?: [\040\t] |  \(
10066    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10067    \)  )*   (?:
10068    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10069    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10070    |   \[                         # [
10071    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10072    \]                        #           ]
10073    )                     #   ...further okay
10074    )*
10075    
10076    (?:  (?: [\040\t] |  \(
10077    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10078    \)  )*  ,  (?: [\040\t] |  \(
10079    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10080    \)  )*  @  (?: [\040\t] |  \(
10081    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10082    \)  )*    (?:
10083    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10084    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10085    |   \[                         # [
10086    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10087    \]                        #           ]
10088    )                           # initial subdomain
10089    (?:                                  #
10090    (?: [\040\t] |  \(
10091    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10092    \)  )*  \.                        # if led by a period...
10093    (?: [\040\t] |  \(
10094    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10095    \)  )*   (?:
10096    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10097    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10098    |   \[                         # [
10099    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10100    \]                        #           ]
10101    )                     #   ...further okay
10102    )*
10103    )* # further okay, if led by comma
10104    :                                # closing colon
10105    (?: [\040\t] |  \(
10106    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10107    \)  )*  )? #       optional route
10108    (?:
10109    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10110    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10111    |
10112    " (?:                      # opening quote...
10113    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10114    |                     #    or
10115    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10116    )* "  # closing quote
10117    )                    # initial word
10118    (?:  (?: [\040\t] |  \(
10119    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10120    \)  )*  \.  (?: [\040\t] |  \(
10121    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10122    \)  )*   (?:
10123    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10124    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10125    |
10126    " (?:                      # opening quote...
10127    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10128    |                     #    or
10129    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10130    )* "  # closing quote
10131    )  )* # further okay, if led by a period
10132    (?: [\040\t] |  \(
10133    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10134    \)  )*  @  (?: [\040\t] |  \(
10135    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10136    \)  )*    (?:
10137    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10138    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10139    |   \[                         # [
10140    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10141    \]                        #           ]
10142    )                           # initial subdomain
10143    (?:                                  #
10144    (?: [\040\t] |  \(
10145    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10146    \)  )*  \.                        # if led by a period...
10147    (?: [\040\t] |  \(
10148    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10149    \)  )*   (?:
10150    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10151    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10152    |   \[                         # [
10153    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10154    \]                        #           ]
10155    )                     #   ...further okay
10156    )*
10157    #       address spec
10158    (?: [\040\t] |  \(
10159    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10160    \)  )*  > #                  trailing >
10161    # name and address
10162    )  (?: [\040\t] |  \(
10163    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10164    \)  )*                       # optional trailing comment
10165    /xSI
10166    Capturing subpattern count = 0
10167    Contains explicit CR or LF match
10168    Options: extended
10169    No first char
10170    No need char
10171    Subject length lower bound = 3
10172    Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8
10173      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
10174      f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f
10175    
10176    /<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
10177    Capturing subpattern count = 11
10178    Options: caseless dotall
10179    First char = '<'
10180    Need char = '>'
10181    Subject length lower bound = 47
10182    No set of starting bytes
10183    
10184    "(?>.*/)foo"SI
10185    Capturing subpattern count = 0
10186    No options
10187    First char at start or follows newline
10188    Need char = 'o'
10189    Subject length lower bound = 4
10190    No set of starting bytes
10191    
10192    /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10193    Capturing subpattern count = 0
10194    Options: extended
10195    No first char
10196    Need char = '-'
10197    Subject length lower bound = 8
10198    No set of starting bytes
10199    
10200    /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10201    Capturing subpattern count = 1
10202    Options: caseless
10203    No first char
10204    No need char
10205    Subject length lower bound = 1
10206    Starting byte set: A B C a b c
10207    
10208    /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10209    Capturing subpattern count = 0
10210    No options
10211    No first char
10212    Need char = 'b'
10213    Subject length lower bound = 41
10214    Starting byte set: c d
10215    
10216    /<a[\s]+href[\s]*=[\s]*          # find <a href=
10217     ([\"\'])?                       # find single or double quote
10218     (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
10219                                     # quote, otherwise match up to next space
10220    /isxSI
10221    Capturing subpattern count = 3
10222    Max back reference = 1
10223    Options: caseless extended dotall
10224    First char = '<'
10225    Need char = '='
10226    Subject length lower bound = 9
10227    No set of starting bytes
10228    
10229    /^(?!:)                       # colon disallowed at start
10230      (?:                         # start of item
10231        (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
10232        (?(1)0 | () ) )           # if null previously matched, fail; else null
10233        :                         # followed by colon
10234      ){1,7}                      # end item; 1-7 of them required
10235      [0-9a-f]{1,4} $             # final hex number at end of string
10236      (?(1)|.)                    # check that there was an empty component
10237      /xiIS
10238    Capturing subpattern count = 1
10239    Options: anchored caseless extended
10240    No first char
10241    Need char = ':'
10242    Subject length lower bound = 2
10243    No set of starting bytes
10244    
10245    /(?|(?<a>A)|(?<a>B))/I
10246    Capturing subpattern count = 1
10247    Named capturing subpatterns:
10248      a   1
10249      a   1
10250    No options
10251    No first char
10252    No need char
10253        AB\Ca
10254     0: A
10255     1: A
10256      C A (1) a
10257        BA\Ca
10258     0: B
10259     1: B
10260      C B (1) a
10261    
10262    /(?|(?<a>A)|(?<b>B))/
10263    Failed: different names for subpatterns of the same number are not allowed at offset 15
10264    
10265    /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10266        b(?<quote> (?<apostrophe>')|(?<realquote>")) )
10267        (?('quote')[a-z]+|[0-9]+)/JIx
10268    Capturing subpattern count = 6
10269    Named capturing subpatterns:
10270      apostrophe   2
10271      apostrophe   5
10272      quote        1
10273      quote        4
10274      realquote    3
10275      realquote    6
10276    Options: extended dupnames
10277    No first char
10278    No need char
10279        a"aaaaa
10280     0: a"aaaaa
10281     1: "
10282     2: <unset>
10283     3: "
10284        b"aaaaa
10285     0: b"aaaaa
10286     1: <unset>
10287     2: <unset>
10288     3: <unset>
10289     4: "
10290     5: <unset>
10291     6: "
10292        ** Failers
10293    No match
10294        b"11111
10295    No match
10296        a"11111
10297    No match
10298    
10299    /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10300    ------------------------------------------------------------------
10301            Bra
10302            ^
10303            Bra
10304            CBra 1
10305            a
10306            Ket
10307            CBra 2
10308            b
10309            Ket
10310            CBra 3
10311            c
10312            Ket
10313            CBra 4
10314            d
10315            Ket
10316            Alt
10317            CBra 1
10318            e
10319            Ket
10320            Ket
10321            Cond
10322          4 Cond nref
10323            X
10324            Alt
10325            Y
10326            Ket
10327            Ket
10328            End
10329    ------------------------------------------------------------------
10330    Capturing subpattern count = 4
10331    Named capturing subpatterns:
10332      D   4
10333      D   1
10334    Options: anchored extended dupnames
10335    No first char
10336    No need char
10337        abcdX
10338     0: abcdX
10339     1: a
10340     2: b
10341     3: c
10342     4: d
10343        eX
10344     0: eX
10345     1: e
10346        ** Failers
10347    No match
10348        abcdY
10349    No match
10350        ey
10351    No match
10352    
10353    /(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
10354    ------------------------------------------------------------------
10355            Bra
10356            CBra 1
10357            a
10358            Ket
10359            CBra 2
10360            b
10361            Ket
10362            CBra 3
10363            c
10364            Ket
10365            CBra 4
10366            d
10367            Cond
10368            Cond nrecurse 1
10369            $
10370            Alt
10371            Once
10372            Recurse
10373            Ket
10374            Ket
10375            Ket
10376            Ket
10377            End
10378    ------------------------------------------------------------------
10379    Capturing subpattern count = 4
10380    Named capturing subpatterns:
10381      A   1
10382      A   4
10383    Options: extended dupnames
10384    First char = 'a'
10385    Need char = 'd'
10386        abcdd
10387     0: abcdd
10388     1: a
10389     2: b
10390     3: c
10391     4: dd
10392        ** Failers
10393    No match
10394        abcdde
10395    No match
10396    
10397    /abcd*/
10398        xxxxabcd\P
10399     0: abcd
10400        xxxxabcd\P\P
10401    Partial match: abcd
10402    
10403    /abcd*/i
10404        xxxxabcd\P
10405     0: abcd
10406        xxxxabcd\P\P
10407    Partial match: abcd
10408        XXXXABCD\P
10409     0: ABCD
10410        XXXXABCD\P\P
10411    Partial match: ABCD
10412    
10413    /abc\d*/
10414        xxxxabc1\P
10415     0: abc1
10416        xxxxabc1\P\P
10417    Partial match: abc1
10418    
10419    /(a)bc\1*/
10420        xxxxabca\P
10421     0: abca
10422     1: a
10423        xxxxabca\P\P
10424    Partial match: abca
10425    
10426    /abc[de]*/
10427        xxxxabcde\P
10428     0: abcde
10429        xxxxabcde\P\P
10430    Partial match: abcde
10431    
10432    /-- This is not in the Perl 5.10 test because Perl seems currently to be broken
10433        and not behaving as specified in that it *does* bumpalong after hitting
10434        (*COMMIT). --/
10435    
10436    /(?1)(A(*COMMIT)|B)D/
10437        ABD
10438     0: ABD
10439     1: B
10440        XABD
10441     0: ABD
10442     1: B
10443        BAD
10444     0: BAD
10445     1: A
10446        ABXABD
10447     0: ABD
10448     1: B
10449        ** Failers
10450