/[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 227 by ph10, Tue Aug 21 15:00:15 2007 UTC revision 471 by ph10, Fri Dec 11 15:11:55 2009 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 109  Failed: missing ) at offset 4 Line 116  Failed: missing ) at offset 4
116  Failed: missing ) after comment at offset 7  Failed: missing ) after comment at offset 7
117    
118  /(?z)abc/  /(?z)abc/
119  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? or (?- at offset 2
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
176  Capturing subpattern count = 1  Capturing subpattern count = 1
 Contains explicit CR or LF match  
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 190  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 311  No match Line 320  No match
320  No match  No match
321    
322  /ab(?z)cd/  /ab(?z)cd/
323  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? or (?- at offset 4
324    
325  /^abc|def/I  /^abc|def/I
326  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 325  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 339  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 361  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 369  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 402  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  
 Contains explicit CR or LF match  
413  No options  No options
414  No first char  No first char
415  No need char  No need char
# Line 412  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 421  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 430  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 439  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 448  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 457  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 466  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 524  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 534  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 541  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 548  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 586  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 594  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 614  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 670  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 687  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 694  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 701  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 786  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 948  Failed: missing ) at offset 4 Line 949  Failed: missing ) at offset 4
949  Failed: unrecognized character after (?< at offset 3  Failed: unrecognized character after (?< at offset 3
950    
951  /a(?{)b/  /a(?{)b/
952  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
953    
954  /a(?{{})b/  /a(?{{})b/
955  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
956    
957  /a(?{}})b/  /a(?{}})b/
958  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
959    
960  /a(?{"{"})b/  /a(?{"{"})b/
961  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
962    
963  /a(?{"{"}})b/  /a(?{"{"}})b/
964  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
965    
966  /(?(1?)a|b)/  /(?(1?)a|b)/
967  Failed: malformed number or name after (?( at offset 4  Failed: malformed number or name after (?( at offset 4
968    
 /(?(1)a|b|c)/  
 Failed: conditional group contains more than two branches at offset 10  
   
969  /[a[:xyz:/  /[a[:xyz:/
970  Failed: missing terminating ] for character class at offset 8  Failed: missing terminating ] for character class at offset 8
971    
# Line 1008  copy substring 5 failed -7 Line 1006  copy substring 5 failed -7
1006    
1007  /(.{20})/I  /(.{20})/I
1008  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1009  No options  No options
1010  No first char  No first char
1011  No need char  No need char
# Line 1026  No need char Line 1023  No need char
1023    
1024  /(.{15})/I  /(.{15})/I
1025  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1026  No options  No options
1027  No first char  No first char
1028  No need char  No need char
# Line 1041  No need char Line 1037  No need char
1037    
1038  /(.{16})/I  /(.{16})/I
1039  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1040  No options  No options
1041  No first char  No first char
1042  No need char  No need char
# Line 1108  No need char Line 1103  No need char
1103  )((?:[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]+
1104  )?)?)?)?)?)?)?)?)?otherword/I  )?)?)?)?)?)?)?)?)?otherword/I
1105  Capturing subpattern count = 8  Capturing subpattern count = 8
 Partial matching not supported  
1106  Contains explicit CR or LF match  Contains explicit CR or LF match
1107  No options  No options
1108  First char = 'w'  First char = 'w'
# Line 1123  Need char = 'd' Line 1117  Need char = 'd'
1117          End          End
1118  ------------------------------------------------------------------  ------------------------------------------------------------------
1119  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1120  No options  No options
1121  First char at start or follows newline  First char at start or follows newline
1122  Need char = 'X'  Need char = 'X'
# Line 1131  Need char = 'X' Line 1124  Need char = 'X'
1124  /.*X/IDZs  /.*X/IDZs
1125  ------------------------------------------------------------------  ------------------------------------------------------------------
1126          Bra          Bra
1127          Any*          AllAny*
1128          X          X
1129          Ket          Ket
1130          End          End
1131  ------------------------------------------------------------------  ------------------------------------------------------------------
1132  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1133  Options: anchored dotall  Options: anchored dotall
1134  No first char  No first char
1135  Need char = 'X'  Need char = 'X'
# Line 1156  Need char = 'X' Line 1148  Need char = 'X'
1148          End          End
1149  ------------------------------------------------------------------  ------------------------------------------------------------------
1150  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1151  No options  No options
1152  First char at start or follows newline  First char at start or follows newline
1153  No need char  No need char
# Line 1165  No need char Line 1156  No need char
1156  ------------------------------------------------------------------  ------------------------------------------------------------------
1157          Bra          Bra
1158          CBra 1          CBra 1
1159          Any*          AllAny*
1160          X          X
1161          Alt          Alt
1162          ^          ^
# Line 1175  No need char Line 1166  No need char
1166          End          End
1167  ------------------------------------------------------------------  ------------------------------------------------------------------
1168  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1169  Options: anchored dotall  Options: anchored dotall
1170  No first char  No first char
1171  No need char  No need char
# Line 1184  No need char Line 1174  No need char
1174  ------------------------------------------------------------------  ------------------------------------------------------------------
1175          Bra          Bra
1176          CBra 1          CBra 1
1177          Any*          AllAny*
1178          X          X
1179          Alt          Alt
1180          ^          ^
# Line 1194  No need char Line 1184  No need char
1184          End          End
1185  ------------------------------------------------------------------  ------------------------------------------------------------------
1186  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1187  Options: anchored dotall  Options: anchored dotall
1188  No first char  No first char
1189  No need char  No need char
# Line 1204  No need char Line 1193  No need char
1193          Bra          Bra
1194          Bra          Bra
1195       04 Opt       04 Opt
1196          Any*          AllAny*
1197          X          X
1198          Alt          Alt
1199       04 Opt       04 Opt
# Line 1216  No need char Line 1205  No need char
1205          End          End
1206  ------------------------------------------------------------------  ------------------------------------------------------------------
1207  Capturing subpattern count = 0  Capturing subpattern count = 0
1208  Partial matching not supported  Options: anchored
1209  No options  No first char
 First char at start or follows newline  
1210  No need char  No need char
1211    
1212  /\Biss\B/I+  /\Biss\B/I+
# Line 1301  No need char Line 1289  No need char
1289    
1290  /.*iss/Ig+  /.*iss/Ig+
1291  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1292  No options  No options
1293  First char at start or follows newline  First char at start or follows newline
1294  Need char = 's'  Need char = 's'
# Line 1404  Need char = 'c' Line 1391  Need char = 'c'
1391    
1392  /a*/I  /a*/I
1393  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1394  No options  No options
1395  No first char  No first char
1396  No need char  No need char
1397    
1398  /a+/I  /a+/I
1399  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1400  No options  No options
1401  First char = 'a'  First char = 'a'
1402  No need char  No need char
1403    
1404  /(baa|a+)/I  /(baa|a+)/I
1405  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1406  No options  No options
1407  No first char  No first char
1408  Need char = 'a'  Need char = 'a'
1409    
1410  /a{0,3}/I  /a{0,3}/I
1411  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1412  No options  No options
1413  No first char  No first char
1414  No need char  No need char
1415    
1416  /baa{3,}/I  /baa{3,}/I
1417  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1418  No options  No options
1419  First char = 'b'  First char = 'b'
1420  Need char = 'a'  Need char = 'a'
1421    
1422  /"([^\\"]+|\\.)*"/I  /"([^\\"]+|\\.)*"/I
1423  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
 Contains explicit CR or LF match  
1424  No options  No options
1425  First char = '"'  First char = '"'
1426  Need char = '"'  Need char = '"'
# Line 1495  Need char = 'b' Line 1475  Need char = 'b'
1475    
1476  /abc*/I  /abc*/I
1477  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1478  No options  No options
1479  First char = 'a'  First char = 'a'
1480  Need char = 'b'  Need char = 'b'
1481    
1482  /ab.c*/I  /ab.c*/I
1483  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1484  No options  No options
1485  First char = 'a'  First char = 'a'
1486  Need char = 'b'  Need char = 'b'
1487    
1488  /a.c*/I  /a.c*/I
1489  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1490  No options  No options
1491  First char = 'a'  First char = 'a'
1492  No need char  No need char
1493    
1494  /.c*/I  /.c*/I
1495  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1496  No options  No options
1497  No first char  No first char
1498  No need char  No need char
1499    
1500  /ac*/I  /ac*/I
1501  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1502  No options  No options
1503  First char = 'a'  First char = 'a'
1504  No need char  No need char
1505    
1506  /(a.c*|b.c*)/I  /(a.c*|b.c*)/I
1507  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1508  No options  No options
1509  No first char  No first char
1510  No need char  No need char
1511    
1512  /a.c*|aba/I  /a.c*|aba/I
1513  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1514  No options  No options
1515  First char = 'a'  First char = 'a'
1516  No need char  No need char
1517    
1518  /.+a/I  /.+a/I
1519  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1520  No options  No options
1521  No first char  No first char
1522  Need char = 'a'  Need char = 'a'
1523    
1524  /(?=abcda)a.*/I  /(?=abcda)a.*/I
1525  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1526  No options  No options
1527  First char = 'a'  First char = 'a'
1528  Need char = 'a'  Need char = 'a'
1529    
1530  /(?=a)a.*/I  /(?=a)a.*/I
1531  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1532  No options  No options
1533  First char = 'a'  First char = 'a'
1534  No need char  No need char
# Line 1571  No need char Line 1541  No need char
1541    
1542  /a\d*/I  /a\d*/I
1543  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1544  No options  No options
1545  First char = 'a'  First char = 'a'
1546  No need char  No need char
1547    
1548  /ab\d*/I  /ab\d*/I
1549  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1550  No options  No options
1551  First char = 'a'  First char = 'a'
1552  Need char = 'b'  Need char = 'b'
# Line 1597  Need char = 'd' Line 1565  Need char = 'd'
1565    
1566  /ab\d+/I  /ab\d+/I
1567  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1568  No options  No options
1569  First char = 'a'  First char = 'a'
1570  Need char = 'b'  Need char = 'b'
1571    
1572  /a(?(1)b)/I  /a(?(1)b)(.)/I
1573  Capturing subpattern count = 0  Capturing subpattern count = 1
1574  No options  No options
1575  First char = 'a'  First char = 'a'
1576  No need char  No need char
1577    
1578  /a(?(1)bag|big)/I  /a(?(1)bag|big)(.)/I
1579  Capturing subpattern count = 0  Capturing subpattern count = 1
1580  No options  No options
1581  First char = 'a'  First char = 'a'
1582  Need char = 'g'  Need char = 'g'
1583    
1584  /a(?(1)bag|big)*/I  /a(?(1)bag|big)*(.)/I
1585  Capturing subpattern count = 0  Capturing subpattern count = 1
1586  No options  No options
1587  First char = 'a'  First char = 'a'
1588  No need char  No need char
1589    
1590  /a(?(1)bag|big)+/I  /a(?(1)bag|big)+(.)/I
1591  Capturing subpattern count = 0  Capturing subpattern count = 1
1592  No options  No options
1593  First char = 'a'  First char = 'a'
1594  Need char = 'g'  Need char = 'g'
1595    
1596  /a(?(1)b..|b..)/I  /a(?(1)b..|b..)(.)/I
1597  Capturing subpattern count = 0  Capturing subpattern count = 1
1598  No options  No options
1599  First char = 'a'  First char = 'a'
1600  Need char = 'b'  Need char = 'b'
# Line 1672  No need char Line 1639  No need char
1639      \Nabc      \Nabc
1640  No match  No match
1641    
1642  /a*(b+)(z)(z)/IP  /a*(b+)(z)(z)/P
1643      aaaabbbbzzzz      aaaabbbbzzzz
1644   0: aaaabbbbzz   0: aaaabbbbzz
1645   1: bbbb   1: bbbb
# Line 1704  Capturing subpattern count = 0 Line 1671  Capturing subpattern count = 0
1671  Options: anchored  Options: anchored
1672  No first char  No first char
1673  Need char = 'd'  Need char = 'd'
1674  Study returned NULL  Subject length lower bound = 4
1675    No set of starting bytes
1676    
1677  /\(             # ( at start  /\(             # ( at start
1678    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1715  Study returned NULL Line 1683  Study returned NULL
1683    \)            # Closing )    \)            # Closing )
1684    /Ix    /Ix
1685  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
 Contains explicit CR or LF match  
1686  Options: extended  Options: extended
1687  First char = '('  First char = '('
1688  Need char = ')'  Need char = ')'
# Line 1745  No match Line 1711  No match
1711    
1712  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1713  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
 Contains explicit CR or LF match  
1714  Options: extended  Options: extended
1715  First char = '('  First char = '('
1716  Need char = ')'  Need char = ')'
# Line 1761  Need char = ')' Line 1725  Need char = ')'
1725    
1726  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1727  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
 Contains explicit CR or LF match  
1728  Options: extended  Options: extended
1729  First char = '('  First char = '('
1730  Need char = ')'  Need char = ')'
# Line 1781  No match Line 1743  No match
1743    
1744  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1745  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
 Contains explicit CR or LF match  
1746  Options: extended  Options: extended
1747  First char = '('  First char = '('
1748  Need char = ')'  Need char = ')'
# Line 1793  Need char = ')' Line 1753  Need char = ')'
1753    
1754  /\(  ( (?>[^()]+) | (?R) )* \) /Ix  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1755  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
 Contains explicit CR or LF match  
1756  Options: extended  Options: extended
1757  First char = '('  First char = '('
1758  Need char = ')'  Need char = ')'
# Line 1804  Need char = ')' Line 1762  Need char = ')'
1762    
1763  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1764  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
 Contains explicit CR or LF match  
1765  Options: extended  Options: extended
1766  First char = '('  First char = '('
1767  Need char = ')'  Need char = ')'
# Line 1816  Need char = ')' Line 1772  Need char = ')'
1772    
1773  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1774  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
 Contains explicit CR or LF match  
1775  Options: extended  Options: extended
1776  First char = '('  First char = '('
1777  Need char = ')'  Need char = ')'
# Line 1834  Need char = ')' Line 1788  Need char = ')'
1788    
1789  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1790  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
 Contains explicit CR or LF match  
1791  Options: extended  Options: extended
1792  First char = '('  First char = '('
1793  Need char = ')'  Need char = ')'
# Line 1852  Need char = ')' Line 1804  Need char = ')'
1804    
1805  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1806  Capturing subpattern count = 11  Capturing subpattern count = 11
 Partial matching not supported  
 Contains explicit CR or LF match  
1807  Options: extended  Options: extended
1808  First char = '('  First char = '('
1809  Need char = ')'  Need char = ')'
# Line 1873  Need char = ')' Line 1823  Need char = ')'
1823    
1824  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1825  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
 Contains explicit CR or LF match  
1826  Options: extended  Options: extended
1827  First char = '('  First char = '('
1828  Need char = ')'  Need char = ')'
# Line 1882  Need char = ')' Line 1830  Need char = ')'
1830   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1831   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1832   2: 123   2: 123
  3: <unset>  
1833    
1834  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1835  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
 Contains explicit CR or LF match  
1836  Options: extended  Options: extended
1837  First char = '('  First char = '('
1838  Need char = ')'  Need char = ')'
# Line 1919  No need char Line 1864  No need char
1864  ------------------------------------------------------------------  ------------------------------------------------------------------
1865          Bra          Bra
1866          ^          ^
1867          [\x00-/:-@[-`{-\xff]          [\x00-/:-@[-`{-\xff] (neg)
1868          Ket          Ket
1869          End          End
1870  ------------------------------------------------------------------  ------------------------------------------------------------------
1871  Capturing subpattern count = 0  Capturing subpattern count = 0
 Contains explicit CR or LF match  
1872  Options: anchored  Options: anchored
1873  No first char  No first char
1874  No need char  No need char
# Line 1946  No need char Line 1890  No need char
1890  ------------------------------------------------------------------  ------------------------------------------------------------------
1891          Bra          Bra
1892          ^          ^
1893          [\x00-@[-`{-\xff]          [\x00-@[-`{-\xff] (neg)
1894          Ket          Ket
1895          End          End
1896  ------------------------------------------------------------------  ------------------------------------------------------------------
1897  Capturing subpattern count = 0  Capturing subpattern count = 0
 Contains explicit CR or LF match  
1898  Options: anchored  Options: anchored
1899  No first char  No first char
1900  No need char  No need char
# Line 1961  Capturing subpattern count = 0 Line 1904  Capturing subpattern count = 0
1904  No options  No options
1905  No first char  No first char
1906  No need char  No need char
1907    Subject length lower bound = 1
1908  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
1909    _ 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
1910    
# Line 1973  Starting byte set: A B C D E F G H I J K Line 1917  Starting byte set: A B C D E F G H I J K
1917          End          End
1918  ------------------------------------------------------------------  ------------------------------------------------------------------
1919  Capturing subpattern count = 0  Capturing subpattern count = 0
 Contains explicit CR or LF match  
1920  Options: anchored  Options: anchored
1921  No first char  No first char
1922  No need char  No need char
# Line 1982  No need char Line 1925  No need char
1925  ------------------------------------------------------------------  ------------------------------------------------------------------
1926          Bra          Bra
1927          ^          ^
1928          [\x80-\xff]          [\x80-\xff] (neg)
1929          Ket          Ket
1930          End          End
1931  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2008  No need char Line 1951  No need char
1951  ------------------------------------------------------------------  ------------------------------------------------------------------
1952          Bra          Bra
1953          ^          ^
1954          [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
1955          Ket          Ket
1956          End          End
1957  ------------------------------------------------------------------  ------------------------------------------------------------------
1958  Capturing subpattern count = 0  Capturing subpattern count = 0
 Contains explicit CR or LF match  
1959  Options: anchored  Options: anchored
1960  No first char  No first char
1961  No need char  No need char
# Line 2024  Contains explicit CR or LF match Line 1966  Contains explicit CR or LF match
1966  No options  No options
1967  No first char  No first char
1968  No need char  No need char
1969    Subject length lower bound = 1
1970  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1971    
1972  /^[[:cntrl:]]/DZ  /^[[:cntrl:]]/DZ
# Line 2035  Starting byte set: \x09 \x0a \x0b \x0c \ Line 1978  Starting byte set: \x09 \x0a \x0b \x0c \
1978          End          End
1979  ------------------------------------------------------------------  ------------------------------------------------------------------
1980  Capturing subpattern count = 0  Capturing subpattern count = 0
 Contains explicit CR or LF match  
1981  Options: anchored  Options: anchored
1982  No first char  No first char
1983  No need char  No need char
# Line 2114  No need char Line 2056  No need char
2056          End          End
2057  ------------------------------------------------------------------  ------------------------------------------------------------------
2058  Capturing subpattern count = 0  Capturing subpattern count = 0
 Contains explicit CR or LF match  
2059  Options: anchored  Options: anchored
2060  No first char  No first char
2061  No need char  No need char
# Line 2162  No need char Line 2103  No need char
2103  ------------------------------------------------------------------  ------------------------------------------------------------------
2104          Bra          Bra
2105          ^          ^
2106          [ -~\x80-\xff]          [ -~\x80-\xff] (neg)
2107          Ket          Ket
2108          End          End
2109  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2175  No need char Line 2116  No need char
2116  ------------------------------------------------------------------  ------------------------------------------------------------------
2117          Bra          Bra
2118          ^          ^
2119          [\x00-/12:-\xff]          [\x00-/12:-\xff] (neg)
2120          Ket          Ket
2121          End          End
2122  ------------------------------------------------------------------  ------------------------------------------------------------------
2123  Capturing subpattern count = 0  Capturing subpattern count = 0
 Contains explicit CR or LF match  
2124  Options: anchored  Options: anchored
2125  No first char  No first char
2126  No need char  No need char
# Line 2189  No need char Line 2129  No need char
2129  ------------------------------------------------------------------  ------------------------------------------------------------------
2130          Bra          Bra
2131          ^          ^
2132          [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2133          Ket          Ket
2134          End          End
2135  ------------------------------------------------------------------  ------------------------------------------------------------------
2136  Capturing subpattern count = 0  Capturing subpattern count = 0
 Contains explicit CR or LF match  
2137  Options: anchored  Options: anchored
2138  No first char  No first char
2139  No need char  No need char
# Line 2274  Need char = 'd' Line 2213  Need char = 'd'
2213  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2214  Capturing subpattern count = 271  Capturing subpattern count = 271
2215  Max back reference = 270  Max back reference = 270
 Partial matching not supported  
2216  No options  No options
2217  No first char  No first char
2218  No need char  No need char
# Line 2758  No need char Line 2696  No need char
2696  /[\S]/DZ  /[\S]/DZ
2697  ------------------------------------------------------------------  ------------------------------------------------------------------
2698          Bra          Bra
2699          [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2700          Ket          Ket
2701          End          End
2702  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2955  Need char = 'c' Line 2893  Need char = 'c'
2893          End          End
2894  ------------------------------------------------------------------  ------------------------------------------------------------------
2895  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2896  No options  No options
2897  No first char  No first char
2898  No need char  No need char
# Line 2984  No need char Line 2921  No need char
2921          End          End
2922  ------------------------------------------------------------------  ------------------------------------------------------------------
2923  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2924  No options  No options
2925  First char = 'x'  First char = 'x'
2926  No need char  No need char
# Line 3000  No need char Line 2936  No need char
2936          End          End
2937  ------------------------------------------------------------------  ------------------------------------------------------------------
2938  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2939  No options  No options
2940  First char = 'x'  First char = 'x'
2941  No need char  No need char
# Line 3024  No need char Line 2959  No need char
2959    
2960  /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
2961  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2962  Options: anchored  Options: anchored
2963  No first char  No first char
2964  No need char  No need char
# Line 3038  No match Line 2972  No match
2972    
2973  /(\d++)(\w)/I  /(\d++)(\w)/I
2974  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
2975  No options  No options
2976  No first char  No first char
2977  No need char  No need char
# Line 3053  No match Line 2986  No match
2986    
2987  /a++b/I  /a++b/I
2988  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2989  No options  No options
2990  First char = 'a'  First char = 'a'
2991  Need char = 'b'  Need char = 'b'
# Line 3062  Need char = 'b' Line 2994  Need char = 'b'
2994    
2995  /(a++b)/I  /(a++b)/I
2996  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2997  No options  No options
2998  First char = 'a'  First char = 'a'
2999  Need char = 'b'  Need char = 'b'
# Line 3072  Need char = 'b' Line 3003  Need char = 'b'
3003    
3004  /(a++)b/I  /(a++)b/I
3005  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3006  No options  No options
3007  First char = 'a'  First char = 'a'
3008  Need char = 'b'  Need char = 'b'
# Line 3082  Need char = 'b' Line 3012  Need char = 'b'
3012    
3013  /([^()]++|\([^()]*\))+/I  /([^()]++|\([^()]*\))+/I
3014  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
 Contains explicit CR or LF match  
3015  No options  No options
3016  No first char  No first char
3017  No need char  No need char
# Line 3093  No need char Line 3021  No need char
3021    
3022  /\(([^()]++|\([^()]+\))+\)/I  /\(([^()]++|\([^()]+\))+\)/I
3023  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
 Contains explicit CR or LF match  
3024  No options  No options
3025  First char = '('  First char = '('
3026  Need char = ')'  Need char = ')'
# Line 3157  Failed: nothing to repeat at offset 7 Line 3083  Failed: nothing to repeat at offset 7
3083          End          End
3084  ------------------------------------------------------------------  ------------------------------------------------------------------
3085  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3086  No options  No options
3087  First char = 'x'  First char = 'x'
3088  Need char = 'b'  Need char = 'b'
# Line 3174  Need char = 'b' Line 3099  Need char = 'b'
3099          End          End
3100  ------------------------------------------------------------------  ------------------------------------------------------------------
3101  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3102  Options: ungreedy  Options: ungreedy
3103  First char = 'x'  First char = 'x'
3104  Need char = 'b'  Need char = 'b'
# Line 3203  Need char = 'b' Line 3127  Need char = 'b'
3127          End          End
3128  ------------------------------------------------------------------  ------------------------------------------------------------------
3129  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3130  Options: anchored  Options: anchored
3131  No first char  No first char
3132  No need char  No need char
# Line 3219  No need char Line 3142  No need char
3142          End          End
3143  ------------------------------------------------------------------  ------------------------------------------------------------------
3144  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3145  Options: anchored  Options: anchored
3146  No first char  No first char
3147  Need char = 'b'  Need char = 'b'
# Line 3237  Need char = 'b' Line 3159  Need char = 'b'
3159          End          End
3160  ------------------------------------------------------------------  ------------------------------------------------------------------
3161  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3162  Options: anchored  Options: anchored
3163  No first char  No first char
3164  Need char = 'b'  Need char = 'b'
# Line 3295  No need char Line 3216  No need char
3216          End          End
3217  ------------------------------------------------------------------  ------------------------------------------------------------------
3218  Capturing subpattern count = 0  Capturing subpattern count = 0
 Contains explicit CR or LF match  
3219  No options  No options
3220  No first char  No first char
3221  No need char  No need char
# Line 3308  No need char Line 3228  No need char
3228          End          End
3229  ------------------------------------------------------------------  ------------------------------------------------------------------
3230  Capturing subpattern count = 0  Capturing subpattern count = 0
 Contains explicit CR or LF match  
3231  No options  No options
3232  No first char  No first char
3233  No need char  No need char
3234    
3235  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3236  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
 Contains explicit CR or LF match  
3237  Options: extended  Options: extended
3238  First char = '<'  First char = '<'
3239  Need char = '>'  Need char = '>'
# Line 3366  Need char = 'X' Line 3283  Need char = 'X'
3283  /(.*)\d+\1/I  /(.*)\d+\1/I
3284  Capturing subpattern count = 1  Capturing subpattern count = 1
3285  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3286  No options  No options
3287  No first char  No first char
3288  No need char  No need char
3289    
3290  /(.*)\d+/I  /(.*)\d+/I
3291  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3292  No options  No options
3293  First char at start or follows newline  First char at start or follows newline
3294  No need char  No need char
# Line 3381  No need char Line 3296  No need char
3296  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3297  Capturing subpattern count = 1  Capturing subpattern count = 1
3298  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3299  Options: dotall  Options: dotall
3300  No first char  No first char
3301  No need char  No need char
3302    
3303  /(.*)\d+/Is  /(.*)\d+/Is
3304  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3305  Options: anchored dotall  Options: anchored dotall
3306  No first char  No first char
3307  No need char  No need char
# Line 3396  No need char Line 3309  No need char
3309  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3310  Capturing subpattern count = 2  Capturing subpattern count = 2
3311  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3312  No options  No options
3313  First char at start or follows newline  First char at start or follows newline
3314  Need char = 'z'  Need char = 'z'
# Line 3404  Need char = 'z' Line 3316  Need char = 'z'
3316  /((.*))\d+\1/I  /((.*))\d+\1/I
3317  Capturing subpattern count = 2  Capturing subpattern count = 2
3318  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3319  No options  No options
3320  No first char  No first char
3321  No need char  No need char
# Line 3421  Need char = 'b' Line 3332  Need char = 'b'
3332    
3333  /(?=a).*/I  /(?=a).*/I
3334  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3335  No options  No options
3336  First char = 'a'  First char = 'a'
3337  No need char  No need char
# Line 3468  No options Line 3378  No options
3378  No first char  No first char
3379  Need char = 'a'  Need char = 'a'
3380    
3381  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3382  Capturing subpattern count = 0  Capturing subpattern count = 1
3383  No options  No options
3384  First char = 'a'  First char = 'a'
3385  No need char  No need char
3386    
3387  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3388  Capturing subpattern count = 0  Capturing subpattern count = 1
3389  No options  No options
3390  First char = 'a'  First char = 'a'
3391  Need char = 'z'  Need char = 'z'
3392    
3393  /(?(1)abz)/I  /(?(1)abz)(.)/I
3394  Capturing subpattern count = 0  Capturing subpattern count = 1
3395  No options  No options
3396  No first char  No first char
3397  No need char  No need char
3398    
3399  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3400  Capturing subpattern count = 0  Capturing subpattern count = 1
3401  No options  No options
3402  No first char  No first char
3403  Need char = '3'  Need char = '3'
# Line 3527  Capturing subpattern count = 0 Line 3437  Capturing subpattern count = 0
3437  No options  No options
3438  No first char  No first char
3439  No need char  No need char
3440    Subject length lower bound = 1
3441  Starting byte set: a b  Starting byte set: a b
3442    
3443  /[^a]/I  /[^a]/I
3444  Capturing subpattern count = 0  Capturing subpattern count = 0
 Contains explicit CR or LF match  
3445  No options  No options
3446  No first char  No first char
3447  No need char  No need char
# Line 3547  Capturing subpattern count = 0 Line 3457  Capturing subpattern count = 0
3457  No options  No options
3458  No first char  No first char
3459  Need char = '6'  Need char = '6'
3460    Subject length lower bound = 4
3461  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
3462    
3463  /a^b/I  /a^b/I
# Line 3580  Capturing subpattern count = 0 Line 3491  Capturing subpattern count = 0
3491  Options: caseless  Options: caseless
3492  No first char  No first char
3493  No need char  No need char
3494    Subject length lower bound = 1
3495  Starting byte set: A B a b  Starting byte set: A B a b
3496    
3497  /[ab](?i)cd/IS  /[ab](?i)cd/IS
# Line 3587  Capturing subpattern count = 0 Line 3499  Capturing subpattern count = 0
3499  No options  No options
3500  No first char  No first char
3501  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3502    Subject length lower bound = 3
3503  Starting byte set: a b  Starting byte set: a b
3504    
3505  /abc(?C)def/I  /abc(?C)def/I
# Line 3744  No need char Line 3657  No need char
3657    
3658  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3659  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3660  No options  No options
3661  No first char  No first char
3662  No need char  No need char
# Line 3873  Callout 0: last capture = 1 Line 3785  Callout 0: last capture = 1
3785    
3786  /a(b+)(c*)(?C1)/I  /a(b+)(c*)(?C1)/I
3787  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3788  No options  No options
3789  First char = 'a'  First char = 'a'
3790  Need char = 'b'  Need char = 'b'
# Line 3899  No match Line 3810  No match
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 3940  Capturing subpattern count = 0 Line 3850  Capturing subpattern count = 0
3850  No options  No options
3851  No first char  No first char
3852  No need char  No need char
3853    Subject length lower bound = 1
3854  Starting byte set: a b  Starting byte set: a b
3855    
3856  /(?R)/I  /(?R)/I
# Line 3991  Failed: recursive call could loop indefi Line 3902  Failed: recursive call could loop indefi
3902    
3903  /^([^()]|\((?1)*\))*$/I  /^([^()]|\((?1)*\))*$/I
3904  Capturing subpattern count = 1  Capturing subpattern count = 1
 Contains explicit CR or LF match  
3905  Options: anchored  Options: anchored
3906  No first char  No first char
3907  No need char  No need char
# Line 4011  No match Line 3921  No match
3921    
3922  /^>abc>([^()]|\((?1)*\))*<xyz<$/I  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3923  Capturing subpattern count = 1  Capturing subpattern count = 1
 Contains explicit CR or LF match  
3924  Options: anchored  Options: anchored
3925  No first char  No first char
3926  Need char = '<'  Need char = '<'
# Line 4061  No options Line 3970  No options
3970  First char = 'a'  First char = 'a'
3971  Need char = 'b'  Need char = 'b'
3972    
 /^\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  
   
3973  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3974  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3975  Options: anchored  Options: anchored
3976  No first char  No first char
3977  No need char  No need char
# Line 4138  No match Line 4012  No match
4012    
4013  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4014  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
 Contains explicit CR or LF match  
4015  Options: extended  Options: extended
4016  First char = '<'  First char = '<'
4017  Need char = '>'  Need char = '>'
# Line 4313  Named capturing subpatterns: Line 4185  Named capturing subpatterns:
4185    one     1    one     1
4186    three   3    three   3
4187    two     2    two     2
 Partial matching not supported  
4188  Options: anchored caseless  Options: anchored caseless
4189  No first char  No first char
4190  No need char  No need char
# Line 4359  No need char Line 4230  No need char
4230    
4231  /(.*)a/Is  /(.*)a/Is
4232  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4233  Options: anchored dotall  Options: anchored dotall
4234  No first char  No first char
4235  Need char = 'a'  Need char = 'a'
# Line 4367  Need char = 'a' Line 4237  Need char = 'a'
4237  /(.*)a\1/Is  /(.*)a\1/Is
4238  Capturing subpattern count = 1  Capturing subpattern count = 1
4239  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4240  Options: dotall  Options: dotall
4241  No first char  No first char
4242  Need char = 'a'  Need char = 'a'
# Line 4375  Need char = 'a' Line 4244  Need char = 'a'
4244  /(.*)a(b)\2/Is  /(.*)a(b)\2/Is
4245  Capturing subpattern count = 2  Capturing subpattern count = 2
4246  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4247  Options: anchored dotall  Options: anchored dotall
4248  No first char  No first char
4249  Need char = 'b'  Need char = 'b'
4250    
4251  /((.*)a|(.*)b)z/Is  /((.*)a|(.*)b)z/Is
4252  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4253  Options: anchored dotall  Options: anchored dotall
4254  No first char  No first char
4255  Need char = 'z'  Need char = 'z'
# Line 4390  Need char = 'z' Line 4257  Need char = 'z'
4257  /((.*)a|(.*)b)z\1/Is  /((.*)a|(.*)b)z\1/Is
4258  Capturing subpattern count = 3  Capturing subpattern count = 3
4259  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4260  Options: dotall  Options: dotall
4261  No first char  No first char
4262  Need char = 'z'  Need char = 'z'
# Line 4398  Need char = 'z' Line 4264  Need char = 'z'
4264  /((.*)a|(.*)b)z\2/Is  /((.*)a|(.*)b)z\2/Is
4265  Capturing subpattern count = 3  Capturing subpattern count = 3
4266  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4267  Options: dotall  Options: dotall
4268  No first char  No first char
4269  Need char = 'z'  Need char = 'z'
# Line 4406  Need char = 'z' Line 4271  Need char = 'z'
4271  /((.*)a|(.*)b)z\3/Is  /((.*)a|(.*)b)z\3/Is
4272  Capturing subpattern count = 3  Capturing subpattern count = 3
4273  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4274  Options: dotall  Options: dotall
4275  No first char  No first char
4276  Need char = 'z'  Need char = 'z'
# Line 4414  Need char = 'z' Line 4278  Need char = 'z'
4278  /((.*)a|^(.*)b)z\3/Is  /((.*)a|^(.*)b)z\3/Is
4279  Capturing subpattern count = 3  Capturing subpattern count = 3
4280  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4281  Options: anchored dotall  Options: anchored dotall
4282  No first char  No first char
4283  Need char = 'z'  Need char = 'z'
4284    
4285  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4286  Capturing subpattern count = 31  Capturing subpattern count = 31
 Partial matching not supported  
4287  Options: anchored dotall  Options: anchored dotall
4288  No first char  No first char
4289  No need char  No need char
# Line 4429  No need char Line 4291  No need char
4291  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4292  Capturing subpattern count = 31  Capturing subpattern count = 31
4293  Max back reference = 31  Max back reference = 31
 Partial matching not supported  
4294  Options: dotall  Options: dotall
4295  No first char  No first char
4296  No need char  No need char
# Line 4437  No need char Line 4298  No need char
4298  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4299  Capturing subpattern count = 32  Capturing subpattern count = 32
4300  Max back reference = 32  Max back reference = 32
 Partial matching not supported  
4301  Options: dotall  Options: dotall
4302  No first char  No first char
4303  No need char  No need char
# Line 4504  Need char = 'c' Line 4364  Need char = 'c'
4364    
4365  /(a+)*zz/I  /(a+)*zz/I
4366  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4367  No options  No options
4368  No first char  No first char
4369  Need char = 'z'  Need char = 'z'
# Line 4641  Failed: two named subpatterns have the s Line 4500  Failed: two named subpatterns have the s
4500  Capturing subpattern count = 3  Capturing subpattern count = 3
4501  Named capturing subpatterns:  Named capturing subpatterns:
4502    elem   2    elem   2
 Partial matching not supported  
4503  No options  No options
4504  First char = '['  First char = '['
4505  Need char = ']'  Need char = ']'
# Line 4659  No match Line 4517  No match
4517  Capturing subpattern count = 3  Capturing subpattern count = 3
4518  Named capturing subpatterns:  Named capturing subpatterns:
4519    elem   2    elem   2
 Partial matching not supported  
4520  No options  No options
4521  First char = '['  First char = '['
4522  Need char = ']'  Need char = ']'
# Line 4766  No need char Line 4623  No need char
4623    
4624  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4625  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4626  Options: caseless  Options: caseless
4627  No first char  No first char
4628  Need char = 'g' (caseless)  Need char = 'g' (caseless)
# Line 4776  Need char = 'g' (caseless) Line 4632  Need char = 'g' (caseless)
4632    
4633  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4634  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4635  Options: caseless  Options: caseless
4636  No first char  No first char
4637  Need char = 'g' (caseless)  Need char = 'g' (caseless)
4638  Study returned NULL  Subject length lower bound = 8
4639    No set of starting bytes
4640       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
4641   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4642   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 4795  Study returned NULL Line 4651  Study returned NULL
4651          End          End
4652  ------------------------------------------------------------------  ------------------------------------------------------------------
4653  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4654  No options  No options
4655  No first char  No first char
4656  Need char = 'b'  Need char = 'b'
4657  Study returned NULL  Subject length lower bound = 1
4658    No set of starting bytes
4659    
4660  /(a|b)*.?c/ISDZ  /(a|b)*.?c/ISDZ
4661  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4819  Capturing subpattern count = 1 Line 4675  Capturing subpattern count = 1
4675  No options  No options
4676  No first char  No first char
4677  Need char = 'c'  Need char = 'c'
4678  Study returned NULL  Subject length lower bound = 1
4679    No set of starting bytes
4680    
4681  /abc(?C255)de(?C)f/DZ  /abc(?C255)de(?C)f/DZ
4682  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4888  No match Line 4745  No match
4745          End          End
4746  ------------------------------------------------------------------  ------------------------------------------------------------------
4747  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4748  Options:  Options:
4749  No first char  No first char
4750  Need char = 'b'  Need char = 'b'
# Line 4933  Need char = 'b' Line 4789  Need char = 'b'
4789          End          End
4790  ------------------------------------------------------------------  ------------------------------------------------------------------
4791  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4792  Options:  Options:
4793  First char = 'a'  First char = 'a'
4794  Need char = 'b'  Need char = 'b'
# Line 5371  No match Line 5226  No match
5226          End          End
5227  ------------------------------------------------------------------  ------------------------------------------------------------------
5228  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
5229  Options:  Options:
5230  No first char  No first char
5231  Need char = '3'  Need char = '3'
# Line 5403  Need char = '3' Line 5257  Need char = '3'
5257    
5258  /\b.*/I  /\b.*/I
5259  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5260  No options  No options
5261  No first char  No first char
5262  No need char  No need char
# Line 5412  No need char Line 5265  No need char
5265    
5266  /\b.*/Is  /\b.*/Is
5267  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5268  Options: dotall  Options: dotall
5269  No first char  No first char
5270  No need char  No need char
# Line 5421  No need char Line 5273  No need char
5273    
5274  /(?!.bcd).*/I  /(?!.bcd).*/I
5275  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5276  No options  No options
5277  No first char  No first char
5278  No need char  No need char
# Line 5434  No options Line 5285  No options
5285  First char = 'a'  First char = 'a'
5286  Need char = 'e'  Need char = 'e'
5287      ab\P      ab\P
5288  Partial match  Partial match: ab
5289      abc\P      abc\P
5290  Partial match  Partial match: abc
5291      abcd\P      abcd\P
5292  Partial match  Partial match: abcd
5293      abcde\P      abcde\P
5294   0: abcde   0: abcde
5295      the quick brown abc\P      the quick brown abc\P
5296  Partial match  Partial match: abc
5297      ** Failers\P      ** Failers\P
5298  No match  No match
5299      the quick brown abxyz fox\P      the quick brown abxyz fox\P
# Line 5467  Need char = '/' Line 5318  Need char = '/'
5318   1: 02   1: 02
5319   2: 05   2: 05
5320      1\P      1\P
5321  Partial match  Partial match: 1
5322      1/2\P      1/2\P
5323  Partial match  Partial match: 1/2
5324      1/2/0\P      1/2/0\P
5325  Partial match  Partial match: 1/2/0
5326      1/2/04\P      1/2/04\P
5327   0: 1/2/04   0: 1/2/04
5328   1: 1   1: 1
5329   2: 2   2: 2
5330      0\P      0\P
5331  Partial match  Partial match: 0
5332      02/\P      02/\P
5333  Partial match  Partial match: 02/
5334      02/0\P      02/0\P
5335  Partial match  Partial match: 02/0
5336      02/1\P      02/1\P
5337  Partial match  Partial match: 02/1
5338      ** Failers\P      ** Failers\P
5339  No match  No match
5340      \P      \P
# Line 5505  No match Line 5356  No match
5356    
5357  /0{0,2}ABC/I  /0{0,2}ABC/I
5358  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5359  No options  No options
5360  No first char  No first char
5361  Need char = 'C'  Need char = 'C'
5362    
5363  /\d{3,}ABC/I  /\d{3,}ABC/I
5364  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5365  No options  No options
5366  No first char  No first char
5367  Need char = 'C'  Need char = 'C'
5368    
5369  /\d*ABC/I  /\d*ABC/I
5370  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5371  No options  No options
5372  No first char  No first char
5373  Need char = 'C'  Need char = 'C'
5374    
5375  /[abc]+DE/I  /[abc]+DE/I
5376  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5377  No options  No options
5378  No first char  No first char
5379  Need char = 'E'  Need char = 'E'
# Line 5539  Need char = '3' Line 5386  Need char = '3'
5386      123\P      123\P
5387   0: 123   0: 123
5388      a\P      a\P
5389  Partial match  Partial match: a
5390      b\P      b\P
5391  Partial match  Partial match: b
5392      c\P      c\P
5393  Partial match  Partial match: c
5394      c12\P      c12\P
5395  Partial match  Partial match: c12
5396      c123\P      c123\P
5397   0: c123   0: c123
5398    
# Line 5555  Options: anchored Line 5402  Options: anchored
5402  No first char  No first char
5403  Need char = 'X'  Need char = 'X'
5404      1\P      1\P
5405  Partial match  Partial match: 1
5406      123\P      123\P
5407  Partial match  Partial match: 123
5408      123X      123X
5409   0: 123X   0: 123X
5410      1234\P      1234\P
5411  Partial match  Partial match: 1234
5412      1234X      1234X
5413   0: 1234X   0: 1234X
5414      12345\P      12345\P
5415  Partial match  Partial match: 12345
5416      12345X      12345X
5417   0: 12345X   0: 12345X
5418      *** Failers      *** Failers
# Line 5612  Capturing subpattern count = 1 Line 5459  Capturing subpattern count = 1
5459  No options  No options
5460  No first char  No first char
5461  No need char  No need char
5462    Subject length lower bound = 1
5463  Starting byte set: a b  Starting byte set: a b
5464  Compiled regex written to testsavedregex  Compiled regex written to testsavedregex
5465  Study data written to testsavedregex  Study data written to testsavedregex
# Line 5632  Capturing subpattern count = 1 Line 5480  Capturing subpattern count = 1
5480  No options  No options
5481  No first char  No first char
5482  No need char  No need char
5483    Subject length lower bound = 1
5484  Starting byte set: a b  Starting byte set: a b
5485  Compiled regex written to testsavedregex  Compiled regex written to testsavedregex
5486  Study data written to testsavedregex  Study data written to testsavedregex
# Line 5650  No match Line 5499  No match
5499  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5500  Capturing subpattern count = 3  Capturing subpattern count = 3
5501  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
5502  Options: multiline dotall  Options: multiline dotall
5503  First char = '<'  First char = '<'
5504  Need char = '>'  Need char = '>'
# Line 5703  No match Line 5551  No match
5551      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5552  No match  No match
5553    
5554  /ab.cd/IP  /ab.cd/P
5555      ab-cd      ab-cd
5556   0: ab-cd   0: ab-cd
5557      ab=cd      ab=cd
# Line 5713  No match: POSIX code 17: match failed Line 5561  No match: POSIX code 17: match failed
5561      ab\ncd      ab\ncd
5562  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
5563    
5564  /ab.cd/IPs  /ab.cd/Ps
5565      ab-cd      ab-cd
5566   0: ab-cd   0: ab-cd
5567      ab=cd      ab=cd
# Line 5957  Matched, but too many substrings Line 5805  Matched, but too many substrings
5805    
5806  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
5807  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
 Contains explicit CR or LF match  
5808  No options  No options
5809  No first char  No first char
5810  No need char  No need char
# Line 5971  No need char Line 5817  No need char
5817    
5818  /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
5819  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
 Contains explicit CR or LF match  
5820  No options  No options
5821  No first char  No first char
5822  No need char  No need char
# Line 5983  No need char Line 5827  No need char
5827    
5828  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
5829  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
 Contains explicit CR or LF match  
5830  No options  No options
5831  No first char  No first char
5832  No need char  No need char
# Line 5995  No need char Line 5837  No need char
5837    
5838  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
5839  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
 Contains explicit CR or LF match  
5840  No options  No options
5841  No first char  No first char
5842  No need char  No need char
# Line 6009  No need char Line 5849  No need char
5849    
5850  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
5851  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
 Contains explicit CR or LF match  
5852  No options  No options
5853  No first char  No first char
5854  No need char  No need char
# Line 6023  No need char Line 5861  No need char
5861      ((this))      ((this))
5862   0: ((this))   0: ((this))
5863    
5864  /a(b)c/IPN  /a(b)c/PN
5865      abc      abc
5866  Matched with REG_NOSUB  Matched with REG_NOSUB
5867    
5868  /a(?P<name>b)c/IPN  /a(?P<name>b)c/PN
5869      abc      abc
5870  Matched with REG_NOSUB  Matched with REG_NOSUB
5871    
# Line 6205  Named capturing subpatterns: Line 6043  Named capturing subpatterns:
6043    A   2    A   2
6044    A   3    A   3
6045  Options: anchored dupnames  Options: anchored dupnames
6046    Duplicate name status changes
6047  No first char  No first char
6048  No need char  No need char
6049      a1b\CA      a1b\CA
# Line 6351  Failed: octal value is greater than \377 Line 6190  Failed: octal value is greater than \377
6190    
6191  /\s*,\s*/IS  /\s*,\s*/IS
6192  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6193  No options  No options
6194  No first char  No first char
6195  Need char = ','  Need char = ','
6196    Subject length lower bound = 1
6197  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6198      \x0b,\x0b      \x0b,\x0b
6199   0: ,   0: ,
# Line 6481  Unknown newline type at: <bad> Line 6320  Unknown newline type at: <bad>
6320    
6321  /.*/I<lf>  /.*/I<lf>
6322  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6323  Options:  Options:
6324  Forced newline sequence: LF  Forced newline sequence: LF
6325  First char at start or follows newline  First char at start or follows newline
# Line 6507  No need char Line 6345  No need char
6345    
6346  /\w+(.)(.)?def/Is  /\w+(.)(.)?def/Is
6347  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
6348  Options: dotall  Options: dotall
6349  No first char  No first char
6350  Need char = 'f'  Need char = 'f'
# Line 6524  Need char = 'f' Line 6361  Need char = 'f'
6361    
6362  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6363  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6364  No options  No options
6365  No first char  No first char
6366  No need char  No need char
# Line 6659  No need char Line 6495  No need char
6495    
6496  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
6497  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6498  No options  No options
6499  No first char  No first char
6500  No need char  No need char
6501    Subject length lower bound = 1
6502  Starting byte set: C a b c d  Starting byte set: C a b c d
6503    
6504  /()[ab]xyz/IS  /()[ab]xyz/IS
# Line 6670  Capturing subpattern count = 1 Line 6506  Capturing subpattern count = 1
6506  No options  No options
6507  No first char  No first char
6508  Need char = 'z'  Need char = 'z'
6509    Subject length lower bound = 4
6510  Starting byte set: a b  Starting byte set: a b
6511    
6512  /(|)[ab]xyz/IS  /(|)[ab]xyz/IS
# Line 6677  Capturing subpattern count = 1 Line 6514  Capturing subpattern count = 1
6514  No options  No options
6515  No first char  No first char
6516  Need char = 'z'  Need char = 'z'
6517    Subject length lower bound = 4
6518  Starting byte set: a b  Starting byte set: a b
6519    
6520  /(|c)[ab]xyz/IS  /(|c)[ab]xyz/IS
# Line 6684  Capturing subpattern count = 1 Line 6522  Capturing subpattern count = 1
6522  No options  No options
6523  No first char  No first char
6524  Need char = 'z'  Need char = 'z'
6525    Subject length lower bound = 4
6526  Starting byte set: a b c  Starting byte set: a b c
6527    
6528  /(|c?)[ab]xyz/IS  /(|c?)[ab]xyz/IS
# Line 6691  Capturing subpattern count = 1 Line 6530  Capturing subpattern count = 1
6530  No options  No options
6531  No first char  No first char
6532  Need char = 'z'  Need char = 'z'
6533    Subject length lower bound = 4
6534  Starting byte set: a b c  Starting byte set: a b c
6535    
6536  /(d?|c?)[ab]xyz/IS  /(d?|c?)[ab]xyz/IS
# Line 6698  Capturing subpattern count = 1 Line 6538  Capturing subpattern count = 1
6538  No options  No options
6539  No first char  No first char
6540  Need char = 'z'  Need char = 'z'
6541    Subject length lower bound = 4
6542  Starting byte set: a b c d  Starting byte set: a b c d
6543    
6544  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
# Line 6705  Capturing subpattern count = 1 Line 6546  Capturing subpattern count = 1
6546  No options  No options
6547  No first char  No first char
6548  Need char = 'z'  Need char = 'z'
6549    Subject length lower bound = 4
6550  Starting byte set: a b c d  Starting byte set: a b c d
6551    
6552  /^a*b\d/DZ  /^a*b\d/DZ
# Line 6718  Starting byte set: a b c d Line 6560  Starting byte set: a b c d
6560          End          End
6561  ------------------------------------------------------------------  ------------------------------------------------------------------
6562  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6563  Options: anchored  Options: anchored
6564  No first char  No first char
6565  Need char = 'b'  Need char = 'b'
# Line 6734  Need char = 'b' Line 6575  Need char = 'b'
6575          End          End
6576  ------------------------------------------------------------------  ------------------------------------------------------------------
6577  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6578  Options: anchored  Options: anchored
6579  No first char  No first char
6580  Need char = 'b'  Need char = 'b'
# Line 6750  Need char = 'b' Line 6590  Need char = 'b'
6590          End          End
6591  ------------------------------------------------------------------  ------------------------------------------------------------------
6592  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6593  Options: anchored  Options: anchored
6594  No first char  No first char
6595  Need char = 'b'  Need char = 'b'
# Line 6766  Need char = 'b' Line 6605  Need char = 'b'
6605          End          End
6606  ------------------------------------------------------------------  ------------------------------------------------------------------
6607  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6608  Options: anchored  Options: anchored
6609  No first char  No first char
6610  Need char = 'A'  Need char = 'A'
# Line 6788  No match Line 6626  No match
6626          End          End
6627  ------------------------------------------------------------------  ------------------------------------------------------------------
6628  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6629  Options: anchored caseless  Options: anchored caseless
6630  No first char  No first char
6631  Need char = 'A' (caseless)  Need char = 'A' (caseless)
# Line 6799  Need char = 'A' (caseless) Line 6636  Need char = 'A' (caseless)
6636    
6637  /(a*|b*)[cd]/IS  /(a*|b*)[cd]/IS
6638  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6639  No options  No options
6640  No first char  No first char
6641  No need char  No need char
6642    Subject length lower bound = 1
6643  Starting byte set: a b c d  Starting byte set: a b c d
6644    
6645  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
6646  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6647  No options  No options
6648  No first char  No first char
6649  No need char  No need char
6650    Subject length lower bound = 1
6651  Starting byte set: a b c d  Starting byte set: a b c d
6652    
6653  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
6654  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6655  No options  No options
6656  No first char  No first char
6657  No need char  No need char
6658    Subject length lower bound = 1
6659  Starting byte set: a b c d  Starting byte set: a b c d
6660    
6661  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
6662  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6663  No options  No options
6664  No first char  No first char
6665  No need char  No need char
6666    Subject length lower bound = 2
6667  Starting byte set: a b  Starting byte set: a b
6668    
6669  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
# Line 7632  No match Line 7469  No match
7469          ^          ^
7470          CBra 1          CBra 1
7471          Cond          Cond
7472        2 Cond ref        2 Cond nref
7473          y          y
7474          Ket          Ket
7475          [()]          [()]
# Line 7698  Named capturing subpatterns: Line 7535  Named capturing subpatterns:
7535    one     1    one     1
7536    three   3    three   3
7537    two     2    two     2
 Partial matching not supported  
7538  Options: anchored caseless  Options: anchored caseless
7539  No first char  No first char
7540  No need char  No need char
# Line 7732  No match Line 7568  No match
7568  /(?=(\w+))\1:/I  /(?=(\w+))\1:/I
7569  Capturing subpattern count = 1  Capturing subpattern count = 1
7570  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
7571  No options  No options
7572  No first char  No first char
7573  Need char = ':'  Need char = ':'
# Line 7745  Capturing subpattern count = 1 Line 7580  Capturing subpattern count = 1
7580  Max back reference = 1  Max back reference = 1
7581  Named capturing subpatterns:  Named capturing subpatterns:
7582    abc   1    abc   1
 Partial matching not supported  
7583  No options  No options
7584  No first char  No first char
7585  Need char = ':'  Need char = ':'
# Line 7753  Need char = ':' Line 7587  Need char = ':'
7587   0: abcd:   0: abcd:
7588   1: abcd   1: abcd
7589    
 /(?'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  
   
7590  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7591      adaa      adaa
7592   0: adaa   0: adaa
# Line 7793  No match Line 7613  No match
7613      bddd      bddd
7614  No match  No match
7615    
 /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x  
     abd  
  0: abd  
  1: a  
     ce  
  0: ce  
   
7616  /(?(<bc))/  /(?(<bc))/
7617  Failed: malformed number or name after (?( at offset 6  Failed: malformed number or name after (?( at offset 6
7618    
# Line 7830  Failed: reference to non-existent subpat Line 7643  Failed: reference to non-existent subpat
7643   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7644   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7645    
 /^(?(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>  
   
7646  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7647  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7648    
# Line 7889  No match Line 7684  No match
7684  No match  No match
7685    
7686  /^abc./mgx<any>  /^abc./mgx<any>
7687      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
7688   0: abc1   0: abc1
7689   0: abc2   0: abc2
7690   0: abc3   0: abc3
# Line 7899  No match Line 7694  No match
7694   0: abc7   0: abc7
7695    
7696  /abc.$/mgx<any>  /abc.$/mgx<any>
7697      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
7698   0: abc1   0: abc1
7699   0: abc2   0: abc2
7700   0: abc3   0: abc3
# Line 7913  No match Line 7708  No match
7708  /a/<any><crlf>  /a/<any><crlf>
7709  Failed: inconsistent NEWLINE options at offset 0  Failed: inconsistent NEWLINE options at offset 0
7710    
7711  /^a\Rb/  /^a\Rb/<bsr_unicode>
7712      a\nb      a\nb
7713   0: a\x0ab   0: a\x0ab
7714      a\rb      a\rb
# Line 7931  No match Line 7726  No match
7726      a\n\rb      a\n\rb
7727  No match  No match
7728    
7729  /^a\R*b/  /^a\R*b/<bsr_unicode>
7730      ab      ab
7731   0: ab   0: ab
7732      a\nb      a\nb
# Line 7951  No match Line 7746  No match
7746      a\n\r\x85\x0cb      a\n\r\x85\x0cb
7747   0: a\x0a\x0d\x85\x0cb   0: a\x0a\x0d\x85\x0cb
7748    
7749  /^a\R+b/  /^a\R+b/<bsr_unicode>
7750      a\nb      a\nb
7751   0: a\x0ab   0: a\x0ab
7752      a\rb      a\rb
# Line 7973  No match Line 7768  No match
7768      ab      ab
7769  No match  No match
7770    
7771  /^a\R{1,3}b/  /^a\R{1,3}b/<bsr_unicode>
7772      a\nb      a\nb
7773   0: a\x0ab   0: a\x0ab
7774      a\n\rb      a\n\rb
# Line 7995  No match Line 7790  No match
7790      a\r      a\r
7791  No match  No match
7792    
7793  /^a[\R]b/  /^a[\R]b/<bsr_unicode>
7794      aRb      aRb
7795   0: aRb   0: aRb
7796      ** Failers      ** Failers
# Line 8025  Need char = 'P' Line 7820  Need char = 'P'
7820   0: PXP   0: PXP
7821   1: P   1: P
7822    
 /(?(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  
   
7823  /(?:a(?&abc)b)*(?<abc>x)/  /(?:a(?&abc)b)*(?<abc>x)/
7824      123axbaxbaxbx456      123axbaxbaxbx456
7825   0: axbaxbaxbx   0: axbaxbaxbx
# Line 8102  No match Line 7857  No match
7857     DEFabcABCXYZ     DEFabcABCXYZ
7858  No match  No match
7859    
 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/  
     ababababbbabZXXXX  
  0: ababababbbabZ  
  1: ab  
  2: b  
   
7860  /^(a)\g-2/  /^(a)\g-2/
7861  Failed: reference to non-existent subpattern at offset 7  Failed: reference to non-existent subpattern at offset 7
7862    
7863  /^(a)\g/  /^(a)\g/
7864  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
7865    
7866  /^(a)\g{0}/  /^(a)\g{0}/
7867  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
7868    
7869  /^(a)\g{3/  /^(a)\g{3/
7870  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
7871    
7872  /^(a)\g{4a}/  /^(a)\g{4a}/
7873  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
# Line 8201  No match Line 7950  No match
7950   0+   0+
7951    
7952  /abc.$/mgx<anycrlf>  /abc.$/mgx<anycrlf>
7953      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
7954   0: abc1   0: abc1
7955   0: abc4   0: abc4
7956   0: abc5   0: abc5
# Line 8255  No match Line 8004  No match
8004  No match  No match
8005    
8006  /x(?-0)y/  /x(?-0)y/
8007  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
8008    
8009  /x(?-1)y/  /x(?-1)y/
8010  Failed: reference to non-existent subpattern at offset 5  Failed: reference to non-existent subpattern at offset 5
8011    
8012  /x(?+0)y/  /x(?+0)y/
8013  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
8014    
8015  /x(?+1)y/  /x(?+1)y/
8016  Failed: reference to non-existent subpattern at offset 5  Failed: reference to non-existent subpattern at offset 5
# Line 8343  Failed: reference to non-existent subpat Line 8092  Failed: reference to non-existent subpat
8092  /((?(-2)a))/BZ  /((?(-2)a))/BZ
8093  Failed: reference to non-existent subpattern at offset 7  Failed: reference to non-existent subpattern at offset 7
8094    
8095  /^(?(+1)X|Y)/BZ  /^(?(+1)X|Y)(.)/BZ
8096  ------------------------------------------------------------------  ------------------------------------------------------------------
8097          Bra          Bra
8098          ^          ^
# Line 8353  Failed: reference to non-existent subpat Line 8102  Failed: reference to non-existent subpat
8102          Alt          Alt
8103          Y          Y
8104          Ket          Ket
8105            CBra 1
8106            Any
8107            Ket
8108          Ket          Ket
8109          End          End
8110  ------------------------------------------------------------------  ------------------------------------------------------------------
8111      Y      Y!
8112   0: Y   0: Y!
8113     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  
8114    
8115  /(?<A>tom|bon)-\k{A}/  /(?<A>tom|bon)-\k{A}/
8116      tom-tom      tom-tom
# Line 8391  No match Line 8124  No match
8124      tom-bon      tom-bon
8125  No match  No match
8126    
 /(?<A>tom|bon)-\g{A}/  
     tom-tom  
  0: tom-tom  
  1: tom  
     bon-bon  
  0: bon-bon  
  1: bon  
   
8127  /\g{A/  /\g{A/
8128  Failed: syntax error in subpattern name (missing terminator) at offset 4  Failed: syntax error in subpattern name (missing terminator) at offset 4
8129    
# Line 8493  Failed: syntax error in subpattern name Line 8218  Failed: syntax error in subpattern name
8218   3: <unset>   3: <unset>
8219   4: x   4: x
8220    
 /(?|(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  
   
8221  /[\h]/BZ  /[\h]/BZ
8222  ------------------------------------------------------------------  ------------------------------------------------------------------
8223          Bra          Bra
# Line 8865  Failed: missing terminating ] for charac Line 8514  Failed: missing terminating ] for charac
8514          End          End
8515  ------------------------------------------------------------------  ------------------------------------------------------------------
8516    
 /^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  
   
8517  /^a+(*FAIL)/C  /^a+(*FAIL)/C
8518      aaaaaa      aaaaaa
8519  --->aaaaaa  --->aaaaaa
# Line 9168  No match Line 8736  No match
8736      a\x85b      a\x85b
8737  No match  No match
8738    
8739  / End of testinput2 /  /a\Rb/I<bsr_anycrlf>
8740    Capturing subpattern count = 0
8741    Options: bsr_anycrlf
8742    First char = 'a'
8743    Need char = 'b'
8744        a\rb
8745     0: a\x0db
8746        a\nb
8747     0: a\x0ab
8748        a\r\nb
8749     0: a\x0d\x0ab
8750        ** Failers
8751    No match
8752        a\x85b
8753    No match
8754        a\x0bb
8755    No match
8756    
8757    /a\Rb/I<bsr_unicode>
8758    Capturing subpattern count = 0
8759    Options: bsr_unicode
8760    First char = 'a'
8761    Need char = 'b'
8762        a\rb
8763     0: a\x0db
8764        a\nb
8765     0: a\x0ab
8766        a\r\nb
8767     0: a\x0d\x0ab
8768        a\x85b
8769     0: a\x85b
8770        a\x0bb
8771     0: a\x0bb
8772        ** Failers
8773    No match
8774        a\x85b\<bsr_anycrlf>
8775    No match
8776        a\x0bb\<bsr_anycrlf>
8777    No match
8778    
8779    /a\R?b/I<bsr_anycrlf>
8780    Capturing subpattern count = 0
8781    Options: bsr_anycrlf
8782    First char = 'a'
8783    Need char = 'b'
8784        a\rb
8785     0: a\x0db
8786        a\nb
8787     0: a\x0ab
8788        a\r\nb
8789     0: a\x0d\x0ab
8790        ** Failers
8791    No match
8792        a\x85b
8793    No match
8794        a\x0bb
8795    No match
8796    
8797    /a\R?b/I<bsr_unicode>
8798    Capturing subpattern count = 0
8799    Options: bsr_unicode
8800    First char = 'a'
8801    Need char = 'b'
8802        a\rb
8803     0: a\x0db
8804        a\nb
8805     0: a\x0ab
8806        a\r\nb
8807     0: a\x0d\x0ab
8808        a\x85b
8809     0: a\x85b
8810        a\x0bb
8811     0: a\x0bb
8812        ** Failers
8813    No match
8814        a\x85b\<bsr_anycrlf>
8815    No match
8816        a\x0bb\<bsr_anycrlf>
8817    No match
8818    
8819    /a\R{2,4}b/I<bsr_anycrlf>
8820    Capturing subpattern count = 0
8821    Options: bsr_anycrlf
8822    First char = 'a'
8823    Need char = 'b'
8824        a\r\n\nb
8825     0: a\x0d\x0a\x0ab
8826        a\n\r\rb
8827     0: a\x0a\x0d\x0db
8828        a\r\n\r\n\r\n\r\nb
8829     0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
8830        ** Failers
8831    No match
8832        a\x85\85b
8833    No match
8834        a\x0b\0bb
8835    No match
8836    
8837    /a\R{2,4}b/I<bsr_unicode>
8838    Capturing subpattern count = 0
8839    Options: bsr_unicode
8840    First char = 'a'
8841    Need char = 'b'
8842        a\r\rb
8843     0: a\x0d\x0db
8844        a\n\n\nb
8845     0: a\x0a\x0a\x0ab
8846        a\r\n\n\r\rb
8847     0: a\x0d\x0a\x0a\x0d\x0db
8848        a\x85\85b
8849    No match
8850        a\x0b\0bb
8851    No match
8852        ** Failers
8853    No match
8854        a\r\r\r\r\rb
8855    No match
8856        a\x85\85b\<bsr_anycrlf>
8857    No match
8858        a\x0b\0bb\<bsr_anycrlf>
8859    No match
8860    
8861    /(*BSR_ANYCRLF)a\Rb/I
8862    Capturing subpattern count = 0
8863    Options: bsr_anycrlf
8864    First char = 'a'
8865    Need char = 'b'
8866        a\nb
8867     0: a\x0ab
8868        a\rb
8869     0: a\x0db
8870    
8871    /(*BSR_UNICODE)a\Rb/I
8872    Capturing subpattern count = 0
8873    Options: bsr_unicode
8874    First char = 'a'
8875    Need char = 'b'
8876        a\x85b
8877     0: a\x85b
8878    
8879    /(*BSR_ANYCRLF)(*CRLF)a\Rb/I
8880    Capturing subpattern count = 0
8881    Options: bsr_anycrlf
8882    Forced newline sequence: CRLF
8883    First char = 'a'
8884    Need char = 'b'
8885        a\nb
8886     0: a\x0ab
8887        a\rb
8888     0: a\x0db
8889    
8890    /(*CRLF)(*BSR_UNICODE)a\Rb/I
8891    Capturing subpattern count = 0
8892    Options: bsr_unicode
8893    Forced newline sequence: CRLF
8894    First char = 'a'
8895    Need char = 'b'
8896        a\x85b
8897     0: a\x85b
8898    
8899    /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
8900    Capturing subpattern count = 0
8901    Options: bsr_anycrlf
8902    Forced newline sequence: CR
8903    First char = 'a'
8904    Need char = 'b'
8905    
8906    /(?<a>)(?&)/
8907    Failed: subpattern name expected at offset 9
8908    
8909    /(?<abc>)(?&a)/
8910    Failed: reference to non-existent subpattern at offset 12
8911    
8912    /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
8913    Failed: reference to non-existent subpattern at offset 32
8914    
8915    /(?+-a)/
8916    Failed: digit expected after (?+ at offset 3
8917    
8918    /(?-+a)/
8919    Failed: unrecognized character after (? or (?- at offset 3
8920    
8921    /(?(-1))/
8922    Failed: reference to non-existent subpattern at offset 6
8923    
8924    /(?(+10))/
8925    Failed: reference to non-existent subpattern at offset 7
8926    
8927    /(?(10))/
8928    Failed: reference to non-existent subpattern at offset 6
8929    
8930    /(?(+2))()()/
8931    
8932    /(?(2))()()/
8933    
8934    /\k''/
8935    Failed: subpattern name expected at offset 3
8936    
8937    /\k<>/
8938    Failed: subpattern name expected at offset 3
8939    
8940    /\k{}/
8941    Failed: subpattern name expected at offset 3
8942    
8943    /(?P=)/
8944    Failed: subpattern name expected at offset 4
8945    
8946    /(?P>)/
8947    Failed: subpattern name expected at offset 4
8948    
8949    /(?!\w)(?R)/
8950    Failed: recursive call could loop indefinitely at offset 9
8951    
8952    /(?=\w)(?R)/
8953    Failed: recursive call could loop indefinitely at offset 9
8954    
8955    /(?<!\w)(?R)/
8956    Failed: recursive call could loop indefinitely at offset 10
8957    
8958    /(?<=\w)(?R)/
8959    Failed: recursive call could loop indefinitely at offset 10
8960    
8961    /[[:foo:]]/
8962    Failed: unknown POSIX class name at offset 3
8963    
8964    /[[:1234:]]/
8965    Failed: unknown POSIX class name at offset 3
8966    
8967    /[[:f\oo:]]/
8968    Failed: unknown POSIX class name at offset 3
8969    
8970    /[[: :]]/
8971    Failed: unknown POSIX class name at offset 3
8972    
8973    /[[:...:]]/
8974    Failed: unknown POSIX class name at offset 3
8975    
8976    /[[:l\ower:]]/
8977    Failed: unknown POSIX class name at offset 3
8978    
8979    /[[:abc\:]]/
8980    Failed: unknown POSIX class name at offset 3
8981    
8982    /[abc[:x\]pqr:]]/
8983    Failed: unknown POSIX class name at offset 6
8984    
8985    /[[:a\dz:]]/
8986    Failed: unknown POSIX class name at offset 3
8987    
8988    /(^(a|b\g<-1'c))/
8989    Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
8990    
8991    /^(?+1)(?<a>x|y){0}z/
8992        xzxx
8993     0: xz
8994        yzyy
8995     0: yz
8996        ** Failers
8997    No match
8998        xxz
8999    No match
9000    
9001    /(\3)(\1)(a)/
9002        cat
9003    No match
9004    
9005    /(\3)(\1)(a)/<JS>
9006        cat
9007     0: a
9008     1:
9009     2:
9010     3: a
9011    
9012    /TA]/
9013        The ACTA] comes
9014     0: TA]
9015    
9016    /TA]/<JS>
9017    Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
9018    
9019    /(?2)[]a()b](abc)/
9020    Failed: reference to non-existent subpattern at offset 3
9021    
9022    /(?2)[^]a()b](abc)/
9023    Failed: reference to non-existent subpattern at offset 3
9024    
9025    /(?1)[]a()b](abc)/
9026        abcbabc
9027     0: abcbabc
9028     1: abc
9029        ** Failers
9030    No match
9031        abcXabc
9032    No match
9033    
9034    /(?1)[^]a()b](abc)/
9035        abcXabc
9036     0: abcXabc
9037     1: abc
9038        ** Failers
9039    No match
9040        abcbabc
9041    No match
9042    
9043    /(?2)[]a()b](abc)(xyz)/
9044        xyzbabcxyz
9045     0: xyzbabcxyz
9046     1: abc
9047     2: xyz
9048    
9049    /(?&N)[]a(?<N>)](?<M>abc)/
9050    Failed: reference to non-existent subpattern at offset 4
9051    
9052    /(?&N)[]a(?<N>)](abc)/
9053    Failed: reference to non-existent subpattern at offset 4
9054    
9055    /a[]b/
9056    Failed: missing terminating ] for character class at offset 4
9057    
9058    /a[^]b/
9059    Failed: missing terminating ] for character class at offset 5
9060    
9061    /a[]b/<JS>
9062        ** Failers
9063    No match
9064        ab
9065    No match
9066    
9067    /a[]+b/<JS>
9068        ** Failers
9069    No match
9070        ab
9071    No match
9072    
9073    /a[]*+b/<JS>
9074        ** Failers
9075    No match
9076        ab
9077    No match
9078    
9079    /a[^]b/<JS>
9080        aXb
9081     0: aXb
9082        a\nb
9083     0: a\x0ab
9084        ** Failers
9085    No match
9086        ab
9087    No match
9088    
9089    /a[^]+b/<JS>
9090        aXb
9091     0: aXb
9092        a\nX\nXb
9093     0: a\x0aX\x0aXb
9094        ** Failers
9095    No match
9096        ab
9097    No match
9098    
9099    /a(?!)+b/
9100    Failed: nothing to repeat at offset 5
9101    
9102    /a(*FAIL)+b/
9103    Failed: nothing to repeat at offset 8
9104    
9105    /(abc|pqr|123){0}[xyz]/SI
9106    Capturing subpattern count = 1
9107    No options
9108    No first char
9109    No need char
9110    Subject length lower bound = 1
9111    Starting byte set: x y z
9112    
9113    /(?(?=.*b)b|^)/CI
9114    Capturing subpattern count = 0
9115    Options:
9116    No first char
9117    No need char
9118       adc
9119    --->adc
9120     +0 ^       (?(?=.*b)b|^)
9121     +2 ^       (?=.*b)
9122     +5 ^       .*
9123     +7 ^  ^    b
9124     +7 ^ ^     b
9125     +7 ^^      b
9126     +7 ^       b
9127    +12 ^       )
9128    +13 ^
9129     0:
9130       abc
9131    --->abc
9132     +0 ^       (?(?=.*b)b|^)
9133     +2 ^       (?=.*b)
9134     +5 ^       .*
9135     +7 ^  ^    b
9136     +7 ^ ^     b
9137     +7 ^^      b
9138     +8 ^ ^     )
9139     +9 ^       b
9140     +0  ^      (?(?=.*b)b|^)
9141     +2  ^      (?=.*b)
9142     +5  ^      .*
9143     +7  ^ ^    b
9144     +7  ^^     b
9145     +7  ^      b
9146     +8  ^^     )
9147     +9  ^      b
9148    +10  ^^     |
9149    +13  ^^
9150     0: b
9151    
9152    /(?(?=b).*b|^d)/I
9153    Capturing subpattern count = 0
9154    No options
9155    No first char
9156    No need char
9157    
9158    /(?(?=.*b).*b|^d)/I
9159    Capturing subpattern count = 0
9160    No options
9161    First char at start or follows newline
9162    No need char
9163    
9164    /a?|b?/P
9165        abc
9166     0: a
9167        ** Failers
9168     0:
9169        ddd\N
9170    No match: POSIX code 17: match failed
9171    
9172    /xyz/C
9173      xyz
9174    --->xyz
9175     +0 ^       x
9176     +1 ^^      y
9177     +2 ^ ^     z
9178     +3 ^  ^
9179     0: xyz
9180      abcxyz
9181    --->abcxyz
9182     +0    ^       x
9183     +1    ^^      y
9184     +2    ^ ^     z
9185     +3    ^  ^
9186     0: xyz
9187      abcxyz\Y
9188    --->abcxyz
9189     +0 ^          x
9190     +0  ^         x
9191     +0   ^        x
9192     +0    ^       x
9193     +1    ^^      y
9194     +2    ^ ^     z
9195     +3    ^  ^
9196     0: xyz
9197      ** Failers
9198    No match
9199      abc
9200    No match
9201      abc\Y
9202    --->abc
9203     +0 ^       x
9204     +0  ^      x
9205     +0   ^     x
9206     +0    ^    x
9207    No match
9208      abcxypqr
9209    No match
9210      abcxypqr\Y
9211    --->abcxypqr
9212     +0 ^            x
9213     +0  ^           x
9214     +0   ^          x
9215     +0    ^         x
9216     +1    ^^        y
9217     +2    ^ ^       z
9218     +0     ^        x
9219     +0      ^       x
9220     +0       ^      x
9221     +0        ^     x
9222     +0         ^    x
9223    No match
9224    
9225    /^"((?(?=[a])[^"])|b)*"$/C
9226        "ab"
9227    --->"ab"
9228     +0 ^        ^
9229     +1 ^        "
9230     +2 ^^       ((?(?=[a])[^"])|b)*
9231     +3 ^^       (?(?=[a])[^"])
9232     +5 ^^       (?=[a])
9233     +8 ^^       [a]
9234    +11 ^ ^      )
9235    +12 ^^       [^"]
9236    +16 ^ ^      )
9237    +17 ^ ^      |
9238     +3 ^ ^      (?(?=[a])[^"])
9239     +5 ^ ^      (?=[a])
9240     +8 ^ ^      [a]
9241    +21 ^ ^      "
9242    +18 ^ ^      b
9243    +19 ^  ^     )
9244     +3 ^  ^     (?(?=[a])[^"])
9245     +5 ^  ^     (?=[a])
9246     +8 ^  ^     [a]
9247    +21 ^  ^     "
9248    +22 ^   ^    $
9249    +23 ^   ^
9250     0: "ab"
9251     1:
9252    
9253    /^"((?(?=[a])[^"])|b)*"$/
9254        "ab"
9255     0: "ab"
9256     1:
9257    
9258    /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9259    Failed: reference to non-existent subpattern at offset 5
9260    
9261    /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9262        XYabcdY
9263     0: XYabcdY
9264     1: a
9265     2: b
9266     3: c
9267     4: d
9268     5: Y
9269    
9270    /Xa{2,4}b/
9271        X\P
9272    Partial match: X
9273        Xa\P
9274    Partial match: Xa
9275        Xaa\P
9276    Partial match: Xaa
9277        Xaaa\P
9278    Partial match: Xaaa
9279        Xaaaa\P
9280    Partial match: Xaaaa
9281    
9282    /Xa{2,4}?b/
9283        X\P
9284    Partial match: X
9285        Xa\P
9286    Partial match: Xa
9287        Xaa\P
9288    Partial match: Xaa
9289        Xaaa\P
9290    Partial match: Xaaa
9291        Xaaaa\P
9292    Partial match: Xaaaa
9293    
9294    /Xa{2,4}+b/
9295        X\P
9296    Partial match: X
9297        Xa\P
9298    Partial match: Xa
9299        Xaa\P
9300    Partial match: Xaa
9301        Xaaa\P
9302    Partial match: Xaaa
9303        Xaaaa\P
9304    Partial match: Xaaaa
9305    
9306    /X\d{2,4}b/
9307        X\P
9308    Partial match: X
9309        X3\P
9310    Partial match: X3
9311        X33\P
9312    Partial match: X33
9313        X333\P
9314    Partial match: X333
9315        X3333\P
9316    Partial match: X3333
9317    
9318    /X\d{2,4}?b/
9319        X\P
9320    Partial match: X
9321        X3\P
9322    Partial match: X3
9323        X33\P
9324    Partial match: X33
9325        X333\P
9326    Partial match: X333
9327        X3333\P
9328    Partial match: X3333
9329    
9330    /X\d{2,4}+b/
9331        X\P
9332    Partial match: X
9333        X3\P
9334    Partial match: X3
9335        X33\P
9336    Partial match: X33
9337        X333\P
9338    Partial match: X333
9339        X3333\P
9340    Partial match: X3333
9341    
9342    /X\D{2,4}b/
9343        X\P
9344    Partial match: X
9345        Xa\P
9346    Partial match: Xa
9347        Xaa\P
9348    Partial match: Xaa
9349        Xaaa\P
9350    Partial match: Xaaa
9351        Xaaaa\P
9352    Partial match: Xaaaa
9353    
9354    /X\D{2,4}?b/
9355        X\P
9356    Partial match: X
9357        Xa\P
9358    Partial match: Xa
9359        Xaa\P
9360    Partial match: Xaa
9361        Xaaa\P
9362    Partial match: Xaaa
9363        Xaaaa\P
9364    Partial match: Xaaaa
9365    
9366    /X\D{2,4}+b/
9367        X\P
9368    Partial match: X
9369        Xa\P
9370    Partial match: Xa
9371        Xaa\P
9372    Partial match: Xaa
9373        Xaaa\P
9374    Partial match: Xaaa
9375        Xaaaa\P
9376    Partial match: Xaaaa
9377    
9378    /X[abc]{2,4}b/
9379        X\P
9380    Partial match: X
9381        Xa\P
9382    Partial match: Xa
9383        Xaa\P
9384    Partial match: Xaa
9385        Xaaa\P
9386    Partial match: Xaaa
9387        Xaaaa\P
9388    Partial match: Xaaaa
9389    
9390    /X[abc]{2,4}?b/
9391        X\P
9392    Partial match: X
9393        Xa\P
9394    Partial match: Xa
9395        Xaa\P
9396    Partial match: Xaa
9397        Xaaa\P
9398    Partial match: Xaaa
9399        Xaaaa\P
9400    Partial match: Xaaaa
9401    
9402    /X[abc]{2,4}+b/
9403        X\P
9404    Partial match: X
9405        Xa\P
9406    Partial match: Xa
9407        Xaa\P
9408    Partial match: Xaa
9409        Xaaa\P
9410    Partial match: Xaaa
9411        Xaaaa\P
9412    Partial match: Xaaaa
9413    
9414    /X[^a]{2,4}b/
9415        X\P
9416    Partial match: X
9417        Xz\P
9418    Partial match: Xz
9419        Xzz\P
9420    Partial match: Xzz
9421        Xzzz\P
9422    Partial match: Xzzz
9423        Xzzzz\P
9424    Partial match: Xzzzz
9425    
9426    /X[^a]{2,4}?b/
9427        X\P
9428    Partial match: X
9429        Xz\P
9430    Partial match: Xz
9431        Xzz\P
9432    Partial match: Xzz
9433        Xzzz\P
9434    Partial match: Xzzz
9435        Xzzzz\P
9436    Partial match: Xzzzz
9437    
9438    /X[^a]{2,4}+b/
9439        X\P
9440    Partial match: X
9441        Xz\P
9442    Partial match: Xz
9443        Xzz\P
9444    Partial match: Xzz
9445        Xzzz\P
9446    Partial match: Xzzz
9447        Xzzzz\P
9448    Partial match: Xzzzz
9449    
9450    /(Y)X\1{2,4}b/
9451        YX\P
9452    Partial match: YX
9453        YXY\P
9454    Partial match: YXY
9455        YXYY\P
9456    Partial match: YXYY
9457        YXYYY\P
9458    Partial match: YXYYY
9459        YXYYYY\P
9460    Partial match: YXYYYY
9461    
9462    /(Y)X\1{2,4}?b/
9463        YX\P
9464    Partial match: YX
9465        YXY\P
9466    Partial match: YXY
9467        YXYY\P
9468    Partial match: YXYY
9469        YXYYY\P
9470    Partial match: YXYYY
9471        YXYYYY\P
9472    Partial match: YXYYYY
9473    
9474    /(Y)X\1{2,4}+b/
9475        YX\P
9476    Partial match: YX
9477        YXY\P
9478    Partial match: YXY
9479        YXYY\P
9480    Partial match: YXYY
9481        YXYYY\P
9482    Partial match: YXYYY
9483        YXYYYY\P
9484    Partial match: YXYYYY
9485    
9486    /\++\KZ|\d+X|9+Y/
9487        ++++123999\P
9488    Partial match: 123999
9489        ++++123999Y\P
9490     0: 999Y
9491        ++++Z1234\P
9492     0: Z
9493    
9494    /Z(*F)/
9495        Z\P
9496    No match
9497        ZA\P
9498    No match
9499    
9500    /Z(?!)/
9501        Z\P
9502    No match
9503        ZA\P
9504    No match
9505    
9506    /dog(sbody)?/
9507        dogs\P
9508     0: dog
9509        dogs\P\P
9510    Partial match: dogs
9511    
9512    /dog(sbody)??/
9513        dogs\P
9514     0: dog
9515        dogs\P\P
9516     0: dog
9517    
9518    /dog|dogsbody/
9519        dogs\P
9520     0: dog
9521        dogs\P\P
9522     0: dog
9523    
9524    /dogsbody|dog/
9525        dogs\P
9526     0: dog
9527        dogs\P\P
9528    Partial match: dogs
9529    
9530    /\bthe cat\b/
9531        the cat\P
9532     0: the cat
9533        the cat\P\P
9534    Partial match: the cat
9535    
9536    /abc/
9537       abc\P
9538     0: abc
9539       abc\P\P
9540     0: abc
9541    
9542    /\w+A/P
9543       CDAAAAB
9544     0: CDAAAA
9545    
9546    /\w+A/PU
9547       CDAAAAB
9548     0: CDA
9549    
9550    /abc\K123/
9551        xyzabc123pqr
9552     0: 123
9553        xyzabc12\P
9554    Partial match: abc12
9555        xyzabc12\P\P
9556    Partial match: abc12
9557    
9558    /(?<=abc)123/
9559        xyzabc123pqr
9560     0: 123
9561        xyzabc12\P
9562    Partial match: abc12
9563        xyzabc12\P\P
9564    Partial match: abc12
9565    
9566    /\babc\b/
9567        +++abc+++
9568     0: abc
9569        +++ab\P
9570    Partial match: +ab
9571        +++ab\P\P
9572    Partial match: +ab
9573    
9574    /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9575    ------------------------------------------------------------------
9576            Bra
9577            Once
9578            Recurse
9579            Ket
9580            Once
9581            Recurse
9582            Ket
9583            Cond
9584            Cond def
9585            CBra 1
9586            <
9587            [^m]
9588            [^>]
9589            >
9590            [^<]
9591            Ket
9592            CBra 2
9593            \w*+
9594            Ket
9595            Ket
9596            Ket
9597            End
9598    ------------------------------------------------------------------
9599    
9600    /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9601    ------------------------------------------------------------------
9602            Bra
9603            Once
9604            Recurse
9605            Ket
9606            Once
9607            Recurse
9608            Ket
9609            Cond
9610            Cond def
9611            CBra 1
9612            <
9613            [\x00-/:-\xff] (neg)
9614            [^>]
9615            >
9616            [^<]
9617            Ket
9618            CBra 2
9619            \w*+
9620            Ket
9621            Ket
9622            Ket
9623            End
9624    ------------------------------------------------------------------
9625    
9626    /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9627    ------------------------------------------------------------------
9628            Bra
9629            CBra 1
9630            ab
9631            Ket
9632            CBra 2
9633            x
9634            CBra 3
9635            y
9636            Ket
9637            z
9638            CBra 4
9639            cd
9640            Close 4
9641            Close 2
9642            *ACCEPT
9643            Ket
9644            Ket
9645            pq
9646            Ket
9647            End
9648    ------------------------------------------------------------------
9649    
9650    /abc\K/+
9651        abcdef
9652     0:
9653     0+ def
9654        abcdef\N\N
9655     0:
9656     0+ def
9657        xyzabcdef\N\N
9658     0:
9659     0+ def
9660        ** Failers
9661    No match
9662        abcdef\N
9663    No match
9664        xyzabcdef\N
9665    No match
9666    
9667    /^(?:(?=abc)|abc\K)/+
9668        abcdef
9669     0:
9670     0+ abcdef
9671        abcdef\N\N
9672     0:
9673     0+ def
9674        ** Failers
9675    No match
9676        abcdef\N
9677    No match
9678    
9679    /a?b?/+
9680        xyz
9681     0:
9682     0+ xyz
9683        xyzabc
9684     0:
9685     0+ xyzabc
9686        xyzabc\N
9687     0: ab
9688     0+ c
9689        xyzabc\N\N
9690     0:
9691     0+ yzabc
9692        xyz\N\N
9693     0:
9694     0+ yz
9695        ** Failers
9696     0:
9697     0+ ** Failers
9698        xyz\N
9699    No match
9700    
9701    /^a?b?/+
9702        xyz
9703     0:
9704     0+ xyz
9705        xyzabc
9706     0:
9707     0+ xyzabc
9708        ** Failers
9709     0:
9710     0+ ** Failers
9711        xyzabc\N
9712    No match
9713        xyzabc\N\N
9714    No match
9715        xyz\N\N
9716    No match
9717        xyz\N
9718    No match
9719    
9720    /^(?<name>a|b\g<name>c)/
9721        aaaa
9722     0: a
9723     1: a
9724        bacxxx
9725     0: bac
9726     1: bac
9727        bbaccxxx
9728     0: bbacc
9729     1: bbacc
9730        bbbacccxx
9731     0: bbbaccc
9732     1: bbbaccc
9733    
9734    /^(?<name>a|b\g'name'c)/
9735        aaaa
9736     0: a
9737     1: a
9738        bacxxx
9739     0: bac
9740     1: bac
9741        bbaccxxx
9742     0: bbacc
9743     1: bbacc
9744        bbbacccxx
9745     0: bbbaccc
9746     1: bbbaccc
9747    
9748    /^(a|b\g<1>c)/
9749        aaaa
9750     0: a
9751     1: a
9752        bacxxx
9753     0: bac
9754     1: bac
9755        bbaccxxx
9756     0: bbacc
9757     1: bbacc
9758        bbbacccxx
9759     0: bbbaccc
9760     1: bbbaccc
9761    
9762    /^(a|b\g'1'c)/
9763        aaaa
9764     0: a
9765     1: a
9766        bacxxx
9767     0: bac
9768     1: bac
9769        bbaccxxx
9770     0: bbacc
9771     1: bbacc
9772        bbbacccxx
9773     0: bbbaccc
9774     1: bbbaccc
9775    
9776    /^(a|b\g'-1'c)/
9777        aaaa
9778     0: a
9779     1: a
9780        bacxxx
9781     0: bac
9782     1: bac
9783        bbaccxxx
9784     0: bbacc
9785     1: bbacc
9786        bbbacccxx
9787     0: bbbaccc
9788     1: bbbaccc
9789    
9790    /(^(a|b\g<-1>c))/
9791        aaaa
9792     0: a
9793     1: a
9794     2: a
9795        bacxxx
9796     0: bac
9797     1: bac
9798     2: bac
9799        bbaccxxx
9800     0: bbacc
9801     1: bbacc
9802     2: bbacc
9803        bbbacccxx
9804     0: bbbaccc
9805     1: bbbaccc
9806     2: bbbaccc
9807    
9808    /(?-i:\g<name>)(?i:(?<name>a))/
9809        XaaX
9810     0: aa
9811     1: a
9812        XAAX
9813     0: AA
9814     1: A
9815    
9816    /(?i:\g<name>)(?-i:(?<name>a))/
9817        XaaX
9818     0: aa
9819     1: a
9820        ** Failers
9821    No match
9822        XAAX
9823    No match
9824    
9825    /(?-i:\g<+1>)(?i:(a))/
9826        XaaX
9827     0: aa
9828     1: a
9829        XAAX
9830     0: AA
9831     1: A
9832    
9833    /(?=(?<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>\})\}))\{/
9834    
9835    /(?<n>a|b|c)\g<n>*/
9836       abc
9837     0: abc
9838     1: a
9839       accccbbb
9840     0: accccbbb
9841     1: a
9842    
9843    /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
9844        XYabcdY
9845     0: XYabcdY
9846     1: a
9847     2: b
9848     3: <unset>
9849     4: <unset>
9850     5: c
9851     6: d
9852     7: Y
9853    
9854    /(?<=b(?1)|zzz)(a)/
9855        xbaax
9856     0: a
9857     1: a
9858        xzzzax
9859     0: a
9860     1: a
9861    
9862    /(a)(?<=b\1)/
9863    Failed: lookbehind assertion is not fixed length at offset 10
9864    
9865    /(a)(?<=b+(?1))/
9866    Failed: lookbehind assertion is not fixed length at offset 13
9867    
9868    /(a+)(?<=b(?1))/
9869    Failed: lookbehind assertion is not fixed length at offset 14
9870    
9871    /(a(?<=b(?1)))/
9872    Failed: lookbehind assertion is not fixed length at offset 13
9873    
9874    /(?<=b(?1))xyz/
9875    Failed: reference to non-existent subpattern at offset 8
9876    
9877    /(?<=b(?1))xyz(b+)pqrstuvew/
9878    Failed: lookbehind assertion is not fixed length at offset 26
9879    
9880    /(a|bc)\1/SI
9881    Capturing subpattern count = 1
9882    Max back reference = 1
9883    No options
9884    No first char
9885    No need char
9886    Subject length lower bound = 2
9887    Starting byte set: a b
9888    
9889    /(a|bc)\1{2,3}/SI
9890    Capturing subpattern count = 1
9891    Max back reference = 1
9892    No options
9893    No first char
9894    No need char
9895    Subject length lower bound = 3
9896    Starting byte set: a b
9897    
9898    /(a|bc)(?1)/SI
9899    Capturing subpattern count = 1
9900    No options
9901    No first char
9902    No need char
9903    Subject length lower bound = 2
9904    Starting byte set: a b
9905    
9906    /(a|b\1)(a|b\1)/SI
9907    Capturing subpattern count = 2
9908    Max back reference = 1
9909    No options
9910    No first char
9911    No need char
9912    Subject length lower bound = 2
9913    Starting byte set: a b
9914    
9915    /(a|b\1){2}/SI
9916    Capturing subpattern count = 1
9917    Max back reference = 1
9918    No options
9919    No first char
9920    No need char
9921    Subject length lower bound = 2
9922    Starting byte set: a b
9923    
9924    /(a|bbbb\1)(a|bbbb\1)/SI
9925    Capturing subpattern count = 2
9926    Max back reference = 1
9927    No options
9928    No first char
9929    No need char
9930    Subject length lower bound = 2
9931    Starting byte set: a b
9932    
9933    /(a|bbbb\1){2}/SI
9934    Capturing subpattern count = 1
9935    Max back reference = 1
9936    No options
9937    No first char
9938    No need char
9939    Subject length lower bound = 2
9940    Starting byte set: a b
9941    
9942    /^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
9943    Capturing subpattern count = 1
9944    Options: anchored
9945    No first char
9946    Need char = ':'
9947    Subject length lower bound = 22
9948    No set of starting bytes
9949    
9950    /  (?: [\040\t] |  \(
9951    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
9952    \)  )*                          # optional leading comment
9953    (?:    (?:
9954    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
9955    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
9956    |
9957    " (?:                      # opening quote...
9958    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
9959    |                     #    or
9960    \\ [^\x80-\xff]           #   Escaped something (something != CR)
9961    )* "  # closing quote
9962    )                    # initial word
9963    (?:  (?: [\040\t] |  \(
9964    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
9965    \)  )*  \.  (?: [\040\t] |  \(
9966    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
9967    \)  )*   (?:
9968    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
9969    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
9970    |
9971    " (?:                      # opening quote...
9972    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
9973    |                     #    or
9974    \\ [^\x80-\xff]           #   Escaped something (something != CR)
9975    )* "  # closing quote
9976    )  )* # further okay, if led by a period
9977    (?: [\040\t] |  \(
9978    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
9979    \)  )*  @  (?: [\040\t] |  \(
9980    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
9981    \)  )*    (?:
9982    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
9983    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
9984    |   \[                         # [
9985    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
9986    \]                        #           ]
9987    )                           # initial subdomain
9988    (?:                                  #
9989    (?: [\040\t] |  \(
9990    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
9991    \)  )*  \.                        # if led by a period...
9992    (?: [\040\t] |  \(
9993    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
9994    \)  )*   (?:
9995    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
9996    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
9997    |   \[                         # [
9998    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
9999    \]                        #           ]
10000    )                     #   ...further okay
10001    )*
10002    # address
10003    |                     #  or
10004    (?:
10005    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10006    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10007    |
10008    " (?:                      # opening quote...
10009    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10010    |                     #    or
10011    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10012    )* "  # closing quote
10013    )             # one word, optionally followed by....
10014    (?:
10015    [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
10016    \(
10017    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10018    \)       |  # comments, or...
10019    
10020    " (?:                      # opening quote...
10021    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10022    |                     #    or
10023    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10024    )* "  # closing quote
10025    # quoted strings
10026    )*
10027    <  (?: [\040\t] |  \(
10028    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10029    \)  )*                     # leading <
10030    (?:  @  (?: [\040\t] |  \(
10031    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10032    \)  )*    (?:
10033    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10034    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10035    |   \[                         # [
10036    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10037    \]                        #           ]
10038    )                           # initial subdomain
10039    (?:                                  #
10040    (?: [\040\t] |  \(
10041    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10042    \)  )*  \.                        # if led by a period...
10043    (?: [\040\t] |  \(
10044    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10045    \)  )*   (?:
10046    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10047    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10048    |   \[                         # [
10049    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10050    \]                        #           ]
10051    )                     #   ...further okay
10052    )*
10053    
10054    (?:  (?: [\040\t] |  \(
10055    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10056    \)  )*  ,  (?: [\040\t] |  \(
10057    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10058    \)  )*  @  (?: [\040\t] |  \(
10059    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10060    \)  )*    (?:
10061    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10062    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10063    |   \[                         # [
10064    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10065    \]                        #           ]
10066    )                           # initial subdomain
10067    (?:                                  #
10068    (?: [\040\t] |  \(
10069    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10070    \)  )*  \.                        # if led by a period...
10071    (?: [\040\t] |  \(
10072    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10073    \)  )*   (?:
10074    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10075    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10076    |   \[                         # [
10077    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10078    \]                        #           ]
10079    )                     #   ...further okay
10080    )*
10081    )* # further okay, if led by comma
10082    :                                # closing colon
10083    (?: [\040\t] |  \(
10084    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10085    \)  )*  )? #       optional route
10086    (?:
10087    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10088    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10089    |
10090    " (?:                      # opening quote...
10091    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10092    |                     #    or
10093    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10094    )* "  # closing quote
10095    )           &