/[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 336 by ph10, Sat Apr 12 15:59:03 2008 UTC revision 504 by ph10, Mon Mar 8 08:57:04 2010 UTC
# Line 1  Line 1 
1    /-- This set of tests is not Perl-compatible. It checks on special features
2        of PCRE's API, error diagnostics, and the compiled code of some patterns.
3        It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4        Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5        either because PCRE can't be compatible, or there is potential Perl
6        bug. --/
7    
8    /-- Originally, the Perl 5.10 things were in here too, but now I have separated
9        many (most?) of them out into test 11. However, there may still be some
10        that were overlooked. --/
11    
12  /(a)b|/I  /(a)b|/I
13  Capturing subpattern count = 1  Capturing subpattern count = 1
14  No options  No options
# Line 40  No match Line 51  No match
51    
52  /a+bc/I  /a+bc/I
53  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
54  No options  No options
55  First char = 'a'  First char = 'a'
56  Need char = 'c'  Need char = 'c'
57    
58  /a*bc/I  /a*bc/I
59  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
60  No options  No options
61  No first char  No first char
62  Need char = 'c'  Need char = 'c'
63    
64  /a{3}bc/I  /a{3}bc/I
65  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
66  No options  No options
67  First char = 'a'  First char = 'a'
68  Need char = 'c'  Need char = 'c'
69    
70  /(abc|a+z)/I  /(abc|a+z)/I
71  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
72  No options  No options
73  First char = 'a'  First char = 'a'
74  No need char  No need char
# Line 113  Failed: unrecognized character after (? Line 120  Failed: unrecognized character after (?
120    
121  /.*b/I  /.*b/I
122  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
123  No options  No options
124  First char at start or follows newline  First char at start or follows newline
125  Need char = 'b'  Need char = 'b'
126    
127  /.*?b/I  /.*?b/I
128  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
129  No options  No options
130  First char at start or follows newline  First char at start or follows newline
131  Need char = 'b'  Need char = 'b'
# Line 140  Capturing subpattern count = 0 Line 145  Capturing subpattern count = 0
145  No options  No options
146  No first char  No first char
147  No need char  No need char
148    Subject length lower bound = 3
149  Starting byte set: c d e  Starting byte set: c d e
150      this sentence eventually mentions a cat      this sentence eventually mentions a cat
151   0: cat   0: cat
# Line 151  Capturing subpattern count = 0 Line 157  Capturing subpattern count = 0
157  Options: caseless  Options: caseless
158  No first char  No first char
159  No need char  No need char
160    Subject length lower bound = 3
161  Starting byte set: C D E c d e  Starting byte set: C D E c d e
162      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
163   0: CAT   0: CAT
# Line 162  Capturing subpattern count = 0 Line 169  Capturing subpattern count = 0
169  No options  No options
170  No first char  No first char
171  No need char  No need char
172    Subject length lower bound = 1
173  Starting byte set: a b c d  Starting byte set: a b c d
174    
175  /(a|[^\dZ])/IS  /(a|[^\dZ])/IS
# Line 169  Capturing subpattern count = 1 Line 177  Capturing subpattern count = 1
177  No options  No options
178  No first char  No first char
179  No need char  No need char
180    Subject length lower bound = 1
181  Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a  Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
182    \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19    \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19
183    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
# Line 189  Capturing subpattern count = 1 Line 198  Capturing subpattern count = 1
198  No options  No options
199  No first char  No first char
200  No need char  No need char
201    Subject length lower bound = 1
202  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
203    
204  /(ab\2)/  /(ab\2)/
# Line 324  No need char Line 334  No need char
334    
335  /.*((abc)$|(def))/I  /.*((abc)$|(def))/I
336  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
337  No options  No options
338  First char at start or follows newline  First char at start or follows newline
339  No need char  No need char
# Line 338  No need char Line 347  No need char
347   2: <unset>   2: <unset>
348   3: def   3: def
349    
350  /abc/IP  /abc/P
351      abc      abc
352   0: abc   0: abc
353      *** Failers      *** Failers
354  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
355    
356  /^abc|def/IP  /^abc|def/P
357      abcdef      abcdef
358   0: abc   0: abc
359      abcdef\B      abcdef\B
360   0: def   0: def
361    
362  /.*((abc)$|(def))/IP  /.*((abc)$|(def))/P
363      defabc      defabc
364   0: defabc   0: defabc
365   1: abc   1: abc
# Line 360  No match: POSIX code 17: match failed Line 369  No match: POSIX code 17: match failed
369   1: def   1: def
370   3: def   3: def
371    
372  /the quick brown fox/IP  /the quick brown fox/P
373      the quick brown fox      the quick brown fox
374   0: the quick brown fox   0: the quick brown fox
375      *** Failers      *** Failers
# Line 368  No match: POSIX code 17: match failed Line 377  No match: POSIX code 17: match failed
377      The Quick Brown Fox      The Quick Brown Fox
378  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
379    
380  /the quick brown fox/IPi  /the quick brown fox/Pi
381      the quick brown fox      the quick brown fox
382   0: the quick brown fox   0: the quick brown fox
383      The Quick Brown Fox      The Quick Brown Fox
384   0: The Quick Brown Fox   0: The Quick Brown Fox
385    
386  /abc.def/IP  /abc.def/P
387      *** Failers      *** Failers
388  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
389      abc\ndef      abc\ndef
390  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
391    
392  /abc$/IP  /abc$/P
393      abc      abc
394   0: abc   0: abc
395      abc\n      abc\n
396   0: abc   0: abc
397    
398  /(abc)\2/IP  /(abc)\2/P
399  Failed: POSIX code 15: bad back reference at offset 7  Failed: POSIX code 15: bad back reference at offset 7
400    
401  /(abc\1)/IP  /(abc\1)/P
402      abc      abc
403  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
404    
# Line 401  Failed: missing terminating ] for charac Line 410  Failed: missing terminating ] for charac
410    
411  /[^aeiou ]{3,}/I  /[^aeiou ]{3,}/I
412  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
413  No options  No options
414  No first char  No first char
415  No need char  No need char
# Line 410  No need char Line 418  No need char
418    
419  /<.*>/I  /<.*>/I
420  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
421  No options  No options
422  First char = '<'  First char = '<'
423  Need char = '>'  Need char = '>'
# Line 419  Need char = '>' Line 426  Need char = '>'
426    
427  /<.*?>/I  /<.*?>/I
428  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
429  No options  No options
430  First char = '<'  First char = '<'
431  Need char = '>'  Need char = '>'
# Line 428  Need char = '>' Line 434  Need char = '>'
434    
435  /<.*>/IU  /<.*>/IU
436  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
437  Options: ungreedy  Options: ungreedy
438  First char = '<'  First char = '<'
439  Need char = '>'  Need char = '>'
# Line 437  Need char = '>' Line 442  Need char = '>'
442    
443  /(?U)<.*>/I  /(?U)<.*>/I
444  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
445  Options: ungreedy  Options: ungreedy
446  First char = '<'  First char = '<'
447  Need char = '>'  Need char = '>'
# Line 446  Need char = '>' Line 450  Need char = '>'
450    
451  /<.*?>/IU  /<.*?>/IU
452  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
453  Options: ungreedy  Options: ungreedy
454  First char = '<'  First char = '<'
455  Need char = '>'  Need char = '>'
# Line 455  Need char = '>' Line 458  Need char = '>'
458    
459  /={3,}/IU  /={3,}/IU
460  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
461  Options: ungreedy  Options: ungreedy
462  First char = '='  First char = '='
463  Need char = '='  Need char = '='
# Line 464  Need char = '=' Line 466  Need char = '='
466    
467  /(?U)={3,}?/I  /(?U)={3,}?/I
468  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
469  Options: ungreedy  Options: ungreedy
470  First char = '='  First char = '='
471  Need char = '='  Need char = '='
# Line 522  No need char Line 523  No need char
523    
524  /(?s).*/I  /(?s).*/I
525  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
526  Options: anchored dotall  Options: anchored dotall
527  No first char  No first char
528  No need char  No need char
# Line 532  Capturing subpattern count = 0 Line 532  Capturing subpattern count = 0
532  No options  No options
533  No first char  No first char
534  No need char  No need char
535    Subject length lower bound = 1
536  Starting byte set: a b c d  Starting byte set: a b c d
537    
538  /(?i)[abcd]/IS  /(?i)[abcd]/IS
# Line 539  Capturing subpattern count = 0 Line 540  Capturing subpattern count = 0
540  Options: caseless  Options: caseless
541  No first char  No first char
542  No need char  No need char
543    Subject length lower bound = 1
544  Starting byte set: A B C D a b c d  Starting byte set: A B C D a b c d
545    
546  /(?m)[xy]|(b|c)/IS  /(?m)[xy]|(b|c)/IS
# Line 546  Capturing subpattern count = 1 Line 548  Capturing subpattern count = 1
548  Options: multiline  Options: multiline
549  No first char  No first char
550  No need char  No need char
551    Subject length lower bound = 1
552  Starting byte set: b c x y  Starting byte set: b c x y
553    
554  /(^a|^b)/Im  /(^a|^b)/Im
# Line 584  Failed: syntax error in subpattern name Line 587  Failed: syntax error in subpattern name
587  /((?s)blah)\s+\1/I  /((?s)blah)\s+\1/I
588  Capturing subpattern count = 1  Capturing subpattern count = 1
589  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
590  No options  No options
591  First char = 'b'  First char = 'b'
592  Need char = 'h'  Need char = 'h'
# Line 592  Need char = 'h' Line 594  Need char = 'h'
594  /((?i)blah)\s+\1/I  /((?i)blah)\s+\1/I
595  Capturing subpattern count = 1  Capturing subpattern count = 1
596  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
597  No options  No options
598  First char = 'b' (caseless)  First char = 'b' (caseless)
599  Need char = 'h' (caseless)  Need char = 'h' (caseless)
# Line 612  Capturing subpattern count = 1 Line 613  Capturing subpattern count = 1
613  No options  No options
614  First char = 'b' (caseless)  First char = 'b' (caseless)
615  No need char  No need char
616  Study returned NULL  Subject length lower bound = 1
617    No set of starting bytes
618    
619  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
620  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
621  No options  No options
622  No first char  No first char
623  No need char  No need char
624    Subject length lower bound = 1
625  Starting byte set: C a b c d  Starting byte set: C a b c d
626    
627  /a$/I  /a$/I
# Line 668  Need char = 'c' Line 670  Need char = 'c'
670    
671  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
672  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
673  Options: anchored  Options: anchored
674  No first char  No first char
675  No need char  No need char
# Line 685  Capturing subpattern count = 0 Line 686  Capturing subpattern count = 0
686  No options  No options
687  No first char  No first char
688  No need char  No need char
689    Subject length lower bound = 1
690  Starting byte set: a b  Starting byte set: a b
691    
692  /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
# Line 692  Capturing subpattern count = 1 Line 694  Capturing subpattern count = 1
694  No options  No options
695  No first char  No first char
696  Need char = 'a'  Need char = 'a'
697    Subject length lower bound = 5
698  Starting byte set: a o  Starting byte set: a o
699    
700  /(?!alphabet)[ab]/IS  /(?!alphabet)[ab]/IS
# Line 699  Capturing subpattern count = 0 Line 702  Capturing subpattern count = 0
702  No options  No options
703  No first char  No first char
704  No need char  No need char
705    Subject length lower bound = 1
706  Starting byte set: a b  Starting byte set: a b
707    
708  /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
# Line 784  No need char Line 788  No need char
788    
789  /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
790  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
791  No options  No options
792  First char at start or follows newline  First char at start or follows newline
793  No need char  No need char
# Line 854  No match Line 857  No match
857      a      a
858  No match  No match
859    
860  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/I  /This one is here because Perl behaves differently; see also the following/I
861  Capturing subpattern count = 0  Capturing subpattern count = 0
862  No options  No options
863  First char = 'T'  First char = 'T'
# Line 866  Max back reference = 1 Line 869  Max back reference = 1
869  Options: anchored  Options: anchored
870  No first char  No first char
871  No need char  No need char
872        aaaa
873    No match
874      aaaaaa      aaaaaa
875   0: aaaaaa  No match
876   1: aa  
877    /Perl does not fail these two for the final subjects. Neither did PCRE until/
878    /release 8.01. The problem is in backtracking into a subpattern that contains/
879    No match
880    /a recursive reference to itself. PCRE has now made these into atomic patterns./
881    No match
882    
883    /^(xa|=?\1a){2}$/
884        xa=xaa
885     0: xa=xaa
886     1: =xaa
887        ** Failers
888    No match
889        xa=xaaa
890    No match
891    
892    /^(xa|=?\1a)+$/
893        xa=xaa
894     0: xa=xaa
895     1: =xaa
896        ** Failers
897    No match
898        xa=xaaa
899    No match
900    
901  /These are syntax tests from Perl 5.005/I  /These are syntax tests from Perl 5.005/I
902  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 1003  copy substring 5 failed -7 Line 1031  copy substring 5 failed -7
1031    
1032  /(.{20})/I  /(.{20})/I
1033  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1034  No options  No options
1035  No first char  No first char
1036  No need char  No need char
# Line 1021  No need char Line 1048  No need char
1048    
1049  /(.{15})/I  /(.{15})/I
1050  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1051  No options  No options
1052  No first char  No first char
1053  No need char  No need char
# Line 1036  No need char Line 1062  No need char
1062    
1063  /(.{16})/I  /(.{16})/I
1064  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1065  No options  No options
1066  No first char  No first char
1067  No need char  No need char
# Line 1103  No need char Line 1128  No need char
1128  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1129  )?)?)?)?)?)?)?)?)?otherword/I  )?)?)?)?)?)?)?)?)?otherword/I
1130  Capturing subpattern count = 8  Capturing subpattern count = 8
 Partial matching not supported  
1131  Contains explicit CR or LF match  Contains explicit CR or LF match
1132  No options  No options
1133  First char = 'w'  First char = 'w'
# Line 1118  Need char = 'd' Line 1142  Need char = 'd'
1142          End          End
1143  ------------------------------------------------------------------  ------------------------------------------------------------------
1144  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1145  No options  No options
1146  First char at start or follows newline  First char at start or follows newline
1147  Need char = 'X'  Need char = 'X'
# Line 1126  Need char = 'X' Line 1149  Need char = 'X'
1149  /.*X/IDZs  /.*X/IDZs
1150  ------------------------------------------------------------------  ------------------------------------------------------------------
1151          Bra          Bra
1152          Any*          AllAny*
1153          X          X
1154          Ket          Ket
1155          End          End
1156  ------------------------------------------------------------------  ------------------------------------------------------------------
1157  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1158  Options: anchored dotall  Options: anchored dotall
1159  No first char  No first char
1160  Need char = 'X'  Need char = 'X'
# Line 1151  Need char = 'X' Line 1173  Need char = 'X'
1173          End          End
1174  ------------------------------------------------------------------  ------------------------------------------------------------------
1175  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1176  No options  No options
1177  First char at start or follows newline  First char at start or follows newline
1178  No need char  No need char
# Line 1160  No need char Line 1181  No need char
1181  ------------------------------------------------------------------  ------------------------------------------------------------------
1182          Bra          Bra
1183          CBra 1          CBra 1
1184          Any*          AllAny*
1185          X          X
1186          Alt          Alt
1187          ^          ^
# Line 1170  No need char Line 1191  No need char
1191          End          End
1192  ------------------------------------------------------------------  ------------------------------------------------------------------
1193  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1194  Options: anchored dotall  Options: anchored dotall
1195  No first char  No first char
1196  No need char  No need char
# Line 1179  No need char Line 1199  No need char
1199  ------------------------------------------------------------------  ------------------------------------------------------------------
1200          Bra          Bra
1201          CBra 1          CBra 1
1202          Any*          AllAny*
1203          X          X
1204          Alt          Alt
1205          ^          ^
# Line 1189  No need char Line 1209  No need char
1209          End          End
1210  ------------------------------------------------------------------  ------------------------------------------------------------------
1211  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1212  Options: anchored dotall  Options: anchored dotall
1213  No first char  No first char
1214  No need char  No need char
# Line 1199  No need char Line 1218  No need char
1218          Bra          Bra
1219          Bra          Bra
1220       04 Opt       04 Opt
1221          Any*          AllAny*
1222          X          X
1223          Alt          Alt
1224       04 Opt       04 Opt
# Line 1211  No need char Line 1230  No need char
1230          End          End
1231  ------------------------------------------------------------------  ------------------------------------------------------------------
1232  Capturing subpattern count = 0  Capturing subpattern count = 0
1233  Partial matching not supported  Options: anchored
1234  No options  No first char
 First char at start or follows newline  
1235  No need char  No need char
1236    
1237  /\Biss\B/I+  /\Biss\B/I+
# Line 1296  No need char Line 1314  No need char
1314    
1315  /.*iss/Ig+  /.*iss/Ig+
1316  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1317  No options  No options
1318  First char at start or follows newline  First char at start or follows newline
1319  Need char = 's'  Need char = 's'
# Line 1399  Need char = 'c' Line 1416  Need char = 'c'
1416    
1417  /a*/I  /a*/I
1418  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1419  No options  No options
1420  No first char  No first char
1421  No need char  No need char
1422    
1423  /a+/I  /a+/I
1424  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1425  No options  No options
1426  First char = 'a'  First char = 'a'
1427  No need char  No need char
1428    
1429  /(baa|a+)/I  /(baa|a+)/I
1430  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1431  No options  No options
1432  No first char  No first char
1433  Need char = 'a'  Need char = 'a'
1434    
1435  /a{0,3}/I  /a{0,3}/I
1436  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1437  No options  No options
1438  No first char  No first char
1439  No need char  No need char
1440    
1441  /baa{3,}/I  /baa{3,}/I
1442  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1443  No options  No options
1444  First char = 'b'  First char = 'b'
1445  Need char = 'a'  Need char = 'a'
1446    
1447  /"([^\\"]+|\\.)*"/I  /"([^\\"]+|\\.)*"/I
1448  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1449  No options  No options
1450  First char = '"'  First char = '"'
1451  Need char = '"'  Need char = '"'
# Line 1489  Need char = 'b' Line 1500  Need char = 'b'
1500    
1501  /abc*/I  /abc*/I
1502  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1503  No options  No options
1504  First char = 'a'  First char = 'a'
1505  Need char = 'b'  Need char = 'b'
1506    
1507  /ab.c*/I  /ab.c*/I
1508  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1509  No options  No options
1510  First char = 'a'  First char = 'a'
1511  Need char = 'b'  Need char = 'b'
1512    
1513  /a.c*/I  /a.c*/I
1514  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1515  No options  No options
1516  First char = 'a'  First char = 'a'
1517  No need char  No need char
1518    
1519  /.c*/I  /.c*/I
1520  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1521  No options  No options
1522  No first char  No first char
1523  No need char  No need char
1524    
1525  /ac*/I  /ac*/I
1526  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1527  No options  No options
1528  First char = 'a'  First char = 'a'
1529  No need char  No need char
1530    
1531  /(a.c*|b.c*)/I  /(a.c*|b.c*)/I
1532  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1533  No options  No options
1534  No first char  No first char
1535  No need char  No need char
1536    
1537  /a.c*|aba/I  /a.c*|aba/I
1538  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1539  No options  No options
1540  First char = 'a'  First char = 'a'
1541  No need char  No need char
1542    
1543  /.+a/I  /.+a/I
1544  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1545  No options  No options
1546  No first char  No first char
1547  Need char = 'a'  Need char = 'a'
1548    
1549  /(?=abcda)a.*/I  /(?=abcda)a.*/I
1550  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1551  No options  No options
1552  First char = 'a'  First char = 'a'
1553  Need char = 'a'  Need char = 'a'
1554    
1555  /(?=a)a.*/I  /(?=a)a.*/I
1556  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1557  No options  No options
1558  First char = 'a'  First char = 'a'
1559  No need char  No need char
# Line 1565  No need char Line 1566  No need char
1566    
1567  /a\d*/I  /a\d*/I
1568  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1569  No options  No options
1570  First char = 'a'  First char = 'a'
1571  No need char  No need char
1572    
1573  /ab\d*/I  /ab\d*/I
1574  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1575  No options  No options
1576  First char = 'a'  First char = 'a'
1577  Need char = 'b'  Need char = 'b'
# Line 1591  Need char = 'd' Line 1590  Need char = 'd'
1590    
1591  /ab\d+/I  /ab\d+/I
1592  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1593  No options  No options
1594  First char = 'a'  First char = 'a'
1595  Need char = 'b'  Need char = 'b'
# Line 1666  No need char Line 1664  No need char
1664      \Nabc      \Nabc
1665  No match  No match
1666    
1667  /a*(b+)(z)(z)/IP  /a*(b+)(z)(z)/P
1668      aaaabbbbzzzz      aaaabbbbzzzz
1669   0: aaaabbbbzz   0: aaaabbbbzz
1670   1: bbbb   1: bbbb
# Line 1698  Capturing subpattern count = 0 Line 1696  Capturing subpattern count = 0
1696  Options: anchored  Options: anchored
1697  No first char  No first char
1698  Need char = 'd'  Need char = 'd'
1699  Study returned NULL  Subject length lower bound = 4
1700    No set of starting bytes
1701    
1702  /\(             # ( at start  /\(             # ( at start
1703    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1709  Study returned NULL Line 1708  Study returned NULL
1708    \)            # Closing )    \)            # Closing )
1709    /Ix    /Ix
1710  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1711  Options: extended  Options: extended
1712  First char = '('  First char = '('
1713  Need char = ')'  Need char = ')'
# Line 1738  No match Line 1736  No match
1736    
1737  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1738  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1739  Options: extended  Options: extended
1740  First char = '('  First char = '('
1741  Need char = ')'  Need char = ')'
# Line 1753  Need char = ')' Line 1750  Need char = ')'
1750    
1751  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1752  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1753  Options: extended  Options: extended
1754  First char = '('  First char = '('
1755  Need char = ')'  Need char = ')'
# Line 1772  No match Line 1768  No match
1768    
1769  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1770  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1771  Options: extended  Options: extended
1772  First char = '('  First char = '('
1773  Need char = ')'  Need char = ')'
# Line 1783  Need char = ')' Line 1778  Need char = ')'
1778    
1779  /\(  ( (?>[^()]+) | (?R) )* \) /Ix  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1780  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1781  Options: extended  Options: extended
1782  First char = '('  First char = '('
1783  Need char = ')'  Need char = ')'
# Line 1793  Need char = ')' Line 1787  Need char = ')'
1787    
1788  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1789  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
1790  Options: extended  Options: extended
1791  First char = '('  First char = '('
1792  Need char = ')'  Need char = ')'
# Line 1804  Need char = ')' Line 1797  Need char = ')'
1797    
1798  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1799  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1800  Options: extended  Options: extended
1801  First char = '('  First char = '('
1802  Need char = ')'  Need char = ')'
# Line 1821  Need char = ')' Line 1813  Need char = ')'
1813    
1814  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1815  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1816  Options: extended  Options: extended
1817  First char = '('  First char = '('
1818  Need char = ')'  Need char = ')'
# Line 1838  Need char = ')' Line 1829  Need char = ')'
1829    
1830  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1831  Capturing subpattern count = 11  Capturing subpattern count = 11
 Partial matching not supported  
1832  Options: extended  Options: extended
1833  First char = '('  First char = '('
1834  Need char = ')'  Need char = ')'
# Line 1858  Need char = ')' Line 1848  Need char = ')'
1848    
1849  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1850  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1851  Options: extended  Options: extended
1852  First char = '('  First char = '('
1853  Need char = ')'  Need char = ')'
# Line 1866  Need char = ')' Line 1855  Need char = ')'
1855   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1856   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1857   2: 123   2: 123
  3: <unset>  
1858    
1859  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1860  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1861  Options: extended  Options: extended
1862  First char = '('  First char = '('
1863  Need char = ')'  Need char = ')'
# Line 1942  Capturing subpattern count = 0 Line 1929  Capturing subpattern count = 0
1929  No options  No options
1930  No first char  No first char
1931  No need char  No need char
1932    Subject length lower bound = 1
1933  Starting byte set: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z  Starting byte set: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
1934    _ a b c d e f g h i j k l m n o p q r s t u v w x y z    _ a b c d e f g h i j k l m n o p q r s t u v w x y z
1935    
# Line 2003  Contains explicit CR or LF match Line 1991  Contains explicit CR or LF match
1991  No options  No options
1992  No first char  No first char
1993  No need char  No need char
1994    Subject length lower bound = 1
1995  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1996    
1997  /^[[:cntrl:]]/DZ  /^[[:cntrl:]]/DZ
# Line 2249  Need char = 'd' Line 2238  Need char = 'd'
2238  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I
2239  Capturing subpattern count = 271  Capturing subpattern count = 271
2240  Max back reference = 270  Max back reference = 270
 Partial matching not supported  
2241  No options  No options
2242  No first char  No first char
2243  No need char  No need char
# Line 2930  Need char = 'c' Line 2918  Need char = 'c'
2918          End          End
2919  ------------------------------------------------------------------  ------------------------------------------------------------------
2920  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2921  No options  No options
2922  No first char  No first char
2923  No need char  No need char
# Line 2959  No need char Line 2946  No need char
2946          End          End
2947  ------------------------------------------------------------------  ------------------------------------------------------------------
2948  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2949  No options  No options
2950  First char = 'x'  First char = 'x'
2951  No need char  No need char
# Line 2975  No need char Line 2961  No need char
2961          End          End
2962  ------------------------------------------------------------------  ------------------------------------------------------------------
2963  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2964  No options  No options
2965  First char = 'x'  First char = 'x'
2966  No need char  No need char
# Line 2999  No need char Line 2984  No need char
2984    
2985  /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
2986  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2987  Options: anchored  Options: anchored
2988  No first char  No first char
2989  No need char  No need char
# Line 3013  No match Line 2997  No match
2997    
2998  /(\d++)(\w)/I  /(\d++)(\w)/I
2999  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3000  No options  No options
3001  No first char  No first char
3002  No need char  No need char
# Line 3028  No match Line 3011  No match
3011    
3012  /a++b/I  /a++b/I
3013  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3014  No options  No options
3015  First char = 'a'  First char = 'a'
3016  Need char = 'b'  Need char = 'b'
# Line 3037  Need char = 'b' Line 3019  Need char = 'b'
3019    
3020  /(a++b)/I  /(a++b)/I
3021  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3022  No options  No options
3023  First char = 'a'  First char = 'a'
3024  Need char = 'b'  Need char = 'b'
# Line 3047  Need char = 'b' Line 3028  Need char = 'b'
3028    
3029  /(a++)b/I  /(a++)b/I
3030  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3031  No options  No options
3032  First char = 'a'  First char = 'a'
3033  Need char = 'b'  Need char = 'b'
# Line 3057  Need char = 'b' Line 3037  Need char = 'b'
3037    
3038  /([^()]++|\([^()]*\))+/I  /([^()]++|\([^()]*\))+/I
3039  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3040  No options  No options
3041  No first char  No first char
3042  No need char  No need char
# Line 3067  No need char Line 3046  No need char
3046    
3047  /\(([^()]++|\([^()]+\))+\)/I  /\(([^()]++|\([^()]+\))+\)/I
3048  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3049  No options  No options
3050  First char = '('  First char = '('
3051  Need char = ')'  Need char = ')'
# Line 3130  Failed: nothing to repeat at offset 7 Line 3108  Failed: nothing to repeat at offset 7
3108          End          End
3109  ------------------------------------------------------------------  ------------------------------------------------------------------
3110  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3111  No options  No options
3112  First char = 'x'  First char = 'x'
3113  Need char = 'b'  Need char = 'b'
# Line 3147  Need char = 'b' Line 3124  Need char = 'b'
3124          End          End
3125  ------------------------------------------------------------------  ------------------------------------------------------------------
3126  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3127  Options: ungreedy  Options: ungreedy
3128  First char = 'x'  First char = 'x'
3129  Need char = 'b'  Need char = 'b'
# Line 3176  Need char = 'b' Line 3152  Need char = 'b'
3152          End          End
3153  ------------------------------------------------------------------  ------------------------------------------------------------------
3154  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3155  Options: anchored  Options: anchored
3156  No first char  No first char
3157  No need char  No need char
# Line 3192  No need char Line 3167  No need char
3167          End          End
3168  ------------------------------------------------------------------  ------------------------------------------------------------------
3169  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3170  Options: anchored  Options: anchored
3171  No first char  No first char
3172  Need char = 'b'  Need char = 'b'
# Line 3210  Need char = 'b' Line 3184  Need char = 'b'
3184          End          End
3185  ------------------------------------------------------------------  ------------------------------------------------------------------
3186  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3187  Options: anchored  Options: anchored
3188  No first char  No first char
3189  Need char = 'b'  Need char = 'b'
# Line 3286  No need char Line 3259  No need char
3259    
3260  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3261  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3262  Options: extended  Options: extended
3263  First char = '<'  First char = '<'
3264  Need char = '>'  Need char = '>'
# Line 3336  Need char = 'X' Line 3308  Need char = 'X'
3308  /(.*)\d+\1/I  /(.*)\d+\1/I
3309  Capturing subpattern count = 1  Capturing subpattern count = 1
3310  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3311  No options  No options
3312  No first char  No first char
3313  No need char  No need char
3314    
3315  /(.*)\d+/I  /(.*)\d+/I
3316  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3317  No options  No options
3318  First char at start or follows newline  First char at start or follows newline
3319  No need char  No need char
# Line 3351  No need char Line 3321  No need char
3321  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3322  Capturing subpattern count = 1  Capturing subpattern count = 1
3323  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3324  Options: dotall  Options: dotall
3325  No first char  No first char
3326  No need char  No need char
3327    
3328  /(.*)\d+/Is  /(.*)\d+/Is
3329  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3330  Options: anchored dotall  Options: anchored dotall
3331  No first char  No first char
3332  No need char  No need char
# Line 3366  No need char Line 3334  No need char
3334  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3335  Capturing subpattern count = 2  Capturing subpattern count = 2
3336  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3337  No options  No options
3338  First char at start or follows newline  First char at start or follows newline
3339  Need char = 'z'  Need char = 'z'
# Line 3374  Need char = 'z' Line 3341  Need char = 'z'
3341  /((.*))\d+\1/I  /((.*))\d+\1/I
3342  Capturing subpattern count = 2  Capturing subpattern count = 2
3343  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3344  No options  No options
3345  No first char  No first char
3346  No need char  No need char
# Line 3391  Need char = 'b' Line 3357  Need char = 'b'
3357    
3358  /(?=a).*/I  /(?=a).*/I
3359  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3360  No options  No options
3361  First char = 'a'  First char = 'a'
3362  No need char  No need char
# Line 3497  Capturing subpattern count = 0 Line 3462  Capturing subpattern count = 0
3462  No options  No options
3463  No first char  No first char
3464  No need char  No need char
3465    Subject length lower bound = 1
3466  Starting byte set: a b  Starting byte set: a b
3467    
3468  /[^a]/I  /[^a]/I
# Line 3516  Capturing subpattern count = 0 Line 3482  Capturing subpattern count = 0
3482  No options  No options
3483  No first char  No first char
3484  Need char = '6'  Need char = '6'
3485    Subject length lower bound = 4
3486  Starting byte set: 0 1 2 3 4 5 6 7 8 9  Starting byte set: 0 1 2 3 4 5 6 7 8 9
3487    
3488  /a^b/I  /a^b/I
# Line 3549  Capturing subpattern count = 0 Line 3516  Capturing subpattern count = 0
3516  Options: caseless  Options: caseless
3517  No first char  No first char
3518  No need char  No need char
3519    Subject length lower bound = 1
3520  Starting byte set: A B a b  Starting byte set: A B a b
3521    
3522  /[ab](?i)cd/IS  /[ab](?i)cd/IS
# Line 3556  Capturing subpattern count = 0 Line 3524  Capturing subpattern count = 0
3524  No options  No options
3525  No first char  No first char
3526  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3527    Subject length lower bound = 3
3528  Starting byte set: a b  Starting byte set: a b
3529    
3530  /abc(?C)def/I  /abc(?C)def/I
# Line 3713  No need char Line 3682  No need char
3682    
3683  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3684  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3685  No options  No options
3686  No first char  No first char
3687  No need char  No need char
# Line 3842  Callout 0: last capture = 1 Line 3810  Callout 0: last capture = 1
3810    
3811  /a(b+)(c*)(?C1)/I  /a(b+)(c*)(?C1)/I
3812  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3813  No options  No options
3814  First char = 'a'  First char = 'a'
3815  Need char = 'b'  Need char = 'b'
# Line 3868  No match Line 3835  No match
3835    
3836  /a(b+?)(c*?)(?C1)/I  /a(b+?)(c*?)(?C1)/I
3837  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3838  No options  No options
3839  First char = 'a'  First char = 'a'
3840  Need char = 'b'  Need char = 'b'
# Line 3909  Capturing subpattern count = 0 Line 3875  Capturing subpattern count = 0
3875  No options  No options
3876  No first char  No first char
3877  No need char  No need char
3878    Subject length lower bound = 1
3879  Starting byte set: a b  Starting byte set: a b
3880    
3881  /(?R)/I  /(?R)/I
# Line 4028  No options Line 3995  No options
3995  First char = 'a'  First char = 'a'
3996  Need char = 'b'  Need char = 'b'
3997    
 /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii  
 Capturing subpattern count = 4  
 Max back reference = 4  
 Partial matching not supported  
 Options: anchored caseless  
 No first char  
 No need char  
     1221  
  0: 1221  
  1: 1221  
  2: 1  
     Satan, oscillate my metallic sonatas!  
  0: Satan, oscillate my metallic sonatas!  
  1: <unset>  
  2: <unset>  
  3: Satan, oscillate my metallic sonatas  
  4: S  
     A man, a plan, a canal: Panama!  
  0: A man, a plan, a canal: Panama!  
  1: <unset>  
  2: <unset>  
  3: A man, a plan, a canal: Panama  
  4: A  
     Able was I ere I saw Elba.  
  0: Able was I ere I saw Elba.  
  1: <unset>  
  2: <unset>  
  3: Able was I ere I saw Elba  
  4: A  
     *** Failers  
 No match  
     The quick brown fox  
 No match  
   
3998  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3999  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4000  Options: anchored  Options: anchored
4001  No first char  No first char
4002  No need char  No need char
# Line 4105  No match Line 4037  No match
4037    
4038  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4039  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4040  Options: extended  Options: extended
4041  First char = '<'  First char = '<'
4042  Need char = '>'  Need char = '>'
# Line 4279  Named capturing subpatterns: Line 4210  Named capturing subpatterns:
4210    one     1    one     1
4211    three   3    three   3
4212    two     2    two     2
 Partial matching not supported  
4213  Options: anchored caseless  Options: anchored caseless
4214  No first char  No first char
4215  No need char  No need char
# Line 4325  No need char Line 4255  No need char
4255    
4256  /(.*)a/Is  /(.*)a/Is
4257  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4258  Options: anchored dotall  Options: anchored dotall
4259  No first char  No first char
4260  Need char = 'a'  Need char = 'a'
# Line 4333  Need char = 'a' Line 4262  Need char = 'a'
4262  /(.*)a\1/Is  /(.*)a\1/Is
4263  Capturing subpattern count = 1  Capturing subpattern count = 1
4264  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4265  Options: dotall  Options: dotall
4266  No first char  No first char
4267  Need char = 'a'  Need char = 'a'
# Line 4341  Need char = 'a' Line 4269  Need char = 'a'
4269  /(.*)a(b)\2/Is  /(.*)a(b)\2/Is
4270  Capturing subpattern count = 2  Capturing subpattern count = 2
4271  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4272  Options: anchored dotall  Options: anchored dotall
4273  No first char  No first char
4274  Need char = 'b'  Need char = 'b'
4275    
4276  /((.*)a|(.*)b)z/Is  /((.*)a|(.*)b)z/Is
4277  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4278  Options: anchored dotall  Options: anchored dotall
4279  No first char  No first char
4280  Need char = 'z'  Need char = 'z'
# Line 4356  Need char = 'z' Line 4282  Need char = 'z'
4282  /((.*)a|(.*)b)z\1/Is  /((.*)a|(.*)b)z\1/Is
4283  Capturing subpattern count = 3  Capturing subpattern count = 3
4284  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4285  Options: dotall  Options: dotall
4286  No first char  No first char
4287  Need char = 'z'  Need char = 'z'
# Line 4364  Need char = 'z' Line 4289  Need char = 'z'
4289  /((.*)a|(.*)b)z\2/Is  /((.*)a|(.*)b)z\2/Is
4290  Capturing subpattern count = 3  Capturing subpattern count = 3
4291  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4292  Options: dotall  Options: dotall
4293  No first char  No first char
4294  Need char = 'z'  Need char = 'z'
# Line 4372  Need char = 'z' Line 4296  Need char = 'z'
4296  /((.*)a|(.*)b)z\3/Is  /((.*)a|(.*)b)z\3/Is
4297  Capturing subpattern count = 3  Capturing subpattern count = 3
4298  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4299  Options: dotall  Options: dotall
4300  No first char  No first char
4301  Need char = 'z'  Need char = 'z'
# Line 4380  Need char = 'z' Line 4303  Need char = 'z'
4303  /((.*)a|^(.*)b)z\3/Is  /((.*)a|^(.*)b)z\3/Is
4304  Capturing subpattern count = 3  Capturing subpattern count = 3
4305  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4306  Options: anchored dotall  Options: anchored dotall
4307  No first char  No first char
4308  Need char = 'z'  Need char = 'z'
4309    
4310  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4311  Capturing subpattern count = 31  Capturing subpattern count = 31
 Partial matching not supported  
4312  Options: anchored dotall  Options: anchored dotall
4313  No first char  No first char
4314  No need char  No need char
# Line 4395  No need char Line 4316  No need char
4316  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4317  Capturing subpattern count = 31  Capturing subpattern count = 31
4318  Max back reference = 31  Max back reference = 31
 Partial matching not supported  
4319  Options: dotall  Options: dotall
4320  No first char  No first char
4321  No need char  No need char
# Line 4403  No need char Line 4323  No need char
4323  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4324  Capturing subpattern count = 32  Capturing subpattern count = 32
4325  Max back reference = 32  Max back reference = 32
 Partial matching not supported  
4326  Options: dotall  Options: dotall
4327  No first char  No first char
4328  No need char  No need char
# Line 4470  Need char = 'c' Line 4389  Need char = 'c'
4389    
4390  /(a+)*zz/I  /(a+)*zz/I
4391  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4392  No options  No options
4393  No first char  No first char
4394  Need char = 'z'  Need char = 'z'
# Line 4607  Failed: two named subpatterns have the s Line 4525  Failed: two named subpatterns have the s
4525  Capturing subpattern count = 3  Capturing subpattern count = 3
4526  Named capturing subpatterns:  Named capturing subpatterns:
4527    elem   2    elem   2
 Partial matching not supported  
4528  No options  No options
4529  First char = '['  First char = '['
4530  Need char = ']'  Need char = ']'
# Line 4625  No match Line 4542  No match
4542  Capturing subpattern count = 3  Capturing subpattern count = 3
4543  Named capturing subpatterns:  Named capturing subpatterns:
4544    elem   2    elem   2
 Partial matching not supported  
4545  No options  No options
4546  First char = '['  First char = '['
4547  Need char = ']'  Need char = ']'
# Line 4732  No need char Line 4648  No need char
4648    
4649  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4650  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4651  Options: caseless  Options: caseless
4652  No first char  No first char
4653  Need char = 'g' (caseless)  Need char = 'g' (caseless)
# Line 4742  Need char = 'g' (caseless) Line 4657  Need char = 'g' (caseless)
4657    
4658  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4659  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4660  Options: caseless  Options: caseless
4661  No first char  No first char
4662  Need char = 'g' (caseless)  Need char = 'g' (caseless)
4663  Study returned NULL  Subject length lower bound = 8
4664    No set of starting bytes
4665       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
4666   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4667   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 4761  Study returned NULL Line 4676  Study returned NULL
4676          End          End
4677  ------------------------------------------------------------------  ------------------------------------------------------------------
4678  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4679  No options  No options
4680  No first char  No first char
4681  Need char = 'b'  Need char = 'b'
4682  Study returned NULL  Subject length lower bound = 1
4683    No set of starting bytes
4684    
4685  /(a|b)*.?c/ISDZ  /(a|b)*.?c/ISDZ
4686  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4785  Capturing subpattern count = 1 Line 4700  Capturing subpattern count = 1
4700  No options  No options
4701  No first char  No first char
4702  Need char = 'c'  Need char = 'c'
4703  Study returned NULL  Subject length lower bound = 1
4704    No set of starting bytes
4705    
4706  /abc(?C255)de(?C)f/DZ  /abc(?C255)de(?C)f/DZ
4707  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4854  No match Line 4770  No match
4770          End          End
4771  ------------------------------------------------------------------  ------------------------------------------------------------------
4772  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4773  Options:  Options:
4774  No first char  No first char
4775  Need char = 'b'  Need char = 'b'
# Line 4899  Need char = 'b' Line 4814  Need char = 'b'
4814          End          End
4815  ------------------------------------------------------------------  ------------------------------------------------------------------
4816  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4817  Options:  Options:
4818  First char = 'a'  First char = 'a'
4819  Need char = 'b'  Need char = 'b'
# Line 5337  No match Line 5251  No match
5251          End          End
5252  ------------------------------------------------------------------  ------------------------------------------------------------------
5253  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
5254  Options:  Options:
5255  No first char  No first char
5256  Need char = '3'  Need char = '3'
# Line 5369  Need char = '3' Line 5282  Need char = '3'
5282    
5283  /\b.*/I  /\b.*/I
5284  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5285  No options  No options
5286  No first char  No first char
5287  No need char  No need char
# Line 5378  No need char Line 5290  No need char
5290    
5291  /\b.*/Is  /\b.*/Is
5292  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5293  Options: dotall  Options: dotall
5294  No first char  No first char
5295  No need char  No need char
# Line 5387  No need char Line 5298  No need char
5298    
5299  /(?!.bcd).*/I  /(?!.bcd).*/I
5300  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5301  No options  No options
5302  No first char  No first char
5303  No need char  No need char
# Line 5400  No options Line 5310  No options
5310  First char = 'a'  First char = 'a'
5311  Need char = 'e'  Need char = 'e'
5312      ab\P      ab\P
5313  Partial match  Partial match: ab
5314      abc\P      abc\P
5315  Partial match  Partial match: abc
5316      abcd\P      abcd\P
5317  Partial match  Partial match: abcd
5318      abcde\P      abcde\P
5319   0: abcde   0: abcde
5320      the quick brown abc\P      the quick brown abc\P
5321  Partial match  Partial match: abc
5322      ** Failers\P      ** Failers\P
5323  No match  No match
5324      the quick brown abxyz fox\P      the quick brown abxyz fox\P
# Line 5433  Need char = '/' Line 5343  Need char = '/'
5343   1: 02   1: 02
5344   2: 05   2: 05
5345      1\P      1\P
5346  Partial match  Partial match: 1
5347      1/2\P      1/2\P
5348  Partial match  Partial match: 1/2
5349      1/2/0\P      1/2/0\P
5350  Partial match  Partial match: 1/2/0
5351      1/2/04\P      1/2/04\P
5352   0: 1/2/04   0: 1/2/04
5353   1: 1   1: 1
5354   2: 2   2: 2
5355      0\P      0\P
5356  Partial match  Partial match: 0
5357      02/\P      02/\P
5358  Partial match  Partial match: 02/
5359      02/0\P      02/0\P
5360  Partial match  Partial match: 02/0
5361      02/1\P      02/1\P
5362  Partial match  Partial match: 02/1
5363      ** Failers\P      ** Failers\P
5364  No match  No match
5365      \P      \P
# Line 5471  No match Line 5381  No match
5381    
5382  /0{0,2}ABC/I  /0{0,2}ABC/I
5383  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5384  No options  No options
5385  No first char  No first char
5386  Need char = 'C'  Need char = 'C'
5387    
5388  /\d{3,}ABC/I  /\d{3,}ABC/I
5389  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5390  No options  No options
5391  No first char  No first char
5392  Need char = 'C'  Need char = 'C'
5393    
5394  /\d*ABC/I  /\d*ABC/I
5395  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5396  No options  No options
5397  No first char  No first char
5398  Need char = 'C'  Need char = 'C'
5399    
5400  /[abc]+DE/I  /[abc]+DE/I
5401  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5402  No options  No options
5403  No first char  No first char
5404  Need char = 'E'  Need char = 'E'
# Line 5505  Need char = '3' Line 5411  Need char = '3'
5411      123\P      123\P
5412   0: 123   0: 123
5413      a\P      a\P
5414  Partial match  Partial match: a
5415      b\P      b\P
5416  Partial match  Partial match: b
5417      c\P      c\P
5418  Partial match  Partial match: c
5419      c12\P      c12\P
5420  Partial match  Partial match: c12
5421      c123\P      c123\P
5422   0: c123   0: c123
5423    
# Line 5521  Options: anchored Line 5427  Options: anchored
5427  No first char  No first char
5428  Need char = 'X'  Need char = 'X'
5429      1\P      1\P
5430  Partial match  Partial match: 1
5431      123\P      123\P
5432  Partial match  Partial match: 123
5433      123X      123X
5434   0: 123X   0: 123X
5435      1234\P      1234\P
5436  Partial match  Partial match: 1234
5437      1234X      1234X
5438   0: 1234X   0: 1234X
5439      12345\P      12345\P
5440  Partial match  Partial match: 12345
5441      12345X      12345X
5442   0: 12345X   0: 12345X
5443      *** Failers      *** Failers
# Line 5578  Capturing subpattern count = 1 Line 5484  Capturing subpattern count = 1
5484  No options  No options
5485  No first char  No first char
5486  No need char  No need char
5487    Subject length lower bound = 1
5488  Starting byte set: a b  Starting byte set: a b
5489  Compiled regex written to testsavedregex  Compiled regex written to testsavedregex
5490  Study data written to testsavedregex  Study data written to testsavedregex
# Line 5598  Capturing subpattern count = 1 Line 5505  Capturing subpattern count = 1
5505  No options  No options
5506  No first char  No first char
5507  No need char  No need char
5508    Subject length lower bound = 1
5509  Starting byte set: a b  Starting byte set: a b
5510  Compiled regex written to testsavedregex  Compiled regex written to testsavedregex
5511  Study data written to testsavedregex  Study data written to testsavedregex
# Line 5616  No match Line 5524  No match
5524  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5525  Capturing subpattern count = 3  Capturing subpattern count = 3
5526  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
5527  Options: multiline dotall  Options: multiline dotall
5528  First char = '<'  First char = '<'
5529  Need char = '>'  Need char = '>'
# Line 5669  No match Line 5576  No match
5576      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5577  No match  No match
5578    
5579  /ab.cd/IP  /ab.cd/P
5580      ab-cd      ab-cd
5581   0: ab-cd   0: ab-cd
5582      ab=cd      ab=cd
# Line 5679  No match: POSIX code 17: match failed Line 5586  No match: POSIX code 17: match failed
5586      ab\ncd      ab\ncd
5587  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
5588    
5589  /ab.cd/IPs  /ab.cd/Ps
5590      ab-cd      ab-cd
5591   0: ab-cd   0: ab-cd
5592      ab=cd      ab=cd
# Line 5923  Matched, but too many substrings Line 5830  Matched, but too many substrings
5830    
5831  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
5832  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5833  No options  No options
5834  No first char  No first char
5835  No need char  No need char
# Line 5936  No need char Line 5842  No need char
5842    
5843  /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
5844  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5845  No options  No options
5846  No first char  No first char
5847  No need char  No need char
# Line 5947  No need char Line 5852  No need char
5852    
5853  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
5854  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5855  No options  No options
5856  No first char  No first char
5857  No need char  No need char
# Line 5958  No need char Line 5862  No need char
5862    
5863  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
5864  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5865  No options  No options
5866  No first char  No first char
5867  No need char  No need char
# Line 5971  No need char Line 5874  No need char
5874    
5875  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
5876  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5877  No options  No options
5878  No first char  No first char
5879  No need char  No need char
# Line 5984  No need char Line 5886  No need char
5886      ((this))      ((this))
5887   0: ((this))   0: ((this))
5888    
5889  /a(b)c/IPN  /a(b)c/PN
5890      abc      abc
5891  Matched with REG_NOSUB  Matched with REG_NOSUB
5892    
5893  /a(?P<name>b)c/IPN  /a(?P<name>b)c/PN
5894      abc      abc
5895  Matched with REG_NOSUB  Matched with REG_NOSUB
5896    
# Line 6313  Failed: octal value is greater than \377 Line 6215  Failed: octal value is greater than \377
6215    
6216  /\s*,\s*/IS  /\s*,\s*/IS
6217  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6218  No options  No options
6219  No first char  No first char
6220  Need char = ','  Need char = ','
6221    Subject length lower bound = 1
6222  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6223      \x0b,\x0b      \x0b,\x0b
6224   0: ,   0: ,
# Line 6443  Unknown newline type at: <bad> Line 6345  Unknown newline type at: <bad>
6345    
6346  /.*/I<lf>  /.*/I<lf>
6347  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6348  Options:  Options:
6349  Forced newline sequence: LF  Forced newline sequence: LF
6350  First char at start or follows newline  First char at start or follows newline
# Line 6469  No need char Line 6370  No need char
6370    
6371  /\w+(.)(.)?def/Is  /\w+(.)(.)?def/Is
6372  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
6373  Options: dotall  Options: dotall
6374  No first char  No first char
6375  Need char = 'f'  Need char = 'f'
# Line 6486  Need char = 'f' Line 6386  Need char = 'f'
6386    
6387  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6388  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6389  No options  No options
6390  No first char  No first char
6391  No need char  No need char
# Line 6621  No need char Line 6520  No need char
6520    
6521  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
6522  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6523  No options  No options
6524  No first char  No first char
6525  No need char  No need char
6526    Subject length lower bound = 1
6527  Starting byte set: C a b c d  Starting byte set: C a b c d
6528    
6529  /()[ab]xyz/IS  /()[ab]xyz/IS
# Line 6632  Capturing subpattern count = 1 Line 6531  Capturing subpattern count = 1
6531  No options  No options
6532  No first char  No first char
6533  Need char = 'z'  Need char = 'z'
6534    Subject length lower bound = 4
6535  Starting byte set: a b  Starting byte set: a b
6536    
6537  /(|)[ab]xyz/IS  /(|)[ab]xyz/IS
# Line 6639  Capturing subpattern count = 1 Line 6539  Capturing subpattern count = 1
6539  No options  No options
6540  No first char  No first char
6541  Need char = 'z'  Need char = 'z'
6542    Subject length lower bound = 4
6543  Starting byte set: a b  Starting byte set: a b
6544    
6545  /(|c)[ab]xyz/IS  /(|c)[ab]xyz/IS
# Line 6646  Capturing subpattern count = 1 Line 6547  Capturing subpattern count = 1
6547  No options  No options
6548  No first char  No first char
6549  Need char = 'z'  Need char = 'z'
6550    Subject length lower bound = 4
6551  Starting byte set: a b c  Starting byte set: a b c
6552    
6553  /(|c?)[ab]xyz/IS  /(|c?)[ab]xyz/IS
# Line 6653  Capturing subpattern count = 1 Line 6555  Capturing subpattern count = 1
6555  No options  No options
6556  No first char  No first char
6557  Need char = 'z'  Need char = 'z'
6558    Subject length lower bound = 4
6559  Starting byte set: a b c  Starting byte set: a b c
6560    
6561  /(d?|c?)[ab]xyz/IS  /(d?|c?)[ab]xyz/IS
# Line 6660  Capturing subpattern count = 1 Line 6563  Capturing subpattern count = 1
6563  No options  No options
6564  No first char  No first char
6565  Need char = 'z'  Need char = 'z'
6566    Subject length lower bound = 4
6567  Starting byte set: a b c d  Starting byte set: a b c d
6568    
6569  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
# Line 6667  Capturing subpattern count = 1 Line 6571  Capturing subpattern count = 1
6571  No options  No options
6572  No first char  No first char
6573  Need char = 'z'  Need char = 'z'
6574    Subject length lower bound = 4
6575  Starting byte set: a b c d  Starting byte set: a b c d
6576    
6577  /^a*b\d/DZ  /^a*b\d/DZ
# Line 6680  Starting byte set: a b c d Line 6585  Starting byte set: a b c d
6585          End          End
6586  ------------------------------------------------------------------  ------------------------------------------------------------------
6587  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6588  Options: anchored  Options: anchored
6589  No first char  No first char
6590  Need char = 'b'  Need char = 'b'
# Line 6696  Need char = 'b' Line 6600  Need char = 'b'
6600          End          End
6601  ------------------------------------------------------------------  ------------------------------------------------------------------
6602  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6603  Options: anchored  Options: anchored
6604  No first char  No first char
6605  Need char = 'b'  Need char = 'b'
# Line 6712  Need char = 'b' Line 6615  Need char = 'b'
6615          End          End
6616  ------------------------------------------------------------------  ------------------------------------------------------------------
6617  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6618  Options: anchored  Options: anchored
6619  No first char  No first char
6620  Need char = 'b'  Need char = 'b'
# Line 6728  Need char = 'b' Line 6630  Need char = 'b'
6630          End          End
6631  ------------------------------------------------------------------  ------------------------------------------------------------------
6632  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6633  Options: anchored  Options: anchored
6634  No first char  No first char
6635  Need char = 'A'  Need char = 'A'
# Line 6750  No match Line 6651  No match
6651          End          End
6652  ------------------------------------------------------------------  ------------------------------------------------------------------
6653  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6654  Options: anchored caseless  Options: anchored caseless
6655  No first char  No first char
6656  Need char = 'A' (caseless)  Need char = 'A' (caseless)
# Line 6761  Need char = 'A' (caseless) Line 6661  Need char = 'A' (caseless)
6661    
6662  /(a*|b*)[cd]/IS  /(a*|b*)[cd]/IS
6663  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6664  No options  No options
6665  No first char  No first char
6666  No need char  No need char
6667    Subject length lower bound = 1
6668  Starting byte set: a b c d  Starting byte set: a b c d
6669    
6670  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
6671  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6672  No options  No options
6673  No first char  No first char
6674  No need char  No need char
6675    Subject length lower bound = 1
6676  Starting byte set: a b c d  Starting byte set: a b c d
6677    
6678  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
6679  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6680  No options  No options
6681  No first char  No first char
6682  No need char  No need char
6683    Subject length lower bound = 1
6684  Starting byte set: a b c d  Starting byte set: a b c d
6685    
6686  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
6687  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6688  No options  No options
6689  No first char  No first char
6690  No need char  No need char
6691    Subject length lower bound = 2
6692  Starting byte set: a b  Starting byte set: a b
6693    
6694  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
# Line 7594  No match Line 7494  No match
7494          ^          ^
7495          CBra 1          CBra 1
7496          Cond          Cond
7497        2 Cond ref        2 Cond nref
7498          y          y
7499          Ket          Ket
7500          [()]          [()]
# Line 7660  Named capturing subpatterns: Line 7560  Named capturing subpatterns:
7560    one     1    one     1
7561    three   3    three   3
7562    two     2    two     2
 Partial matching not supported  
7563  Options: anchored caseless  Options: anchored caseless
7564  No first char  No first char
7565  No need char  No need char
# Line 7694  No match Line 7593  No match
7593  /(?=(\w+))\1:/I  /(?=(\w+))\1:/I
7594  Capturing subpattern count = 1  Capturing subpattern count = 1
7595  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
7596  No options  No options
7597  No first char  No first char
7598  Need char = ':'  Need char = ':'
# Line 7707  Capturing subpattern count = 1 Line 7605  Capturing subpattern count = 1
7605  Max back reference = 1  Max back reference = 1
7606  Named capturing subpatterns:  Named capturing subpatterns:
7607    abc   1    abc   1
 Partial matching not supported  
7608  No options  No options
7609  No first char  No first char
7610  Need char = ':'  Need char = ':'
# Line 7715  Need char = ':' Line 7612  Need char = ':'
7612   0: abcd:   0: abcd:
7613   1: abcd   1: abcd
7614    
 /(?'abc'\w+):\k<abc>{2}/  
     a:aaxyz  
  0: a:aa  
  1: a  
     ab:ababxyz  
  0: ab:abab  
  1: ab  
     ** Failers  
 No match  
     a:axyz  
 No match  
     ab:abxyz  
 No match  
   
7615  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7616      adaa      adaa
7617   0: adaa   0: adaa
# Line 7755  No match Line 7638  No match
7638      bddd      bddd
7639  No match  No match
7640    
 /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x  
     abd  
  0: abd  
  1: a  
     ce  
  0: ce  
   
7641  /(?(<bc))/  /(?(<bc))/
7642  Failed: malformed number or name after (?( at offset 6  Failed: malformed number or name after (?( at offset 6
7643    
# Line 7792  Failed: reference to non-existent subpat Line 7668  Failed: reference to non-existent subpat
7668   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7669   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7670    
 /^(?(DEFINE) (?<A> a) (?<B> b) )  (?&A) (?&B) /x  
     abcd  
  0: ab  
  1: <unset>  
  2: <unset>  
   
 /(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT))  
   (?(DEFINE)  
   (?<NAME_PAT>[a-z]+)  
   (?<ADDRESS_PAT>\d+)  
   )/x  
     metcalfe 33  
  0: metcalfe 33  
  1: metcalfe  
  2: 33  
  3: <unset>  
  4: <unset>  
   
7671  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7672  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7673    
# Line 7851  No match Line 7709  No match
7709  No match  No match
7710    
7711  /^abc./mgx<any>  /^abc./mgx<any>
7712      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
7713   0: abc1   0: abc1
7714   0: abc2   0: abc2
7715   0: abc3   0: abc3
# Line 7861  No match Line 7719  No match
7719   0: abc7   0: abc7
7720    
7721  /abc.$/mgx<any>  /abc.$/mgx<any>
7722      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
7723   0: abc1   0: abc1
7724   0: abc2   0: abc2
7725   0: abc3   0: abc3
# Line 7987  Need char = 'P' Line 7845  Need char = 'P'
7845   0: PXP   0: PXP
7846   1: P   1: P
7847    
 /(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/  
     1.2.3.4  
  0: 1.2.3.4  
  1: <unset>  
  2: .4  
     131.111.10.206  
  0: 131.111.10.206  
  1: <unset>  
  2: .206  
     10.0.0.0  
  0: 10.0.0.0  
  1: <unset>  
  2: .0  
     ** Failers  
 No match  
     10.6  
 No match  
     455.3.4.5  
 No match  
   
 /\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/  
     1.2.3.4  
  0: 1.2.3.4  
  1: .4  
  2: <unset>  
     131.111.10.206  
  0: 131.111.10.206  
  1: .206  
  2: <unset>  
     10.0.0.0  
  0: 10.0.0.0  
  1: .0  
  2: <unset>  
     ** Failers  
 No match  
     10.6  
 No match  
     455.3.4.5  
 No match  
   
7848  /(?:a(?&abc)b)*(?<abc>x)/  /(?:a(?&abc)b)*(?<abc>x)/
7849      123axbaxbaxbx456      123axbaxbaxbx456
7850   0: axbaxbaxbx   0: axbaxbaxbx
# Line 8064  No match Line 7882  No match
7882     DEFabcABCXYZ     DEFabcABCXYZ
7883  No match  No match
7884    
 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/  
     ababababbbabZXXXX  
  0: ababababbbabZ  
  1: ab  
  2: b  
   
7885  /^(a)\g-2/  /^(a)\g-2/
7886  Failed: reference to non-existent subpattern at offset 7  Failed: reference to non-existent subpattern at offset 7
7887    
# Line 8163  No match Line 7975  No match
7975   0+   0+
7976    
7977  /abc.$/mgx<anycrlf>  /abc.$/mgx<anycrlf>
7978      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
7979   0: abc1   0: abc1
7980   0: abc4   0: abc4
7981   0: abc5   0: abc5
# Line 8325  Failed: reference to non-existent subpat Line 8137  Failed: reference to non-existent subpat
8137   0: Y!   0: Y!
8138   1: !   1: !
8139    
 /(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  
   
8140  /(?<A>tom|bon)-\k{A}/  /(?<A>tom|bon)-\k{A}/
8141      tom-tom      tom-tom
8142   0: tom-tom   0: tom-tom
# Line 8357  No match Line 8149  No match
8149      tom-bon      tom-bon
8150  No match  No match
8151    
 /(?<A>tom|bon)-\g{A}/  
     tom-tom  
  0: tom-tom  
  1: tom  
     bon-bon  
  0: bon-bon  
  1: bon  
   
8152  /\g{A/  /\g{A/
8153  Failed: syntax error in subpattern name (missing terminator) at offset 4  Failed: syntax error in subpattern name (missing terminator) at offset 4
8154    
# Line 8459  Failed: syntax error in subpattern name Line 8243  Failed: syntax error in subpattern name
8243   3: <unset>   3: <unset>
8244   4: x   4: x
8245    
 /(?|(abc)|(xyz))\1/  
     abcabc  
  0: abcabc  
  1: abc  
     xyzxyz  
  0: xyzxyz  
  1: xyz  
     ** Failers  
 No match  
     abcxyz  
 No match  
     xyzabc  
 No match  
   
 /(?|(abc)|(xyz))(?1)/  
     abcabc  
  0: abcabc  
  1: abc  
     xyzabc  
  0: xyzabc  
  1: xyz  
     ** Failers  
 No match  
     xyzxyz  
 No match  
   
 /\H\h\V\v/  
     X X\x0a  
  0: X X\x0a  
     X\x09X\x0b  
  0: X\x09X\x0b  
     ** Failers  
 No match  
     \xa0 X\x0a  
 No match  
   
 /\H*\h+\V?\v{3,4}/  
     \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a  
  0: \x09 \xa0X\x0a\x0b\x0c\x0d  
     \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a  
  0: \x09 \xa0\x0a\x0b\x0c\x0d  
     \x09\x20\xa0\x0a\x0b\x0c  
  0: \x09 \xa0\x0a\x0b\x0c  
     ** Failers  
 No match  
     \x09\x20\xa0\x0a\x0b  
 No match  
   
 /\H{3,4}/  
     XY  ABCDE  
  0: ABCD  
     XY  PQR ST  
  0: PQR  
   
 /.\h{3,4}./  
     XY  AB    PQRS  
  0: B    P  
   
 /\h*X\h?\H+Y\H?Z/  
     >XNNNYZ  
  0: XNNNYZ  
     >  X NYQZ  
  0:   X NYQZ  
     ** Failers  
 No match  
     >XYZ  
 No match  
     >  X NY Z  
 No match  
   
 /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/  
     >XY\x0aZ\x0aA\x0bNN\x0c  
  0: XY\x0aZ\x0aA\x0bNN\x0c  
     >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c  
  0: \x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c  
   
8246  /[\h]/BZ  /[\h]/BZ
8247  ------------------------------------------------------------------  ------------------------------------------------------------------
8248          Bra          Bra
# Line 8831  Failed: missing terminating ] for charac Line 8539  Failed: missing terminating ] for charac
8539          End          End
8540  ------------------------------------------------------------------  ------------------------------------------------------------------
8541    
 /^a+(*FAIL)/  
     aaaaaa  
 No match  
   
 /a+b?c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*PRUNE)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*COMMIT)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*SKIP)c+(*FAIL)/  
     aaabcccaaabccc  
 No match  
   
 /^(?:aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/  
     aaaxxxxxx  
  0: aaaxxxxxx  
     aaa++++++  
  0: aaa  
     bbbxxxxx  
  0: bbbxxxxx  
     bbb+++++  
  0: bbb  
     cccxxxx  
  0: cccxxxx  
     ccc++++  
  0: ccc  
     dddddddd  
  0: ddd  
   
 /^(aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/  
     aaaxxxxxx  
  0: aaaxxxxxx  
  1: aaaxxxxxx  
     aaa++++++  
  0: aaa  
  1: aaa  
     bbbxxxxx  
  0: bbbxxxxx  
  1: bbbxxxxx  
     bbb+++++  
  0: bbb  
  1: bbb  
     cccxxxx  
  0: cccxxxx  
  1: cccxxxx  
     ccc++++  
  0: ccc  
  1: ccc  
     dddddddd  
  0: ddd  
  1: ddd  
   
 /a+b?(*THEN)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /(A (A|B(*ACCEPT)|C) D)(E)/x  
     ABX  
  0: AB  
     AADE  
  0: AADE  
  1: AAD  
  2: A  
  3: E  
     ACDE  
  0: ACDE  
  1: ACD  
  2: C  
  3: E  
     ** Failers  
 No match  
     AD  
 No match  
   
8542  /^a+(*FAIL)/C  /^a+(*FAIL)/C
8543      aaaaaa      aaaaaa
8544  --->aaaaaa  --->aaaaaa
# Line 9216  No match Line 8843  No match
8843    
8844  /a\R{2,4}b/I<bsr_anycrlf>  /a\R{2,4}b/I<bsr_anycrlf>
8845  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
8846  Options: bsr_anycrlf  Options: bsr_anycrlf
8847  First char = 'a'  First char = 'a'
8848  Need char = 'b'  Need char = 'b'
# Line 9235  No match Line 8861  No match
8861    
8862  /a\R{2,4}b/I<bsr_unicode>  /a\R{2,4}b/I<bsr_unicode>
8863  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
8864  Options: bsr_unicode  Options: bsr_unicode
8865  First char = 'a'  First char = 'a'
8866  Need char = 'b'  Need char = 'b'
# Line 9385  Failed: unknown POSIX class name at offs Line 9010  Failed: unknown POSIX class name at offs
9010  /[[:a\dz:]]/  /[[:a\dz:]]/
9011  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
9012    
9013  /^(?<name>a|b\g<name>c)/  /(^(a|b\g<-1'c))/
9014      aaaa  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
9015    
9016  /^(?<name>a|b\g'name'c)/  /^(?+1)(?<a>x|y){0}z/
9017      aaaa      xzxx
9018   0: a   0: xz
9019   1: a      yzyy
9020      bacxxx   0: yz
9021   0: bac      ** Failers
9022   1: bac  No match
9023      bbaccxxx      xxz
9024   0: bbacc  No match
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
9025    
9026  /^(a|b\g<1>c)/  /(\3)(\1)(a)/
9027      aaaa      cat
9028   0: a  No match
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
9029    
9030  /^(a|b\g'1'c)/  /(\3)(\1)(a)/<JS>
9031      aaaa      cat
9032   0: a   0: a
9033   1: a   1:
9034      bacxxx   2:
9035   0: bac   3: a
9036   1: bac  
9037      bbaccxxx  /TA]/
9038   0: bbacc      The ACTA] comes
9039   1: bbacc   0: TA]
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
9040    
9041  /^(a|b\g'-1'c)/  /TA]/<JS>
9042      aaaa  Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
9043    
9044  /(^(a|b\g<-1>c))/  /(?2)[]a()b](abc)/
9045      aaaa  Failed: reference to non-existent subpattern at offset 3
9046   0: a  
9047   1: a  /(?2)[^]a()b](abc)/
9048   2: a  Failed: reference to non-existent subpattern at offset 3
9049      bacxxx  
9050   0: bac  /(?1)[]a()b](abc)/
9051        abcbabc
9052     0: abcbabc
9053     1: abc
9054        ** Failers
9055    No match
9056        abcXabc
9057    No match
9058    
9059    /(?1)[^]a()b](abc)/
9060        abcXabc
9061     0: abcXabc
9062     1: abc
9063        ** Failers
9064    No match
9065        abcbabc
9066    No match
9067    
9068    /(?2)[]a()b](abc)(xyz)/
9069        xyzbabcxyz
9070     0: xyzbabcxyz
9071     1: abc
9072     2: xyz
9073    
9074    /(?&N)[]a(?<N>)](?<M>abc)/
9075    Failed: reference to non-existent subpattern at offset 4
9076    
9077    /(?&N)[]a(?<N>)](abc)/
9078    Failed: reference to non-existent subpattern at offset 4
9079    
9080    /a[]b/
9081    Failed: missing terminating ] for character class at offset 4
9082    
9083    /a[^]b/
9084    Failed: missing terminating ] for character class at offset 5
9085    
9086    /a[]b/<JS>
9087        ** Failers
9088    No match
9089        ab
9090    No match
9091    
9092    /a[]+b/<JS>
9093        ** Failers
9094    No match
9095        ab
9096    No match
9097    
9098    /a[]*+b/<JS>
9099        ** Failers
9100    No match
9101        ab
9102    No match
9103    
9104    /a[^]b/<JS>
9105        aXb
9106     0: aXb
9107        a\nb
9108     0: a\x0ab
9109        ** Failers
9110    No match
9111        ab
9112    No match
9113    
9114    /a[^]+b/<JS>
9115        aXb
9116     0: aXb
9117        a\nX\nXb
9118     0: a\x0aX\x0aXb
9119        ** Failers
9120    No match
9121        ab
9122    No match
9123    
9124    /a(?!)+b/
9125    Failed: nothing to repeat at offset 5
9126    
9127    /a(*FAIL)+b/
9128    Failed: nothing to repeat at offset 8
9129    
9130    /(abc|pqr|123){0}[xyz]/SI
9131    Capturing subpattern count = 1
9132    No options
9133    No first char
9134    No need char
9135    Subject length lower bound = 1
9136    Starting byte set: x y z
9137    
9138    /(?(?=.*b)b|^)/CI
9139    Capturing subpattern count = 0
9140    Options:
9141    No first char
9142    No need char
9143       adc
9144    --->adc
9145     +0 ^       (?(?=.*b)b|^)
9146     +2 ^       (?=.*b)
9147     +5 ^       .*
9148     +7 ^  ^    b
9149     +7 ^ ^     b
9150     +7 ^^      b
9151     +7 ^       b
9152    +12 ^       )
9153    +13 ^
9154     0:
9155       abc
9156    --->abc
9157     +0 ^       (?(?=.*b)b|^)
9158     +2 ^       (?=.*b)
9159     +5 ^       .*
9160     +7 ^  ^    b
9161     +7 ^ ^     b
9162     +7 ^^      b
9163     +8 ^ ^     )
9164     +9 ^       b
9165     +0  ^      (?(?=.*b)b|^)
9166     +2  ^      (?=.*b)
9167     +5  ^      .*
9168     +7  ^ ^    b
9169     +7  ^^     b
9170     +7  ^      b
9171     +8  ^^     )
9172     +9  ^      b
9173    +10  ^^     |
9174    +13  ^^
9175     0: b
9176    
9177    /(?(?=b).*b|^d)/I
9178    Capturing subpattern count = 0
9179    No options
9180    No first char
9181    No need char
9182    
9183    /(?(?=.*b).*b|^d)/I
9184    Capturing subpattern count = 0
9185    No options
9186    First char at start or follows newline
9187    No need char
9188    
9189    /a?|b?/P
9190        abc
9191     0: a
9192        ** Failers
9193     0:
9194        ddd\N
9195    No match: POSIX code 17: match failed
9196    
9197    /xyz/C
9198      xyz
9199    --->xyz
9200     +0 ^       x
9201     +1 ^^      y
9202     +2 ^ ^     z
9203     +3 ^  ^
9204     0: xyz
9205      abcxyz
9206    --->abcxyz
9207     +0    ^       x
9208     +1    ^^      y
9209     +2    ^ ^     z
9210     +3    ^  ^
9211     0: xyz
9212      abcxyz\Y
9213    --->abcxyz
9214     +0 ^          x
9215     +0  ^         x
9216     +0   ^        x
9217     +0    ^       x
9218     +1    ^^      y
9219     +2    ^ ^     z
9220     +3    ^  ^
9221     0: xyz
9222      ** Failers
9223    No match
9224      abc
9225    No match
9226      abc\Y
9227    --->abc
9228     +0 ^       x
9229     +0  ^      x
9230     +0   ^     x
9231     +0    ^    x
9232    No match
9233      abcxypqr
9234    No match
9235      abcxypqr\Y
9236    --->abcxypqr
9237     +0 ^            x
9238     +0  ^           x
9239     +0   ^          x
9240     +0    ^         x
9241     +1    ^^        y
9242     +2    ^ ^       z
9243     +0     ^        x
9244     +0      ^       x
9245     +0       ^      x
9246     +0        ^     x
9247     +0         ^    x
9248    No match
9249    
9250    /^"((?(?=[a])[^"])|b)*"$/C
9251        "ab"
9252    --->"ab"
9253     +0 ^        ^
9254     +1 ^        "
9255     +2 ^^       ((?(?=[a])[^"])|b)*
9256     +3 ^^       (?(?=[a])[^"])
9257     +5 ^^       (?=[a])
9258     +8 ^^       [a]
9259    +11 ^ ^      )
9260    +12 ^^       [^"]
9261    +16 ^ ^      )
9262    +17 ^ ^      |
9263     +3 ^ ^      (?(?=[a])[^"])
9264     +5 ^ ^      (?=[a])
9265     +8 ^ ^      [a]
9266    +21 ^ ^      "
9267    +18 ^ ^      b
9268    +19 ^  ^     )
9269     +3 ^  ^     (?(?=[a])[^"])
9270     +5 ^  ^     (?=[a])
9271     +8 ^  ^     [a]
9272    +21 ^  ^     "
9273    +22 ^   ^    $
9274    +23 ^   ^
9275     0: "ab"
9276     1:
9277    
9278    /^"((?(?=[a])[^"])|b)*"$/
9279        "ab"
9280     0: "ab"
9281     1:
9282    
9283    /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9284    Failed: reference to non-existent subpattern at offset 5
9285    
9286    /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9287        XYabcdY
9288     0: XYabcdY
9289     1: a
9290     2: b
9291     3: c
9292     4: d
9293     5: Y
9294    
9295    /Xa{2,4}b/
9296        X\P
9297    Partial match: X
9298        Xa\P
9299    Partial match: Xa
9300        Xaa\P
9301    Partial match: Xaa
9302        Xaaa\P
9303    Partial match: Xaaa
9304        Xaaaa\P
9305    Partial match: Xaaaa
9306    
9307    /Xa{2,4}?b/
9308        X\P
9309    Partial match: X
9310        Xa\P
9311    Partial match: Xa
9312        Xaa\P
9313    Partial match: Xaa
9314        Xaaa\P
9315    Partial match: Xaaa
9316        Xaaaa\P
9317    Partial match: Xaaaa
9318    
9319    /Xa{2,4}+b/
9320        X\P
9321    Partial match: X
9322        Xa\P
9323    Partial match: Xa
9324        Xaa\P
9325    Partial match: Xaa
9326        Xaaa\P
9327    Partial match: Xaaa
9328        Xaaaa\P
9329    Partial match: Xaaaa
9330    
9331    /X\d{2,4}b/
9332        X\P
9333    Partial match: X
9334        X3\P
9335    Partial match: X3
9336        X33\P
9337    Partial match: X33
9338        X333\P
9339    Partial match: X333
9340        X3333\P
9341    Partial match: X3333
9342    
9343    /X\d{2,4}?b/
9344        X\P
9345    Partial match: X
9346        X3\P
9347    Partial match: X3
9348        X33\P
9349    Partial match: X33
9350        X333\P
9351    Partial match: X333
9352        X3333\P
9353    Partial match: X3333
9354    
9355    /X\d{2,4}+b/
9356        X\P
9357    Partial match: X
9358        X3\P
9359    Partial match: X3
9360        X33\P
9361    Partial match: X33
9362        X333\P
9363    Partial match: X333
9364        X3333\P
9365    Partial match: X3333
9366    
9367    /X\D{2,4}b/
9368        X\P
9369    Partial match: X
9370        Xa\P
9371    Partial match: Xa
9372        Xaa\P
9373    Partial match: Xaa
9374        Xaaa\P
9375    Partial match: Xaaa
9376        Xaaaa\P
9377    Partial match: Xaaaa
9378    
9379    /X\D{2,4}?b/
9380        X\P
9381    Partial match: X
9382        Xa\P
9383    Partial match: Xa
9384        Xaa\P
9385    Partial match: Xaa
9386        Xaaa\P
9387    Partial match: Xaaa
9388        Xaaaa\P
9389    Partial match: Xaaaa
9390    
9391    /X\D{2,4}+b/
9392        X\P
9393    Partial match: X
9394        Xa\P
9395    Partial match: Xa
9396        Xaa\P
9397    Partial match: Xaa
9398        Xaaa\P
9399    Partial match: Xaaa
9400        Xaaaa\P
9401    Partial match: Xaaaa
9402    
9403    /X[abc]{2,4}b/
9404        X\P
9405    Partial match: X
9406        Xa\P
9407    Partial match: Xa
9408        Xaa\P
9409    Partial match: Xaa
9410        Xaaa\P
9411    Partial match: Xaaa
9412        Xaaaa\P
9413    Partial match: Xaaaa
9414    
9415    /X[abc]{2,4}?b/
9416        X\P
9417    Partial match: X
9418        Xa\P
9419    Partial match: Xa
9420        Xaa\P
9421    Partial match: Xaa
9422        Xaaa\P
9423    Partial match: Xaaa
9424        Xaaaa\P
9425    Partial match: Xaaaa
9426    
9427    /X[abc]{2,4}+b/
9428        X\P
9429    Partial match: X
9430        Xa\P
9431    Partial match: Xa
9432        Xaa\P
9433    Partial match: Xaa
9434        Xaaa\P
9435    Partial match: Xaaa
9436        Xaaaa\P
9437    Partial match: Xaaaa
9438    
9439    /X[^a]{2,4}b/
9440        X\P
9441    Partial match: X
9442        Xz\P
9443    Partial match: Xz
9444        Xzz\P
9445    Partial match: Xzz
9446        Xzzz\P
9447    Partial match: Xzzz
9448        Xzzzz\P
9449    Partial match: Xzzzz
9450    
9451    /X[^a]{2,4}?b/
9452        X\P
9453    Partial match: X
9454        Xz\P
9455    Partial match: Xz
9456        Xzz\P
9457    Partial match: Xzz
9458        Xzzz\P
9459    Partial match: Xzzz
9460        Xzzzz\P
9461    Partial match: Xzzzz
9462    
9463    /X[^a]{2,4}+b/
9464        X\P
9465    Partial match: X
9466        Xz\P
9467    Partial match: Xz
9468        Xzz\P
9469    Partial match: Xzz
9470        Xzzz\P
9471    Partial match: Xzzz
9472        Xzzzz\P
9473    Partial match: Xzzzz
9474    
9475    /(Y)X\1{2,4}b/
9476        YX\P
9477    Partial match: YX
9478        YXY\P
9479    Partial match: YXY
9480        YXYY\P
9481    Partial match: YXYY
9482        YXYYY\P
9483    Partial match: YXYYY
9484        YXYYYY\P
9485    Partial match: YXYYYY
9486    
9487    /(Y)X\1{2,4}?b/
9488        YX\P
9489    Partial match: YX
9490        YXY\P
9491    Partial match: YXY
9492        YXYY\P
9493    Partial match: YXYY
9494        YXYYY\P
9495    Partial match: YXYYY
9496        YXYYYY\P
9497    Partial match: YXYYYY
9498    
9499    /(Y)X\1{2,4}+b/
9500        YX\P
9501    Partial match: YX
9502        YXY\P
9503    Partial match: YXY
9504        YXYY\P
9505    Partial match: YXYY
9506        YXYYY\P
9507    Partial match: YXYYY
9508        YXYYYY\P
9509    Partial match: YXYYYY
9510    
9511    /\++\KZ|\d+X|9+Y/
9512        ++++123999\P
9513    Partial match: 123999
9514        ++++123999Y\P
9515     0: 999Y
9516        ++++Z1234\P
9517     0: Z
9518    
9519    /Z(*F)/
9520        Z\P
9521    No match
9522        ZA\P
9523    No match
9524    
9525    /Z(?!)/
9526        Z\P
9527    No match
9528        ZA\P
9529    No match
9530    
9531    /dog(sbody)?/
9532        dogs\P
9533     0: dog
9534        dogs\P\P
9535    Partial match: dogs
9536    
9537    /dog(sbody)??/
9538        dogs\P
9539     0: dog
9540        dogs\P\P
9541     0: dog
9542    
9543    /dog|dogsbody/
9544        dogs\P
9545     0: dog
9546        dogs\P\P
9547     0: dog
9548    
9549    /dogsbody|dog/
9550        dogs\P
9551     0: dog
9552        dogs\P\P
9553    Partial match: dogs
9554    
9555    /\bthe cat\b/
9556        the cat\P
9557     0: the cat
9558        the cat\P\P
9559    Partial match: the cat
9560    
9561    /abc/
9562       abc\P
9563     0: abc
9564       abc\P\P
9565     0: abc
9566    
9567    /\w+A/P
9568       CDAAAAB
9569     0: CDAAAA
9570    
9571    /\w+A/PU
9572       CDAAAAB
9573     0: CDA
9574    
9575    /abc\K123/
9576        xyzabc123pqr
9577     0: 123
9578        xyzabc12\P
9579    Partial match: abc12
9580        xyzabc12\P\P
9581    Partial match: abc12
9582    
9583    /(?<=abc)123/
9584        xyzabc123pqr
9585     0: 123
9586        xyzabc12\P
9587    Partial match: abc12
9588        xyzabc12\P\P
9589    Partial match: abc12
9590    
9591    /\babc\b/
9592        +++abc+++
9593     0: abc
9594        +++ab\P
9595    Partial match: +ab
9596        +++ab\P\P
9597    Partial match: +ab
9598    
9599    /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9600    ------------------------------------------------------------------
9601            Bra
9602            Once
9603            Recurse
9604            Ket
9605            Once
9606            Recurse
9607            Ket
9608            Cond
9609            Cond def
9610            CBra 1
9611            <
9612            [^m]
9613            [^>]
9614            >
9615            [^<]
9616            Ket
9617            CBra 2
9618            \w*+
9619            Ket
9620            Ket
9621            Ket
9622            End
9623    ------------------------------------------------------------------
9624    
9625    /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9626    ------------------------------------------------------------------
9627            Bra
9628            Once
9629            Recurse
9630            Ket
9631            Once
9632            Recurse
9633            Ket
9634            Cond
9635            Cond def
9636            CBra 1
9637            <
9638            [\x00-/:-\xff] (neg)
9639            [^>]
9640            >
9641            [^<]
9642            Ket
9643            CBra 2
9644            \w*+
9645            Ket
9646            Ket
9647            Ket
9648            End
9649    ------------------------------------------------------------------
9650    
9651    /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9652    ------------------------------------------------------------------
9653            Bra
9654            CBra 1
9655            ab
9656            Ket
9657            CBra 2
9658            x
9659            CBra 3
9660            y
9661            Ket
9662            z
9663            CBra 4
9664            cd
9665            Close 4
9666            Close 2
9667            *ACCEPT
9668            Ket
9669            Ket
9670            pq
9671            Ket
9672            End
9673    ------------------------------------------------------------------
9674    
9675    /abc\K/+
9676        abcdef
9677     0:
9678     0+ def
9679        abcdef\N\N
9680     0:
9681     0+ def
9682        xyzabcdef\N\N
9683     0:
9684     0+ def
9685        ** Failers
9686    No match
9687        abcdef\N
9688    No match
9689        xyzabcdef\N
9690    No match
9691    
9692    /^(?:(?=abc)|abc\K)/+
9693        abcdef
9694     0:
9695     0+ abcdef
9696        abcdef\N\N
9697     0:
9698     0+ def
9699        ** Failers
9700    No match
9701        abcdef\N
9702    No match
9703    
9704    /a?b?/+
9705        xyz
9706     0:
9707     0+ xyz
9708        xyzabc
9709     0:
9710     0+ xyzabc
9711        xyzabc\N
9712     0: ab
9713     0+ c
9714        xyzabc\N\N
9715     0:
9716     0+ yzabc
9717        xyz\N\N
9718     0:
9719     0+ yz
9720        ** Failers
9721     0:
9722     0+ ** Failers
9723        xyz\N
9724    No match
9725    
9726    /^a?b?/+
9727        xyz
9728     0:
9729     0+ xyz
9730        xyzabc
9731     0:
9732     0+ xyzabc
9733        ** Failers
9734     0:
9735     0+ ** Failers
9736        xyzabc\N
9737    No match
9738        xyzabc\N\N
9739    No match
9740        xyz\N\N
9741    No match
9742        xyz\N
9743    No match
9744    
9745    /^(?<name>a|b\g<name>c)/
9746        aaaa
9747     0: a
9748     1: a
9749        bacxxx
9750     0: bac
9751     1: bac
9752        bbaccxxx
9753     0: bbacc
9754     1: bbacc
9755        bbbacccxx
9756     0: bbbaccc
9757     1: bbbaccc
9758    
9759    /^(?<name>a|b\g'name'c)/
9760        aaaa
9761     0: a
9762     1: a
9763        bacxxx
9764     0: bac
9765     1: bac
9766        bbaccxxx
9767     0: bbacc
9768     1: bbacc
9769        bbbacccxx
9770     0: bbbaccc
9771     1: bbbaccc
9772    
9773    /^(a|b\g<1>c)/
9774        aaaa
9775     0: a
9776     1: a
9777        bacxxx
9778     0: bac
9779     1: bac
9780        bbaccxxx
9781     0: bbacc
9782     1: bbacc
9783        bbbacccxx
9784     0: bbbaccc
9785     1: bbbaccc
9786    
9787    /^(a|b\g'1'c)/
9788        aaaa
9789     0: a
9790     1: a
9791        bacxxx
9792     0: bac
9793     1: bac
9794        bbaccxxx
9795     0: bbacc
9796     1: bbacc
9797        bbbacccxx
9798     0: bbbaccc
9799     1: bbbaccc
9800    
9801    /^(a|b\g'-1'c)/
9802        aaaa
9803     0: a
9804     1: a
9805        bacxxx
9806     0: bac
9807     1: bac
9808        bbaccxxx
9809     0: bbacc
9810     1: bbacc
9811        bbbacccxx
9812     0: bbbaccc
9813     1: bbbaccc
9814    
9815    /(^(a|b\g<-1>c))/
9816        aaaa
9817     0: a
9818     1: a
9819     2: a
9820        bacxxx
9821     0: bac
9822   1: bac   1: bac
9823   2: bac   2: bac
9824      bbaccxxx      bbaccxxx
# Line 9473  Failed: unknown POSIX class name at offs Line 9830  Failed: unknown POSIX class name at offs
9830   1: bbbaccc   1: bbbaccc
9831   2: bbbaccc   2: bbbaccc
9832    
9833  /(^(a|b\g<-1'c))/  /(?-i:\g<name>)(?i:(?<name>a))/
9834  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15      XaaX
9835     0: aa
9836     1: a
9837        XAAX
9838     0: AA
9839     1: A
9840    
9841  /(^(a|b\g{-1}))/  /(?i:\g<name>)(?-i:(?<name>a))/
9842      bacxxx      XaaX
9843     0: aa
9844     1: a
9845        ** Failers
9846    No match
9847        XAAX
9848  No match  No match
9849    
9850  /(?-i:\g<name>)(?i:(?<name>a))/  /(?-i:\g<+1>)(?i:(a))/
9851      XaaX      XaaX
9852   0: aa   0: aa
9853   1: a   1: a
9854      XAAX      XAAX
9855   0: AA   0: AA
9856   1: A   1: A
9857    
9858  /(?i:\g<name>)(?-i:(?<name>a))/  /(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/
9859      XaaX  
9860   0: aa  /(?<n>a|b|c)\g<n>*/
9861       abc
9862     0: abc
9863     1: a
9864       accccbbb
9865     0: accccbbb
9866     1: a
9867    
9868    /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
9869        XYabcdY
9870     0: XYabcdY
9871     1: a
9872     2: b
9873     3: <unset>
9874     4: <unset>
9875     5: c
9876     6: d
9877     7: Y
9878    
9879    /(?<=b(?1)|zzz)(a)/
9880        xbaax
9881     0: a
9882     1: a
9883        xzzzax
9884     0: a
9885     1: a
9886    
9887    /(a)(?<=b\1)/
9888    Failed: lookbehind assertion is not fixed length at offset 10
9889    
9890    /(a)(?<=b+(?1))/
9891    Failed: lookbehind assertion is not fixed length at offset 13
9892    
9893    /(a+)(?<=b(?1))/
9894    Failed: lookbehind assertion is not fixed length at offset 14
9895    
9896    /(a(?<=b(?1)))/
9897    Failed: lookbehind assertion is not fixed length at offset 13
9898    
9899    /(?<=b(?1))xyz/
9900    Failed: reference to non-existent subpattern at offset 8
9901    
9902    /(?<=b(?1))xyz(b+)pqrstuvew/
9903    Failed: lookbehind assertion is not fixed length at offset 26
9904    
9905    /(a|bc)\1/SI
9906    Capturing subpattern count = 1
9907    Max back reference = 1
9908    No options
9909    No first char
9910    No need char
9911    Subject length lower bound = 2
9912    Starting byte set: a b
9913    
9914    /(a|bc)\1{2,3}/SI
9915    Capturing subpattern count = 1
9916    Max back reference = 1
9917    No options
9918    No first char
9919    No need char
9920    Subject length lower bound = 3
9921    Starting byte set: a b
9922    
9923    /(a|bc)(?1)/SI
9924    Capturing subpattern count = 1
9925    No options
9926    No first char
9927    No need char
9928    Subject length lower bound = 2
9929    Starting byte set: a b
9930    
9931    /(a|b\1)(a|b\1)/SI
9932    Capturing subpattern count = 2
9933    Max back reference = 1
9934    No options
9935    No first char
9936    No need char
9937    Subject length lower bound = 2
9938    Starting byte set: a b
9939    
9940    /(a|b\1){2}/SI
9941    Capturing subpattern count = 1
9942    Max back reference = 1
9943    No options
9944    No first char
9945    No need char
9946    Subject length lower bound = 2
9947    Starting byte set: a b
9948    
9949    /(a|bbbb\1)(a|bbbb\1)/SI
9950    Capturing subpattern count = 2
9951    Max back reference = 1
9952    No options
9953    No first char
9954    No need char
9955    Subject length lower bound = 2
9956    Starting byte set: a b
9957    
9958    /(a|bbbb\1){2}/SI
9959    Capturing subpattern count = 1
9960    Max back reference = 1
9961    No options
9962    No first char
9963    No need char
9964    Subject length lower bound = 2
9965    Starting byte set: a b
9966    
9967    /^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
9968    Capturing subpattern count = 1
9969    Options: anchored
9970    No first char
9971    Need char = ':'
9972    Subject length lower bound = 22
9973    No set of starting bytes
9974    
9975    /  (?: [\040\t] |  \(
9976    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
9977    \)  )*                          # optional leading comment
9978    (?:    (?:
9979    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
9980    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
9981    |
9982    " (?:                      # opening quote...
9983    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
9984    |                     #    or
9985    \\ [^\x80-\xff]           #   Escaped something (something != CR)
9986    )* "  # closing quote
9987    )                    # initial word
9988    (?:  (?: [\040\t] |  \(
9989    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
9990    \)  )*  \.  (?: [\040\t] |  \(
9991    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
9992    \)  )*   (?:
9993    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
9994    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
9995    |
9996    " (?:                      # opening quote...
9997    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
9998    |                     #    or
9999    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10000    )* "  # closing quote
10001    )  )* # further okay, if led by a period
10002    (?: [\040\t] |  \(
10003    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10004    \)  )*  @  (?: [\040\t] |  \(
10005    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10006    \)  )*    (?:
10007    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10008    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10009    |   \[                         # [
10010    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10011    \]                        #           ]
10012    )                           # initial subdomain
10013    (?:                                  #
10014    (?: [\040\t] |  \(
10015    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10016    \)  )*  \.                        # if led by a period...
10017    (?: [\040\t] |  \(
10018    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10019    \)  )*   (?:
10020    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10021    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10022    |   \[                         # [
10023    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10024    \]                        #           ]
10025    )                     #   ...further okay
10026    )*
10027    # address
10028    |                     #  or
10029    (?:
10030    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10031    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10032    |
10033    " (?:                      # opening quote...
10034    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10035    |                     #    or
10036    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10037    )* "  # closing quote
10038    )             # one word, optionally followed by....
10039    (?:
10040    [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
10041    \(
10042    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10043    \)       |  # comments, or...
10044    
10045    " (?:                      # opening quote...
10046    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10047    |                     #    or
10048    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10049    )* "  # closing quote
10050    # quoted strings
10051    )*
10052    <  (?: [\040\t] |  \(
10053    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10054    \)  )*                     # leading <
10055    (?:  @  (?: [\040\t] |  \(
10056    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10057    \)  )*    (?:
10058    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10059    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10060    |   \[                         # [
10061    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10062    \]                        #           ]
10063    )                           # initial subdomain
10064    (?:                                  #
10065    (?: [\040\t] |  \(
10066    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10067    \)  )*  \.                        # if led by a period...
10068    (?: [\040\t] |  \(
10069    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10070    \)  )*   (?:
10071    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10072    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10073    |   \[                         # [
10074    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10075    \]                        #           ]
10076    )                     #   ...further okay
10077    )*
10078    
10079    (?:  (?: [\040\t] |  \(
10080    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10081    \)  )*  ,  (?: [\040\t] |  \(
10082    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10083    \)  )*  @  (?: [\040\t] |  \(
10084    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10085    \)  )*    (?:
10086    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10087    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10088    |   \[                         # [
10089    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10090    \]                        #           ]
10091    )                           # initial subdomain
10092    (?:                                  #
10093    (?: [\040\t] |  \(
10094    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10095    \)  )*  \.                        # if led by a period...
10096    (?: [\040\t] |  \(
10097    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10098    \)  )*   (?:
10099    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10100    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10101    |   \[                         # [
10102    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10103    \]                        #           ]
10104    )                     #   ...further okay
10105    )*
10106    )* # further okay, if led by comma
10107    :                                # closing colon
10108    (?: [\040\t] |  \(
10109    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10110    \)  )*  )? #       optional route
10111    (?:
10112    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10113    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10114    |
10115    " (?:                      # opening quote...
10116    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10117    |                     #    or
10118    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10119    )* "  # closing quote
10120    )                    # initial word
10121    (?:  (?: [\040\t] |  \(
10122    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10123    \)  )*  \.  (?: [\040\t] |  \(
10124    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10125    \)  )*   (?:
10126    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10127    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10128    |
10129    " (?:                      # opening quote...
10130    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10131    |                     #    or
10132    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10133    )* "  # closing quote
10134    )  )* # further okay, if led by a period
10135    (?: [\040\t] |  \(
10136    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10137    \)  )*  @  (?: [\040\t] |  \(
10138    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10139    \)  )*    (?:
10140    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10141    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10142    |   \[                         # [
10143    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10144    \]                        #           ]
10145    )                           # initial subdomain
10146    (?:                                  #
10147    (?: [\040\t] |  \(
10148    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10149    \)  )*  \.                        # if led by a period...
10150    (?: [\040\t] |  \(
10151    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10152    \)  )*   (?:
10153    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10154    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10155    |   \[                         # [
10156    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10157    \]                        #           ]
10158    )                     #   ...further okay
10159    )*
10160    #       address spec
10161    (?: [\040\t] |  \(
10162    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10163    \)  )*  > #                  trailing >
10164    # name and address
10165    )  (?: [\040\t] |  \(
10166    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10167    \)  )*                       # optional trailing comment
10168    /xSI
10169    Capturing subpattern count = 0
10170    Contains explicit CR or LF match
10171    Options: extended
10172    No first char
10173    No need char
10174    Subject length lower bound = 3
10175    Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8
10176      9 = ? A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ^ _ ` a b c d e
10177      f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f
10178    
10179    /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS
10180    Capturing subpattern count = 11
10181    Options: caseless dotall
10182    First char = '<'
10183    Need char = '>'
10184    Subject length lower bound = 47
10185    No set of starting bytes
10186    
10187    "(?>.*/)foo"SI
10188    Capturing subpattern count = 0
10189    No options
10190    First char at start or follows newline
10191    Need char = 'o'
10192    Subject length lower bound = 4
10193    No set of starting bytes
10194    
10195    /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10196    Capturing subpattern count = 0
10197    Options: extended
10198    No first char
10199    Need char = '-'
10200    Subject length lower bound = 8
10201    No set of starting bytes
10202    
10203    /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10204    Capturing subpattern count = 1
10205    Options: caseless
10206    No first char
10207    No need char
10208    Subject length lower bound = 1
10209    Starting byte set: A B C a b c
10210    
10211    /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10212    Capturing subpattern count = 0
10213    No options
10214    No first char
10215    Need char = 'b'
10216    Subject length lower bound = 41
10217    Starting byte set: c d
10218    
10219    /<a[\s]+href[\s]*=[\s]*          # find <a href=
10220     ([\"\'])?                       # find single or double quote
10221     (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
10222                                     # quote, otherwise match up to next space
10223    /isxSI
10224    Capturing subpattern count = 3
10225    Max back reference = 1
10226    Options: caseless extended dotall
10227    First char = '<'
10228    Need char = '='
10229    Subject length lower bound = 9
10230    No set of starting bytes
10231    
10232    /^(?!:)                       # colon disallowed at start
10233      (?:                         # start of item
10234        (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
10235        (?(1)0 | () ) )           # if null previously matched, fail; else null
10236        :                         # followed by colon
10237      ){1,7}                      # end item; 1-7 of them required
10238      [0-9a-f]{1,4} $             # final hex number at end of string
10239      (?(1)|.)                    # check that there was an empty component
10240      /xiIS
10241    Capturing subpattern count = 1
10242    Options: anchored caseless extended
10243    No first char
10244    Need char = ':'
10245    Subject length lower bound = 2
10246    No set of starting bytes
10247    
10248    /(?|(?<a>A)|(?<a>B))/I
10249    Capturing subpattern count = 1
10250    Named capturing subpatterns:
10251      a   1
10252      a   1
10253    No options
10254    No first char
10255    No need char
10256        AB\Ca
10257     0: A
10258     1: A
10259      C A (1) a
10260        BA\Ca
10261     0: B
10262     1: B
10263      C B (1) a
10264    
10265    /(?|(?<a>A)|(?<b>B))/
10266    Failed: different names for subpatterns of the same number are not allowed at offset 15
10267    
10268    /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10269        b(?<quote> (?<apostrophe>')|(?<realquote>")) )
10270        (?('quote')[a-z]+|[0-9]+)/JIx
10271    Capturing subpattern count = 6
10272    Named capturing subpatterns:
10273      apostrophe   2
10274      apostrophe   5
10275      quote        1
10276      quote        4
10277      realquote    3
10278      realquote    6
10279    Options: extended dupnames
10280    No first char
10281    No need char
10282        a"aaaaa
10283     0: a"aaaaa
10284     1: "
10285     2: <unset>
10286     3: "
10287        b"aaaaa
10288     0: b"aaaaa
10289     1: <unset>
10290     2: <unset>
10291     3: <unset>
10292     4: "
10293     5: <unset>
10294     6: "
10295        ** Failers
10296    No match
10297        b"11111
10298    No match
10299        a"11111
10300    No match
10301    
10302    /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10303    ------------------------------------------------------------------
10304            Bra
10305            ^
10306            Bra
10307            CBra 1
10308            a
10309            Ket
10310            CBra 2
10311            b
10312            Ket
10313            CBra 3
10314            c
10315            Ket
10316            CBra 4
10317            d
10318            Ket
10319            Alt
10320            CBra 1
10321            e
10322            Ket
10323            Ket
10324            Cond
10325          4 Cond nref
10326            X
10327            Alt
10328            Y
10329            Ket
10330            Ket
10331            End
10332    ------------------------------------------------------------------
10333    Capturing subpattern count = 4
10334    Named capturing subpatterns:
10335      D   4
10336      D   1
10337    Options: anchored extended dupnames
10338    No first char
10339    No need char
10340        abcdX
10341     0: abcdX
10342     1: a
10343     2: b
10344     3: c
10345     4: d
10346        eX
10347     0: eX
10348     1: e
10349        ** Failers
10350    No match
10351        abcdY
10352    No match
10353        ey
10354    No match
10355    
10356    /(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
10357    ------------------------------------------------------------------
10358            Bra
10359            CBra 1
10360            a
10361            Ket
10362            CBra 2
10363            b
10364            Ket
10365            CBra 3
10366            c
10367            Ket
10368            CBra 4
10369            d
10370            Cond
10371            Cond nrecurse 1
10372            $
10373            Alt
10374            Once
10375            Recurse
10376            Ket
10377            Ket
10378            Ket
10379            Ket
10380            End
10381    ------------------------------------------------------------------
10382    Capturing subpattern count = 4
10383    Named capturing subpatterns:
10384      A   1
10385      A   4
10386    Options: extended dupnames
10387    First char = 'a'
10388    Need char = 'd'
10389        abcdd
10390     0: abcdd
10391   1: a   1: a
10392      ** Failers   2: b
10393     3: c
10394     4: dd
10395        ** Failers
10396  No match  No match
10397      XAAX      abcdde
10398  No match  No match
10399    
10400  /(?-i:\g<+1>)(?i:(a))/  /abcd*/
10401      XaaX      xxxxabcd\P
10402   0: aa   0: abcd
10403   1: a      xxxxabcd\P\P
10404      XAAX  Partial match: abcd
  0: AA  
  1: A  
10405    
10406  /(?=(?<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>\})\}))\{/  /abcd*/i
10407        xxxxabcd\P
10408     0: abcd
10409        xxxxabcd\P\P
10410    Partial match: abcd
10411        XXXXABCD\P
10412     0: ABCD
10413        XXXXABCD\P\P
10414    Partial match: ABCD
10415    
10416  /(?<n>a|b|c)\g<n>*/  /abc\d*/
10417     abc      xxxxabc1\P
10418   0: abc   0: abc1
10419   1: a      xxxxabc1\P\P
10420     accccbbb  Partial match: abc1
10421   0: accccbbb  
10422    /(a)bc\1*/
10423        xxxxabca\P
10424     0: abca
10425   1: a   1: a
10426        xxxxabca\P\P
10427    Partial match: abca
10428    
10429  /^(?+1)(?<a>x|y){0}z/  /abc[de]*/
10430      xzxx      xxxxabcde\P
10431   0: xz   0: abcde
10432   1: <unset>      xxxxabcde\P\P
10433      yzyy  Partial match: abcde
10434   0: yz  
10435   1: <unset>  /-- This is not in the Perl 5.10 test because Perl seems currently to be broken
10436      ** Failers      and not behaving as specified in that it *does* bumpalong after hitting
10437        (*COMMIT). --/
10438    
10439    /(?1)(A(*COMMIT)|B)D/
10440        ABD
10441     0: ABD
10442     1: B
10443        XABD
10444     0: ABD
10445     1: B
10446        BAD
10447     0: BAD
10448     1: A
10449        ABXABD
10450     0: ABD
10451     1: B
10452        ** Failers
10453  No match  No match
10454      xxz      ABX
10455  No match  No match
10456        BAXBAD
 /(\3)(\1)(a)/  
     cat  
10457  No match  No match
10458    
10459  /(\3)(\1)(a)/<JS>  /(\3)(\1)(a)/<JS>
# Line 9537  No match Line 10462  No match
10462   1:   1:
10463   2:   2:
10464   3: a   3: a
10465    
10466    /(\3)(\1)(a)/SI<JS>
10467    Capturing subpattern count = 3
10468    Max back reference = 3
10469    Options:
10470    No first char
10471    Need char = 'a'
10472    Subject length lower bound = 1
10473    No set of starting bytes
10474        cat
10475     0: a
10476     1:
10477     2:
10478     3: a
10479    
10480    /(\3)(\1)(a)/SI
10481    Capturing subpattern count = 3
10482    Max back reference = 3
10483    No options
10484    No first char
10485    Need char = 'a'
10486    Subject length lower bound = 3
10487    No set of starting bytes
10488        cat
10489    No match
10490    
10491    /i(?(DEFINE)(?<s>a))/SI
10492    Capturing subpattern count = 1
10493    Named capturing subpatterns:
10494      s   1
10495    No options
10496    First char = 'i'
10497    No need char
10498    Subject length lower bound = 1
10499    No set of starting bytes
10500        i
10501     0: i
10502    
10503  /TA]/  /()i(?(1)a)/SI
10504      The ACTA] comes  Capturing subpattern count = 1
10505   0: TA]  No options
10506    No first char
10507    Need char = 'i'
10508    Subject length lower bound = 1
10509    Starting byte set: i
10510        ia
10511     0: ia
10512     1:
10513    
10514  /TA]/<JS>  /(?i)a(?-i)b|c/BZ
10515  Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2  ------------------------------------------------------------------
10516            Bra
10517         NC a
10518         00 Opt
10519            b
10520            Alt
10521         00 Opt
10522            c
10523            Ket
10524            End
10525    ------------------------------------------------------------------
10526        XabX
10527     0: ab
10528        XAbX
10529     0: Ab
10530        CcC
10531     0: c
10532        ** Failers
10533    No match
10534        XABX
10535    No match
10536    
10537    /(?i)a(?s)b|c/BZ
10538    ------------------------------------------------------------------
10539            Bra
10540         NC a
10541         05 Opt
10542         NC b
10543            Alt
10544         05 Opt
10545         NC c
10546            Ket
10547            End
10548    ------------------------------------------------------------------
10549    
10550    /(?i)a(?s-i)b|c/BZ
10551    ------------------------------------------------------------------
10552            Bra
10553         NC a
10554         04 Opt
10555            b
10556            Alt
10557         04 Opt
10558            c
10559            Ket
10560            End
10561    ------------------------------------------------------------------
10562    
10563    /^(ab(c\1)d|x){2}$/BZ
10564    ------------------------------------------------------------------
10565            Bra
10566            ^
10567            Once
10568            CBra 1
10569            ab
10570            CBra 2
10571            c
10572            \1
10573            Ket
10574            d
10575            Alt
10576            x
10577            Ket
10578            Ket
10579            Once
10580            CBra 1
10581            ab
10582            CBra 2
10583            c
10584            \1
10585            Ket
10586            d
10587            Alt
10588            x
10589            Ket
10590            Ket
10591            $
10592            Ket
10593            End
10594    ------------------------------------------------------------------
10595        xabcxd
10596     0: xabcxd
10597     1: abcxd
10598     2: cx
10599    
10600    /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10601    ------------------------------------------------------------------
10602            Bra
10603            ^
10604            Once
10605            Brazero
10606            Once
10607            Recurse
10608            KetRmax
10609            Ket
10610            Cond
10611            Cond def
10612            CBra 1
10613            Any
10614            Ket
10615            Ket
10616            $
10617            Ket
10618            End
10619    ------------------------------------------------------------------
10620    
10621    /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10622    ------------------------------------------------------------------
10623            Bra
10624            ^
10625            Brazero
10626            Once
10627            Recurse
10628            KetRmax
10629            Cond
10630            Cond def
10631            CBra 1
10632            Any
10633            Ket
10634            Ket
10635            $
10636            Ket
10637            End
10638    ------------------------------------------------------------------
10639    
10640    / -- The first four of these are not in the Perl 5.10 test because Perl
10641         documents that the use of \K in assertions is "not well defined". The
10642         last is here because Perl gives the match as "b" rather than "ab". I
10643         believe this to be a Perl bug. --/
10644    
10645    /(?=a\Kb)ab/
10646        ab
10647     0: b
10648    
10649    /(?!a\Kb)ac/
10650        ac
10651     0: ac
10652    
10653    /^abc(?<=b\Kc)d/
10654        abcd
10655     0: cd
10656    
10657    /^abc(?<!b\Kq)d/
10658        abcd
10659     0: abcd
10660    
10661    /(?>a\Kb)z|(ab)/
10662        ab
10663     0: ab
10664     1: ab
10665    
10666    /----------------------/
10667    
10668    /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10669    Failed: recursive call could loop indefinitely at offset 31
10670    
10671  / End of testinput2 /  /-- End of testinput2 --/

Legend:
Removed from v.336  
changed lines
  Added in v.504

  ViewVC Help
Powered by ViewVC 1.1.5