/[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 270 by ph10, Fri Nov 16 19:55:16 2007 UTC revision 464 by ph10, Sun Oct 18 19:50:34 2009 UTC
# Line 1  Line 1 
1    /-- This set of tests is not Perl-compatible. It checks on special features
2        of PCRE's API, error diagnostics, and the compiled code of some patterns.
3        It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4        Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5        either because PCRE can't be compatible, or there is potential Perl
6        bug. --/
7    
8    /-- Originally, the Perl 5.10 things were in here too, but now I have separated
9        many (most?) of them out into test 11. However, there may still be some
10        that were overlooked. --/
11    
12  /(a)b|/I  /(a)b|/I
13  Capturing subpattern count = 1  Capturing subpattern count = 1
14  No options  No options
# Line 40  No match Line 51  No match
51    
52  /a+bc/I  /a+bc/I
53  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
54  No options  No options
55  First char = 'a'  First char = 'a'
56  Need char = 'c'  Need char = 'c'
57    
58  /a*bc/I  /a*bc/I
59  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
60  No options  No options
61  No first char  No first char
62  Need char = 'c'  Need char = 'c'
63    
64  /a{3}bc/I  /a{3}bc/I
65  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
66  No options  No options
67  First char = 'a'  First char = 'a'
68  Need char = 'c'  Need char = 'c'
69    
70  /(abc|a+z)/I  /(abc|a+z)/I
71  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
72  No options  No options
73  First char = 'a'  First char = 'a'
74  No need char  No need char
# Line 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 1003  copy substring 5 failed -7 Line 1006  copy substring 5 failed -7
1006    
1007  /(.{20})/I  /(.{20})/I
1008  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1009  No options  No options
1010  No first char  No first char
1011  No need char  No need char
# Line 1021  No need char Line 1023  No need char
1023    
1024  /(.{15})/I  /(.{15})/I
1025  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1026  No options  No options
1027  No first char  No first char
1028  No need char  No need char
# Line 1036  No need char Line 1037  No need char
1037    
1038  /(.{16})/I  /(.{16})/I
1039  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1040  No options  No options
1041  No first char  No first char
1042  No need char  No need char
# Line 1103  No need char Line 1103  No need char
1103  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1104  )?)?)?)?)?)?)?)?)?otherword/I  )?)?)?)?)?)?)?)?)?otherword/I
1105  Capturing subpattern count = 8  Capturing subpattern count = 8
 Partial matching not supported  
1106  Contains explicit CR or LF match  Contains explicit CR or LF match
1107  No options  No options
1108  First char = 'w'  First char = 'w'
# Line 1118  Need char = 'd' Line 1117  Need char = 'd'
1117          End          End
1118  ------------------------------------------------------------------  ------------------------------------------------------------------
1119  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1120  No options  No options
1121  First char at start or follows newline  First char at start or follows newline
1122  Need char = 'X'  Need char = 'X'
# Line 1126  Need char = 'X' Line 1124  Need char = 'X'
1124  /.*X/IDZs  /.*X/IDZs
1125  ------------------------------------------------------------------  ------------------------------------------------------------------
1126          Bra          Bra
1127          Any*          AllAny*
1128          X          X
1129          Ket          Ket
1130          End          End
1131  ------------------------------------------------------------------  ------------------------------------------------------------------
1132  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1133  Options: anchored dotall  Options: anchored dotall
1134  No first char  No first char
1135  Need char = 'X'  Need char = 'X'
# Line 1151  Need char = 'X' Line 1148  Need char = 'X'
1148          End          End
1149  ------------------------------------------------------------------  ------------------------------------------------------------------
1150  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1151  No options  No options
1152  First char at start or follows newline  First char at start or follows newline
1153  No need char  No need char
# Line 1160  No need char Line 1156  No need char
1156  ------------------------------------------------------------------  ------------------------------------------------------------------
1157          Bra          Bra
1158          CBra 1          CBra 1
1159          Any*          AllAny*
1160          X          X
1161          Alt          Alt
1162          ^          ^
# Line 1170  No need char Line 1166  No need char
1166          End          End
1167  ------------------------------------------------------------------  ------------------------------------------------------------------
1168  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1169  Options: anchored dotall  Options: anchored dotall
1170  No first char  No first char
1171  No need char  No need char
# Line 1179  No need char Line 1174  No need char
1174  ------------------------------------------------------------------  ------------------------------------------------------------------
1175          Bra          Bra
1176          CBra 1          CBra 1
1177          Any*          AllAny*
1178          X          X
1179          Alt          Alt
1180          ^          ^
# Line 1189  No need char Line 1184  No need char
1184          End          End
1185  ------------------------------------------------------------------  ------------------------------------------------------------------
1186  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1187  Options: anchored dotall  Options: anchored dotall
1188  No first char  No first char
1189  No need char  No need char
# Line 1199  No need char Line 1193  No need char
1193          Bra          Bra
1194          Bra          Bra
1195       04 Opt       04 Opt
1196          Any*          AllAny*
1197          X          X
1198          Alt          Alt
1199       04 Opt       04 Opt
# Line 1211  No need char Line 1205  No need char
1205          End          End
1206  ------------------------------------------------------------------  ------------------------------------------------------------------
1207  Capturing subpattern count = 0  Capturing subpattern count = 0
1208  Partial matching not supported  Options: anchored
1209  No options  No first char
 First char at start or follows newline  
1210  No need char  No need char
1211    
1212  /\Biss\B/I+  /\Biss\B/I+
# Line 1296  No need char Line 1289  No need char
1289    
1290  /.*iss/Ig+  /.*iss/Ig+
1291  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1292  No options  No options
1293  First char at start or follows newline  First char at start or follows newline
1294  Need char = 's'  Need char = 's'
# Line 1399  Need char = 'c' Line 1391  Need char = 'c'
1391    
1392  /a*/I  /a*/I
1393  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1394  No options  No options
1395  No first char  No first char
1396  No need char  No need char
1397    
1398  /a+/I  /a+/I
1399  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1400  No options  No options
1401  First char = 'a'  First char = 'a'
1402  No need char  No need char
1403    
1404  /(baa|a+)/I  /(baa|a+)/I
1405  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1406  No options  No options
1407  No first char  No first char
1408  Need char = 'a'  Need char = 'a'
1409    
1410  /a{0,3}/I  /a{0,3}/I
1411  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1412  No options  No options
1413  No first char  No first char
1414  No need char  No need char
1415    
1416  /baa{3,}/I  /baa{3,}/I
1417  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1418  No options  No options
1419  First char = 'b'  First char = 'b'
1420  Need char = 'a'  Need char = 'a'
1421    
1422  /"([^\\"]+|\\.)*"/I  /"([^\\"]+|\\.)*"/I
1423  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1424  No options  No options
1425  First char = '"'  First char = '"'
1426  Need char = '"'  Need char = '"'
# Line 1489  Need char = 'b' Line 1475  Need char = 'b'
1475    
1476  /abc*/I  /abc*/I
1477  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1478  No options  No options
1479  First char = 'a'  First char = 'a'
1480  Need char = 'b'  Need char = 'b'
1481    
1482  /ab.c*/I  /ab.c*/I
1483  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1484  No options  No options
1485  First char = 'a'  First char = 'a'
1486  Need char = 'b'  Need char = 'b'
1487    
1488  /a.c*/I  /a.c*/I
1489  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1490  No options  No options
1491  First char = 'a'  First char = 'a'
1492  No need char  No need char
1493    
1494  /.c*/I  /.c*/I
1495  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1496  No options  No options
1497  No first char  No first char
1498  No need char  No need char
1499    
1500  /ac*/I  /ac*/I
1501  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1502  No options  No options
1503  First char = 'a'  First char = 'a'
1504  No need char  No need char
1505    
1506  /(a.c*|b.c*)/I  /(a.c*|b.c*)/I
1507  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1508  No options  No options
1509  No first char  No first char
1510  No need char  No need char
1511    
1512  /a.c*|aba/I  /a.c*|aba/I
1513  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1514  No options  No options
1515  First char = 'a'  First char = 'a'
1516  No need char  No need char
1517    
1518  /.+a/I  /.+a/I
1519  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1520  No options  No options
1521  No first char  No first char
1522  Need char = 'a'  Need char = 'a'
1523    
1524  /(?=abcda)a.*/I  /(?=abcda)a.*/I
1525  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1526  No options  No options
1527  First char = 'a'  First char = 'a'
1528  Need char = 'a'  Need char = 'a'
1529    
1530  /(?=a)a.*/I  /(?=a)a.*/I
1531  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1532  No options  No options
1533  First char = 'a'  First char = 'a'
1534  No need char  No need char
# Line 1565  No need char Line 1541  No need char
1541    
1542  /a\d*/I  /a\d*/I
1543  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1544  No options  No options
1545  First char = 'a'  First char = 'a'
1546  No need char  No need char
1547    
1548  /ab\d*/I  /ab\d*/I
1549  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1550  No options  No options
1551  First char = 'a'  First char = 'a'
1552  Need char = 'b'  Need char = 'b'
# Line 1591  Need char = 'd' Line 1565  Need char = 'd'
1565    
1566  /ab\d+/I  /ab\d+/I
1567  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1568  No options  No options
1569  First char = 'a'  First char = 'a'
1570  Need char = 'b'  Need char = 'b'
# Line 1666  No need char Line 1639  No need char
1639      \Nabc      \Nabc
1640  No match  No match
1641    
1642  /a*(b+)(z)(z)/IP  /a*(b+)(z)(z)/P
1643      aaaabbbbzzzz      aaaabbbbzzzz
1644   0: aaaabbbbzz   0: aaaabbbbzz
1645   1: bbbb   1: bbbb
# Line 1698  Capturing subpattern count = 0 Line 1671  Capturing subpattern count = 0
1671  Options: anchored  Options: anchored
1672  No first char  No first char
1673  Need char = 'd'  Need char = 'd'
1674  Study returned NULL  Subject length lower bound = 4
1675    No set of starting bytes
1676    
1677  /\(             # ( at start  /\(             # ( at start
1678    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1709  Study returned NULL Line 1683  Study returned NULL
1683    \)            # Closing )    \)            # Closing )
1684    /Ix    /Ix
1685  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1686  Options: extended  Options: extended
1687  First char = '('  First char = '('
1688  Need char = ')'  Need char = ')'
# Line 1738  No match Line 1711  No match
1711    
1712  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1713  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1714  Options: extended  Options: extended
1715  First char = '('  First char = '('
1716  Need char = ')'  Need char = ')'
# Line 1753  Need char = ')' Line 1725  Need char = ')'
1725    
1726  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1727  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1728  Options: extended  Options: extended
1729  First char = '('  First char = '('
1730  Need char = ')'  Need char = ')'
# Line 1772  No match Line 1743  No match
1743    
1744  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1745  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1746  Options: extended  Options: extended
1747  First char = '('  First char = '('
1748  Need char = ')'  Need char = ')'
# Line 1783  Need char = ')' Line 1753  Need char = ')'
1753    
1754  /\(  ( (?>[^()]+) | (?R) )* \) /Ix  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1755  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1756  Options: extended  Options: extended
1757  First char = '('  First char = '('
1758  Need char = ')'  Need char = ')'
# Line 1793  Need char = ')' Line 1762  Need char = ')'
1762    
1763  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1764  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
1765  Options: extended  Options: extended
1766  First char = '('  First char = '('
1767  Need char = ')'  Need char = ')'
# Line 1804  Need char = ')' Line 1772  Need char = ')'
1772    
1773  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1774  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1775  Options: extended  Options: extended
1776  First char = '('  First char = '('
1777  Need char = ')'  Need char = ')'
# Line 1821  Need char = ')' Line 1788  Need char = ')'
1788    
1789  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1790  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1791  Options: extended  Options: extended
1792  First char = '('  First char = '('
1793  Need char = ')'  Need char = ')'
# Line 1838  Need char = ')' Line 1804  Need char = ')'
1804    
1805  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1806  Capturing subpattern count = 11  Capturing subpattern count = 11
 Partial matching not supported  
1807  Options: extended  Options: extended
1808  First char = '('  First char = '('
1809  Need char = ')'  Need char = ')'
# Line 1858  Need char = ')' Line 1823  Need char = ')'
1823    
1824  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1825  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1826  Options: extended  Options: extended
1827  First char = '('  First char = '('
1828  Need char = ')'  Need char = ')'
# Line 1866  Need char = ')' Line 1830  Need char = ')'
1830   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1831   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1832   2: 123   2: 123
  3: <unset>  
1833    
1834  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1835  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1836  Options: extended  Options: extended
1837  First char = '('  First char = '('
1838  Need char = ')'  Need char = ')'
# Line 1942  Capturing subpattern count = 0 Line 1904  Capturing subpattern count = 0
1904  No options  No options
1905  No first char  No first char
1906  No need char  No need char
1907    Subject length lower bound = 1
1908  Starting byte set: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z  Starting byte set: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
1909    _ a b c d e f g h i j k l m n o p q r s t u v w x y z    _ a b c d e f g h i j k l m n o p q r s t u v w x y z
1910    
# Line 2003  Contains explicit CR or LF match Line 1966  Contains explicit CR or LF match
1966  No options  No options
1967  No first char  No first char
1968  No need char  No need char
1969    Subject length lower bound = 1
1970  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1971    
1972  /^[[:cntrl:]]/DZ  /^[[:cntrl:]]/DZ
# Line 2249  Need char = 'd' Line 2213  Need char = 'd'
2213  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I
2214  Capturing subpattern count = 271  Capturing subpattern count = 271
2215  Max back reference = 270  Max back reference = 270
 Partial matching not supported  
2216  No options  No options
2217  No first char  No first char
2218  No need char  No need char
# Line 2930  Need char = 'c' Line 2893  Need char = 'c'
2893          End          End
2894  ------------------------------------------------------------------  ------------------------------------------------------------------
2895  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2896  No options  No options
2897  No first char  No first char
2898  No need char  No need char
# Line 2959  No need char Line 2921  No need char
2921          End          End
2922  ------------------------------------------------------------------  ------------------------------------------------------------------
2923  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2924  No options  No options
2925  First char = 'x'  First char = 'x'
2926  No need char  No need char
# Line 2975  No need char Line 2936  No need char
2936          End          End
2937  ------------------------------------------------------------------  ------------------------------------------------------------------
2938  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2939  No options  No options
2940  First char = 'x'  First char = 'x'
2941  No need char  No need char
# Line 2999  No need char Line 2959  No need char
2959    
2960  /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
2961  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2962  Options: anchored  Options: anchored
2963  No first char  No first char
2964  No need char  No need char
# Line 3013  No match Line 2972  No match
2972    
2973  /(\d++)(\w)/I  /(\d++)(\w)/I
2974  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
2975  No options  No options
2976  No first char  No first char
2977  No need char  No need char
# Line 3028  No match Line 2986  No match
2986    
2987  /a++b/I  /a++b/I
2988  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2989  No options  No options
2990  First char = 'a'  First char = 'a'
2991  Need char = 'b'  Need char = 'b'
# Line 3037  Need char = 'b' Line 2994  Need char = 'b'
2994    
2995  /(a++b)/I  /(a++b)/I
2996  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2997  No options  No options
2998  First char = 'a'  First char = 'a'
2999  Need char = 'b'  Need char = 'b'
# Line 3047  Need char = 'b' Line 3003  Need char = 'b'
3003    
3004  /(a++)b/I  /(a++)b/I
3005  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3006  No options  No options
3007  First char = 'a'  First char = 'a'
3008  Need char = 'b'  Need char = 'b'
# Line 3057  Need char = 'b' Line 3012  Need char = 'b'
3012    
3013  /([^()]++|\([^()]*\))+/I  /([^()]++|\([^()]*\))+/I
3014  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3015  No options  No options
3016  No first char  No first char
3017  No need char  No need char
# Line 3067  No need char Line 3021  No need char
3021    
3022  /\(([^()]++|\([^()]+\))+\)/I  /\(([^()]++|\([^()]+\))+\)/I
3023  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3024  No options  No options
3025  First char = '('  First char = '('
3026  Need char = ')'  Need char = ')'
# Line 3130  Failed: nothing to repeat at offset 7 Line 3083  Failed: nothing to repeat at offset 7
3083          End          End
3084  ------------------------------------------------------------------  ------------------------------------------------------------------
3085  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3086  No options  No options
3087  First char = 'x'  First char = 'x'
3088  Need char = 'b'  Need char = 'b'
# Line 3147  Need char = 'b' Line 3099  Need char = 'b'
3099          End          End
3100  ------------------------------------------------------------------  ------------------------------------------------------------------
3101  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3102  Options: ungreedy  Options: ungreedy
3103  First char = 'x'  First char = 'x'
3104  Need char = 'b'  Need char = 'b'
# Line 3176  Need char = 'b' Line 3127  Need char = 'b'
3127          End          End
3128  ------------------------------------------------------------------  ------------------------------------------------------------------
3129  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3130  Options: anchored  Options: anchored
3131  No first char  No first char
3132  No need char  No need char
# Line 3192  No need char Line 3142  No need char
3142          End          End
3143  ------------------------------------------------------------------  ------------------------------------------------------------------
3144  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3145  Options: anchored  Options: anchored
3146  No first char  No first char
3147  Need char = 'b'  Need char = 'b'
# Line 3210  Need char = 'b' Line 3159  Need char = 'b'
3159          End          End
3160  ------------------------------------------------------------------  ------------------------------------------------------------------
3161  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3162  Options: anchored  Options: anchored
3163  No first char  No first char
3164  Need char = 'b'  Need char = 'b'
# Line 3286  No need char Line 3234  No need char
3234    
3235  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3236  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3237  Options: extended  Options: extended
3238  First char = '<'  First char = '<'
3239  Need char = '>'  Need char = '>'
# Line 3336  Need char = 'X' Line 3283  Need char = 'X'
3283  /(.*)\d+\1/I  /(.*)\d+\1/I
3284  Capturing subpattern count = 1  Capturing subpattern count = 1
3285  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3286  No options  No options
3287  No first char  No first char
3288  No need char  No need char
3289    
3290  /(.*)\d+/I  /(.*)\d+/I
3291  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3292  No options  No options
3293  First char at start or follows newline  First char at start or follows newline
3294  No need char  No need char
# Line 3351  No need char Line 3296  No need char
3296  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3297  Capturing subpattern count = 1  Capturing subpattern count = 1
3298  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3299  Options: dotall  Options: dotall
3300  No first char  No first char
3301  No need char  No need char
3302    
3303  /(.*)\d+/Is  /(.*)\d+/Is
3304  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3305  Options: anchored dotall  Options: anchored dotall
3306  No first char  No first char
3307  No need char  No need char
# Line 3366  No need char Line 3309  No need char
3309  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3310  Capturing subpattern count = 2  Capturing subpattern count = 2
3311  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3312  No options  No options
3313  First char at start or follows newline  First char at start or follows newline
3314  Need char = 'z'  Need char = 'z'
# Line 3374  Need char = 'z' Line 3316  Need char = 'z'
3316  /((.*))\d+\1/I  /((.*))\d+\1/I
3317  Capturing subpattern count = 2  Capturing subpattern count = 2
3318  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3319  No options  No options
3320  No first char  No first char
3321  No need char  No need char
# Line 3391  Need char = 'b' Line 3332  Need char = 'b'
3332    
3333  /(?=a).*/I  /(?=a).*/I
3334  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3335  No options  No options
3336  First char = 'a'  First char = 'a'
3337  No need char  No need char
# Line 3497  Capturing subpattern count = 0 Line 3437  Capturing subpattern count = 0
3437  No options  No options
3438  No first char  No first char
3439  No need char  No need char
3440    Subject length lower bound = 1
3441  Starting byte set: a b  Starting byte set: a b
3442    
3443  /[^a]/I  /[^a]/I
# Line 3516  Capturing subpattern count = 0 Line 3457  Capturing subpattern count = 0
3457  No options  No options
3458  No first char  No first char
3459  Need char = '6'  Need char = '6'
3460    Subject length lower bound = 4
3461  Starting byte set: 0 1 2 3 4 5 6 7 8 9  Starting byte set: 0 1 2 3 4 5 6 7 8 9
3462    
3463  /a^b/I  /a^b/I
# Line 3549  Capturing subpattern count = 0 Line 3491  Capturing subpattern count = 0
3491  Options: caseless  Options: caseless
3492  No first char  No first char
3493  No need char  No need char
3494    Subject length lower bound = 1
3495  Starting byte set: A B a b  Starting byte set: A B a b
3496    
3497  /[ab](?i)cd/IS  /[ab](?i)cd/IS
# Line 3556  Capturing subpattern count = 0 Line 3499  Capturing subpattern count = 0
3499  No options  No options
3500  No first char  No first char
3501  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3502    Subject length lower bound = 3
3503  Starting byte set: a b  Starting byte set: a b
3504    
3505  /abc(?C)def/I  /abc(?C)def/I
# Line 3713  No need char Line 3657  No need char
3657    
3658  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3659  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3660  No options  No options
3661  No first char  No first char
3662  No need char  No need char
# Line 3842  Callout 0: last capture = 1 Line 3785  Callout 0: last capture = 1
3785    
3786  /a(b+)(c*)(?C1)/I  /a(b+)(c*)(?C1)/I
3787  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3788  No options  No options
3789  First char = 'a'  First char = 'a'
3790  Need char = 'b'  Need char = 'b'
# Line 3868  No match Line 3810  No match
3810    
3811  /a(b+?)(c*?)(?C1)/I  /a(b+?)(c*?)(?C1)/I
3812  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3813  No options  No options
3814  First char = 'a'  First char = 'a'
3815  Need char = 'b'  Need char = 'b'
# Line 3909  Capturing subpattern count = 0 Line 3850  Capturing subpattern count = 0
3850  No options  No options
3851  No first char  No first char
3852  No need char  No need char
3853    Subject length lower bound = 1
3854  Starting byte set: a b  Starting byte set: a b
3855    
3856  /(?R)/I  /(?R)/I
# Line 4028  No options Line 3970  No options
3970  First char = 'a'  First char = 'a'
3971  Need char = 'b'  Need char = 'b'
3972    
 /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii  
 Capturing subpattern count = 4  
 Max back reference = 4  
 Partial matching not supported  
 Options: anchored caseless  
 No first char  
 No need char  
     1221  
  0: 1221  
  1: 1221  
  2: 1  
     Satan, oscillate my metallic sonatas!  
  0: Satan, oscillate my metallic sonatas!  
  1: <unset>  
  2: <unset>  
  3: Satan, oscillate my metallic sonatas  
  4: S  
     A man, a plan, a canal: Panama!  
  0: A man, a plan, a canal: Panama!  
  1: <unset>  
  2: <unset>  
  3: A man, a plan, a canal: Panama  
  4: A  
     Able was I ere I saw Elba.  
  0: Able was I ere I saw Elba.  
  1: <unset>  
  2: <unset>  
  3: Able was I ere I saw Elba  
  4: A  
     *** Failers  
 No match  
     The quick brown fox  
 No match  
   
3973  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3974  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3975  Options: anchored  Options: anchored
3976  No first char  No first char
3977  No need char  No need char
# Line 4105  No match Line 4012  No match
4012    
4013  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4014  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4015  Options: extended  Options: extended
4016  First char = '<'  First char = '<'
4017  Need char = '>'  Need char = '>'
# Line 4279  Named capturing subpatterns: Line 4185  Named capturing subpatterns:
4185    one     1    one     1
4186    three   3    three   3
4187    two     2    two     2
 Partial matching not supported  
4188  Options: anchored caseless  Options: anchored caseless
4189  No first char  No first char
4190  No need char  No need char
# Line 4325  No need char Line 4230  No need char
4230    
4231  /(.*)a/Is  /(.*)a/Is
4232  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4233  Options: anchored dotall  Options: anchored dotall
4234  No first char  No first char
4235  Need char = 'a'  Need char = 'a'
# Line 4333  Need char = 'a' Line 4237  Need char = 'a'
4237  /(.*)a\1/Is  /(.*)a\1/Is
4238  Capturing subpattern count = 1  Capturing subpattern count = 1
4239  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4240  Options: dotall  Options: dotall
4241  No first char  No first char
4242  Need char = 'a'  Need char = 'a'
# Line 4341  Need char = 'a' Line 4244  Need char = 'a'
4244  /(.*)a(b)\2/Is  /(.*)a(b)\2/Is
4245  Capturing subpattern count = 2  Capturing subpattern count = 2
4246  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4247  Options: anchored dotall  Options: anchored dotall
4248  No first char  No first char
4249  Need char = 'b'  Need char = 'b'
4250    
4251  /((.*)a|(.*)b)z/Is  /((.*)a|(.*)b)z/Is
4252  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4253  Options: anchored dotall  Options: anchored dotall
4254  No first char  No first char
4255  Need char = 'z'  Need char = 'z'
# Line 4356  Need char = 'z' Line 4257  Need char = 'z'
4257  /((.*)a|(.*)b)z\1/Is  /((.*)a|(.*)b)z\1/Is
4258  Capturing subpattern count = 3  Capturing subpattern count = 3
4259  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4260  Options: dotall  Options: dotall
4261  No first char  No first char
4262  Need char = 'z'  Need char = 'z'
# Line 4364  Need char = 'z' Line 4264  Need char = 'z'
4264  /((.*)a|(.*)b)z\2/Is  /((.*)a|(.*)b)z\2/Is
4265  Capturing subpattern count = 3  Capturing subpattern count = 3
4266  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4267  Options: dotall  Options: dotall
4268  No first char  No first char
4269  Need char = 'z'  Need char = 'z'
# Line 4372  Need char = 'z' Line 4271  Need char = 'z'
4271  /((.*)a|(.*)b)z\3/Is  /((.*)a|(.*)b)z\3/Is
4272  Capturing subpattern count = 3  Capturing subpattern count = 3
4273  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4274  Options: dotall  Options: dotall
4275  No first char  No first char
4276  Need char = 'z'  Need char = 'z'
# Line 4380  Need char = 'z' Line 4278  Need char = 'z'
4278  /((.*)a|^(.*)b)z\3/Is  /((.*)a|^(.*)b)z\3/Is
4279  Capturing subpattern count = 3  Capturing subpattern count = 3
4280  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4281  Options: anchored dotall  Options: anchored dotall
4282  No first char  No first char
4283  Need char = 'z'  Need char = 'z'
4284    
4285  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4286  Capturing subpattern count = 31  Capturing subpattern count = 31
 Partial matching not supported  
4287  Options: anchored dotall  Options: anchored dotall
4288  No first char  No first char
4289  No need char  No need char
# Line 4395  No need char Line 4291  No need char
4291  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4292  Capturing subpattern count = 31  Capturing subpattern count = 31
4293  Max back reference = 31  Max back reference = 31
 Partial matching not supported  
4294  Options: dotall  Options: dotall
4295  No first char  No first char
4296  No need char  No need char
# Line 4403  No need char Line 4298  No need char
4298  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4299  Capturing subpattern count = 32  Capturing subpattern count = 32
4300  Max back reference = 32  Max back reference = 32
 Partial matching not supported  
4301  Options: dotall  Options: dotall
4302  No first char  No first char
4303  No need char  No need char
# Line 4470  Need char = 'c' Line 4364  Need char = 'c'
4364    
4365  /(a+)*zz/I  /(a+)*zz/I
4366  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4367  No options  No options
4368  No first char  No first char
4369  Need char = 'z'  Need char = 'z'
# Line 4607  Failed: two named subpatterns have the s Line 4500  Failed: two named subpatterns have the s
4500  Capturing subpattern count = 3  Capturing subpattern count = 3
4501  Named capturing subpatterns:  Named capturing subpatterns:
4502    elem   2    elem   2
 Partial matching not supported  
4503  No options  No options
4504  First char = '['  First char = '['
4505  Need char = ']'  Need char = ']'
# Line 4625  No match Line 4517  No match
4517  Capturing subpattern count = 3  Capturing subpattern count = 3
4518  Named capturing subpatterns:  Named capturing subpatterns:
4519    elem   2    elem   2
 Partial matching not supported  
4520  No options  No options
4521  First char = '['  First char = '['
4522  Need char = ']'  Need char = ']'
# Line 4732  No need char Line 4623  No need char
4623    
4624  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4625  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4626  Options: caseless  Options: caseless
4627  No first char  No first char
4628  Need char = 'g' (caseless)  Need char = 'g' (caseless)
# Line 4742  Need char = 'g' (caseless) Line 4632  Need char = 'g' (caseless)
4632    
4633  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4634  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4635  Options: caseless  Options: caseless
4636  No first char  No first char
4637  Need char = 'g' (caseless)  Need char = 'g' (caseless)
4638  Study returned NULL  Subject length lower bound = 8
4639    No set of starting bytes
4640       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
4641   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4642   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 4761  Study returned NULL Line 4651  Study returned NULL
4651          End          End
4652  ------------------------------------------------------------------  ------------------------------------------------------------------
4653  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4654  No options  No options
4655  No first char  No first char
4656  Need char = 'b'  Need char = 'b'
4657  Study returned NULL  Subject length lower bound = 1
4658    No set of starting bytes
4659    
4660  /(a|b)*.?c/ISDZ  /(a|b)*.?c/ISDZ
4661  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4785  Capturing subpattern count = 1 Line 4675  Capturing subpattern count = 1
4675  No options  No options
4676  No first char  No first char
4677  Need char = 'c'  Need char = 'c'
4678  Study returned NULL  Subject length lower bound = 1
4679    No set of starting bytes
4680    
4681  /abc(?C255)de(?C)f/DZ  /abc(?C255)de(?C)f/DZ
4682  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4854  No match Line 4745  No match
4745          End          End
4746  ------------------------------------------------------------------  ------------------------------------------------------------------
4747  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4748  Options:  Options:
4749  No first char  No first char
4750  Need char = 'b'  Need char = 'b'
# Line 4899  Need char = 'b' Line 4789  Need char = 'b'
4789          End          End
4790  ------------------------------------------------------------------  ------------------------------------------------------------------
4791  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4792  Options:  Options:
4793  First char = 'a'  First char = 'a'
4794  Need char = 'b'  Need char = 'b'
# Line 5337  No match Line 5226  No match
5226          End          End
5227  ------------------------------------------------------------------  ------------------------------------------------------------------
5228  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
5229  Options:  Options:
5230  No first char  No first char
5231  Need char = '3'  Need char = '3'
# Line 5369  Need char = '3' Line 5257  Need char = '3'
5257    
5258  /\b.*/I  /\b.*/I
5259  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5260  No options  No options
5261  No first char  No first char
5262  No need char  No need char
# Line 5378  No need char Line 5265  No need char
5265    
5266  /\b.*/Is  /\b.*/Is
5267  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5268  Options: dotall  Options: dotall
5269  No first char  No first char
5270  No need char  No need char
# Line 5387  No need char Line 5273  No need char
5273    
5274  /(?!.bcd).*/I  /(?!.bcd).*/I
5275  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5276  No options  No options
5277  No first char  No first char
5278  No need char  No need char
# Line 5400  No options Line 5285  No options
5285  First char = 'a'  First char = 'a'
5286  Need char = 'e'  Need char = 'e'
5287      ab\P      ab\P
5288  Partial match  Partial match: ab
5289      abc\P      abc\P
5290  Partial match  Partial match: abc
5291      abcd\P      abcd\P
5292  Partial match  Partial match: abcd
5293      abcde\P      abcde\P
5294   0: abcde   0: abcde
5295      the quick brown abc\P      the quick brown abc\P
5296  Partial match  Partial match: abc
5297      ** Failers\P      ** Failers\P
5298  No match  No match
5299      the quick brown abxyz fox\P      the quick brown abxyz fox\P
# Line 5433  Need char = '/' Line 5318  Need char = '/'
5318   1: 02   1: 02
5319   2: 05   2: 05
5320      1\P      1\P
5321  Partial match  Partial match: 1
5322      1/2\P      1/2\P
5323  Partial match  Partial match: 1/2
5324      1/2/0\P      1/2/0\P
5325  Partial match  Partial match: 1/2/0
5326      1/2/04\P      1/2/04\P
5327   0: 1/2/04   0: 1/2/04
5328   1: 1   1: 1
5329   2: 2   2: 2
5330      0\P      0\P
5331  Partial match  Partial match: 0
5332      02/\P      02/\P
5333  Partial match  Partial match: 02/
5334      02/0\P      02/0\P
5335  Partial match  Partial match: 02/0
5336      02/1\P      02/1\P
5337  Partial match  Partial match: 02/1
5338      ** Failers\P      ** Failers\P
5339  No match  No match
5340      \P      \P
# Line 5471  No match Line 5356  No match
5356    
5357  /0{0,2}ABC/I  /0{0,2}ABC/I
5358  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5359  No options  No options
5360  No first char  No first char
5361  Need char = 'C'  Need char = 'C'
5362    
5363  /\d{3,}ABC/I  /\d{3,}ABC/I
5364  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5365  No options  No options
5366  No first char  No first char
5367  Need char = 'C'  Need char = 'C'
5368    
5369  /\d*ABC/I  /\d*ABC/I
5370  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5371  No options  No options
5372  No first char  No first char
5373  Need char = 'C'  Need char = 'C'
5374    
5375  /[abc]+DE/I  /[abc]+DE/I
5376  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5377  No options  No options
5378  No first char  No first char
5379  Need char = 'E'  Need char = 'E'
# Line 5505  Need char = '3' Line 5386  Need char = '3'
5386      123\P      123\P
5387   0: 123   0: 123
5388      a\P      a\P
5389  Partial match  Partial match: a
5390      b\P      b\P
5391  Partial match  Partial match: b
5392      c\P      c\P
5393  Partial match  Partial match: c
5394      c12\P      c12\P
5395  Partial match  Partial match: c12
5396      c123\P      c123\P
5397   0: c123   0: c123
5398    
# Line 5521  Options: anchored Line 5402  Options: anchored
5402  No first char  No first char
5403  Need char = 'X'  Need char = 'X'
5404      1\P      1\P
5405  Partial match  Partial match: 1
5406      123\P      123\P
5407  Partial match  Partial match: 123
5408      123X      123X
5409   0: 123X   0: 123X
5410      1234\P      1234\P
5411  Partial match  Partial match: 1234
5412      1234X      1234X
5413   0: 1234X   0: 1234X
5414      12345\P      12345\P
5415  Partial match  Partial match: 12345
5416      12345X      12345X
5417   0: 12345X   0: 12345X
5418      *** Failers      *** Failers
# Line 5578  Capturing subpattern count = 1 Line 5459  Capturing subpattern count = 1
5459  No options  No options
5460  No first char  No first char
5461  No need char  No need char
5462    Subject length lower bound = 1
5463  Starting byte set: a b  Starting byte set: a b
5464  Compiled regex written to testsavedregex  Compiled regex written to testsavedregex
5465  Study data written to testsavedregex  Study data written to testsavedregex
# Line 5598  Capturing subpattern count = 1 Line 5480  Capturing subpattern count = 1
5480  No options  No options
5481  No first char  No first char
5482  No need char  No need char
5483    Subject length lower bound = 1
5484  Starting byte set: a b  Starting byte set: a b
5485  Compiled regex written to testsavedregex  Compiled regex written to testsavedregex
5486  Study data written to testsavedregex  Study data written to testsavedregex
# Line 5616  No match Line 5499  No match
5499  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5500  Capturing subpattern count = 3  Capturing subpattern count = 3
5501  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
5502  Options: multiline dotall  Options: multiline dotall
5503  First char = '<'  First char = '<'
5504  Need char = '>'  Need char = '>'
# Line 5669  No match Line 5551  No match
5551      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5552  No match  No match
5553    
5554  /ab.cd/IP  /ab.cd/P
5555      ab-cd      ab-cd
5556   0: ab-cd   0: ab-cd
5557      ab=cd      ab=cd
# Line 5679  No match: POSIX code 17: match failed Line 5561  No match: POSIX code 17: match failed
5561      ab\ncd      ab\ncd
5562  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
5563    
5564  /ab.cd/IPs  /ab.cd/Ps
5565      ab-cd      ab-cd
5566   0: ab-cd   0: ab-cd
5567      ab=cd      ab=cd
# Line 5923  Matched, but too many substrings Line 5805  Matched, but too many substrings
5805    
5806  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
5807  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5808  No options  No options
5809  No first char  No first char
5810  No need char  No need char
# Line 5936  No need char Line 5817  No need char
5817    
5818  /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
5819  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5820  No options  No options
5821  No first char  No first char
5822  No need char  No need char
# Line 5947  No need char Line 5827  No need char
5827    
5828  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
5829  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5830  No options  No options
5831  No first char  No first char
5832  No need char  No need char
# Line 5958  No need char Line 5837  No need char
5837    
5838  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
5839  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5840  No options  No options
5841  No first char  No first char
5842  No need char  No need char
# Line 5971  No need char Line 5849  No need char
5849    
5850  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
5851  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5852  No options  No options
5853  No first char  No first char
5854  No need char  No need char
# Line 5984  No need char Line 5861  No need char
5861      ((this))      ((this))
5862   0: ((this))   0: ((this))
5863    
5864  /a(b)c/IPN  /a(b)c/PN
5865      abc      abc
5866  Matched with REG_NOSUB  Matched with REG_NOSUB
5867    
5868  /a(?P<name>b)c/IPN  /a(?P<name>b)c/PN
5869      abc      abc
5870  Matched with REG_NOSUB  Matched with REG_NOSUB
5871    
# Line 6313  Failed: octal value is greater than \377 Line 6190  Failed: octal value is greater than \377
6190    
6191  /\s*,\s*/IS  /\s*,\s*/IS
6192  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6193  No options  No options
6194  No first char  No first char
6195  Need char = ','  Need char = ','
6196    Subject length lower bound = 1
6197  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6198      \x0b,\x0b      \x0b,\x0b
6199   0: ,   0: ,
# Line 6443  Unknown newline type at: Line 6320  Unknown newline type at:
6320    
6321  /.*/I<lf>  /.*/I<lf>
6322  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6323  Options:  Options:
6324  Forced newline sequence: LF  Forced newline sequence: LF
6325  First char at start or follows newline  First char at start or follows newline
# Line 6469  No need char Line 6345  No need char
6345    
6346  /\w+(.)(.)?def/Is  /\w+(.)(.)?def/Is
6347  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
6348  Options: dotall  Options: dotall
6349  No first char  No first char
6350  Need char = 'f'  Need char = 'f'
# Line 6486  Need char = 'f' Line 6361  Need char = 'f'
6361    
6362  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6363  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6364  No options  No options
6365  No first char  No first char
6366  No need char  No need char
# Line 6621  No need char Line 6495  No need char
6495    
6496  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
6497  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6498  No options  No options
6499  No first char  No first char
6500  No need char  No need char
6501    Subject length lower bound = 1
6502  Starting byte set: C a b c d  Starting byte set: C a b c d
6503    
6504  /()[ab]xyz/IS  /()[ab]xyz/IS
# Line 6632  Capturing subpattern count = 1 Line 6506  Capturing subpattern count = 1
6506  No options  No options
6507  No first char  No first char
6508  Need char = 'z'  Need char = 'z'
6509    Subject length lower bound = 4
6510  Starting byte set: a b  Starting byte set: a b
6511    
6512  /(|)[ab]xyz/IS  /(|)[ab]xyz/IS
# Line 6639  Capturing subpattern count = 1 Line 6514  Capturing subpattern count = 1
6514  No options  No options
6515  No first char  No first char
6516  Need char = 'z'  Need char = 'z'
6517    Subject length lower bound = 4
6518  Starting byte set: a b  Starting byte set: a b
6519    
6520  /(|c)[ab]xyz/IS  /(|c)[ab]xyz/IS
# Line 6646  Capturing subpattern count = 1 Line 6522  Capturing subpattern count = 1
6522  No options  No options
6523  No first char  No first char
6524  Need char = 'z'  Need char = 'z'
6525    Subject length lower bound = 4
6526  Starting byte set: a b c  Starting byte set: a b c
6527    
6528  /(|c?)[ab]xyz/IS  /(|c?)[ab]xyz/IS
# Line 6653  Capturing subpattern count = 1 Line 6530  Capturing subpattern count = 1
6530  No options  No options
6531  No first char  No first char
6532  Need char = 'z'  Need char = 'z'
6533    Subject length lower bound = 4
6534  Starting byte set: a b c  Starting byte set: a b c
6535    
6536  /(d?|c?)[ab]xyz/IS  /(d?|c?)[ab]xyz/IS
# Line 6660  Capturing subpattern count = 1 Line 6538  Capturing subpattern count = 1
6538  No options  No options
6539  No first char  No first char
6540  Need char = 'z'  Need char = 'z'
6541    Subject length lower bound = 4
6542  Starting byte set: a b c d  Starting byte set: a b c d
6543    
6544  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
# Line 6667  Capturing subpattern count = 1 Line 6546  Capturing subpattern count = 1
6546  No options  No options
6547  No first char  No first char
6548  Need char = 'z'  Need char = 'z'
6549    Subject length lower bound = 4
6550  Starting byte set: a b c d  Starting byte set: a b c d
6551    
6552  /^a*b\d/DZ  /^a*b\d/DZ
# Line 6680  Starting byte set: a b c d Line 6560  Starting byte set: a b c d
6560          End          End
6561  ------------------------------------------------------------------  ------------------------------------------------------------------
6562  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6563  Options: anchored  Options: anchored
6564  No first char  No first char
6565  Need char = 'b'  Need char = 'b'
# Line 6696  Need char = 'b' Line 6575  Need char = 'b'
6575          End          End
6576  ------------------------------------------------------------------  ------------------------------------------------------------------
6577  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6578  Options: anchored  Options: anchored
6579  No first char  No first char
6580  Need char = 'b'  Need char = 'b'
# Line 6712  Need char = 'b' Line 6590  Need char = 'b'
6590          End          End
6591  ------------------------------------------------------------------  ------------------------------------------------------------------
6592  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6593  Options: anchored  Options: anchored
6594  No first char  No first char
6595  Need char = 'b'  Need char = 'b'
# Line 6728  Need char = 'b' Line 6605  Need char = 'b'
6605          End          End
6606  ------------------------------------------------------------------  ------------------------------------------------------------------
6607  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6608  Options: anchored  Options: anchored
6609  No first char  No first char
6610  Need char = 'A'  Need char = 'A'
# Line 6750  No match Line 6626  No match
6626          End          End
6627  ------------------------------------------------------------------  ------------------------------------------------------------------
6628  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6629  Options: anchored caseless  Options: anchored caseless
6630  No first char  No first char
6631  Need char = 'A' (caseless)  Need char = 'A' (caseless)
# Line 6761  Need char = 'A' (caseless) Line 6636  Need char = 'A' (caseless)
6636    
6637  /(a*|b*)[cd]/IS  /(a*|b*)[cd]/IS
6638  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6639  No options  No options
6640  No first char  No first char
6641  No need char  No need char
6642    Subject length lower bound = 1
6643  Starting byte set: a b c d  Starting byte set: a b c d
6644    
6645  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
6646  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6647  No options  No options
6648  No first char  No first char
6649  No need char  No need char
6650    Subject length lower bound = 1
6651  Starting byte set: a b c d  Starting byte set: a b c d
6652    
6653  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
6654  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6655  No options  No options
6656  No first char  No first char
6657  No need char  No need char
6658    Subject length lower bound = 1
6659  Starting byte set: a b c d  Starting byte set: a b c d
6660    
6661  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
6662  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6663  No options  No options
6664  No first char  No first char
6665  No need char  No need char
6666    Subject length lower bound = 2
6667  Starting byte set: a b  Starting byte set: a b
6668    
6669  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
# Line 7594  No match Line 7469  No match
7469          ^          ^
7470          CBra 1          CBra 1
7471          Cond          Cond
7472        2 Cond ref        2 Cond nref
7473          y          y
7474          Ket          Ket
7475          [()]          [()]
# Line 7660  Named capturing subpatterns: Line 7535  Named capturing subpatterns:
7535    one     1    one     1
7536    three   3    three   3
7537    two     2    two     2
 Partial matching not supported  
7538  Options: anchored caseless  Options: anchored caseless
7539  No first char  No first char
7540  No need char  No need char
# Line 7694  No match Line 7568  No match
7568  /(?=(\w+))\1:/I  /(?=(\w+))\1:/I
7569  Capturing subpattern count = 1  Capturing subpattern count = 1
7570  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
7571  No options  No options
7572  No first char  No first char
7573  Need char = ':'  Need char = ':'
# Line 7707  Capturing subpattern count = 1 Line 7580  Capturing subpattern count = 1
7580  Max back reference = 1  Max back reference = 1
7581  Named capturing subpatterns:  Named capturing subpatterns:
7582    abc   1    abc   1
 Partial matching not supported  
7583  No options  No options
7584  No first char  No first char
7585  Need char = ':'  Need char = ':'
# Line 7715  Need char = ':' Line 7587  Need char = ':'
7587   0: abcd:   0: abcd:
7588   1: abcd   1: abcd
7589    
 /(?'abc'\w+):\k<abc>{2}/  
     a:aaxyz  
  0: a:aa  
  1: a  
     ab:ababxyz  
  0: ab:abab  
  1: ab  
     ** Failers  
 No match  
     a:axyz  
 No match  
     ab:abxyz  
 No match  
   
7590  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7591      adaa      adaa
7592   0: adaa   0: adaa
# Line 7755  No match Line 7613  No match
7613      bddd      bddd
7614  No match  No match
7615    
 /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x  
     abd  
  0: abd  
  1: a  
     ce  
  0: ce  
   
7616  /(?(<bc))/  /(?(<bc))/
7617  Failed: malformed number or name after (?( at offset 6  Failed: malformed number or name after (?( at offset 6
7618    
# Line 7792  Failed: reference to non-existent subpat Line 7643  Failed: reference to non-existent subpat
7643   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7644   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7645    
 /^(?(DEFINE) (?<A> a) (?<B> b) )  (?&A) (?&B) /x  
     abcd  
  0: ab  
  1: <unset>  
  2: <unset>  
   
 /(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT))  
   (?(DEFINE)  
   (?<NAME_PAT>[a-z]+)  
   (?<ADDRESS_PAT>\d+)  
   )/x  
     metcalfe 33  
  0: metcalfe 33  
  1: metcalfe  
  2: 33  
  3: <unset>  
  4: <unset>  
   
7646  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7647  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7648    
# Line 7851  No match Line 7684  No match
7684  No match  No match
7685    
7686  /^abc./mgx<any>  /^abc./mgx<any>
7687      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
7688   0: abc1   0: abc1
7689   0: abc2   0: abc2
7690   0: abc3   0: abc3
# Line 7861  No match Line 7694  No match
7694   0: abc7   0: abc7
7695    
7696  /abc.$/mgx<any>  /abc.$/mgx<any>
7697      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
7698   0: abc1   0: abc1
7699   0: abc2   0: abc2
7700   0: abc3   0: abc3
# Line 7987  Need char = 'P' Line 7820  Need char = 'P'
7820   0: PXP   0: PXP
7821   1: P   1: P
7822    
 /(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/  
     1.2.3.4  
  0: 1.2.3.4  
  1: <unset>  
  2: .4  
     131.111.10.206  
  0: 131.111.10.206  
  1: <unset>  
  2: .206  
     10.0.0.0  
  0: 10.0.0.0  
  1: <unset>  
  2: .0  
     ** Failers  
 No match  
     10.6  
 No match  
     455.3.4.5  
 No match  
   
 /\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/  
     1.2.3.4  
  0: 1.2.3.4  
  1: .4  
  2: <unset>  
     131.111.10.206  
  0: 131.111.10.206  
  1: .206  
  2: <unset>  
     10.0.0.0  
  0: 10.0.0.0  
  1: .0  
  2: <unset>  
     ** Failers  
 No match  
     10.6  
 No match  
     455.3.4.5  
 No match  
   
7823  /(?:a(?&abc)b)*(?<abc>x)/  /(?:a(?&abc)b)*(?<abc>x)/
7824      123axbaxbaxbx456      123axbaxbaxbx456
7825   0: axbaxbaxbx   0: axbaxbaxbx
# Line 8064  No match Line 7857  No match
7857     DEFabcABCXYZ     DEFabcABCXYZ
7858  No match  No match
7859    
 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/  
     ababababbbabZXXXX  
  0: ababababbbabZ  
  1: ab  
  2: b  
   
7860  /^(a)\g-2/  /^(a)\g-2/
7861  Failed: reference to non-existent subpattern at offset 7  Failed: reference to non-existent subpattern at offset 7
7862    
7863  /^(a)\g/  /^(a)\g/
7864  Failed: \g is not followed by a braced name or an optionally braced non-zero number at offset 5  Failed: a numbered reference must not be zero at offset 5
7865    
7866  /^(a)\g{0}/  /^(a)\g{0}/
7867  Failed: \g is not followed by a braced name or an optionally braced non-zero number at offset 7  Failed: a numbered reference must not be zero at offset 8
7868    
7869  /^(a)\g{3/  /^(a)\g{3/
7870  Failed: \g is not followed by a braced name or an optionally braced non-zero number at offset 8  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
7871    
7872  /^(a)\g{4a}/  /^(a)\g{4a}/
7873  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
# Line 8163  No match Line 7950  No match
7950   0+   0+
7951    
7952  /abc.$/mgx<anycrlf>  /abc.$/mgx<anycrlf>
7953      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9      abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
7954   0: abc1   0: abc1
7955   0: abc4   0: abc4
7956   0: abc5   0: abc5
# Line 8217  No match Line 8004  No match
8004  No match  No match
8005    
8006  /x(?-0)y/  /x(?-0)y/
8007  Failed: (?+ or (?- or (?(+ or (?(- must be followed by a non-zero number at offset 5  Failed: a numbered reference must not be zero at offset 5
8008    
8009  /x(?-1)y/  /x(?-1)y/
8010  Failed: reference to non-existent subpattern at offset 5  Failed: reference to non-existent subpattern at offset 5
8011    
8012  /x(?+0)y/  /x(?+0)y/
8013  Failed: (?+ or (?- or (?(+ or (?(- must be followed by a non-zero number at offset 5  Failed: a numbered reference must not be zero at offset 5
8014    
8015  /x(?+1)y/  /x(?+1)y/
8016  Failed: reference to non-existent subpattern at offset 5  Failed: reference to non-existent subpattern at offset 5
# Line 8325  Failed: reference to non-existent subpat Line 8112  Failed: reference to non-existent subpat
8112   0: Y!   0: Y!
8113   1: !   1: !
8114    
 /(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  
   
8115  /(?<A>tom|bon)-\k{A}/  /(?<A>tom|bon)-\k{A}/
8116      tom-tom      tom-tom
8117   0: tom-tom   0: tom-tom
# Line 8357  No match Line 8124  No match
8124      tom-bon      tom-bon
8125  No match  No match
8126    
 /(?<A>tom|bon)-\g{A}/  
     tom-tom  
  0: tom-tom  
  1: tom  
     bon-bon  
  0: bon-bon  
  1: bon  
   
8127  /\g{A/  /\g{A/
8128  Failed: syntax error in subpattern name (missing terminator) at offset 4  Failed: syntax error in subpattern name (missing terminator) at offset 4
8129    
# Line 8459  Failed: syntax error in subpattern name Line 8218  Failed: syntax error in subpattern name
8218   3: <unset>   3: <unset>
8219   4: x   4: x
8220    
 /(?|(abc)|(xyz))\1/  
     abcabc  
  0: abcabc  
  1: abc  
     xyzxyz  
  0: xyzxyz  
  1: xyz  
     ** Failers  
 No match  
     abcxyz  
 No match  
     xyzabc  
 No match  
   
 /(?|(abc)|(xyz))(?1)/  
     abcabc  
  0: abcabc  
  1: abc  
     xyzabc  
  0: xyzabc  
  1: xyz  
     ** Failers  
 No match  
     xyzxyz  
 No match  
   
 /\H\h\V\v/  
     X X\x0a  
  0: X X\x0a  
     X\x09X\x0b  
  0: X\x09X\x0b  
     ** Failers  
 No match  
     \xa0 X\x0a  
 No match  
   
 /\H*\h+\V?\v{3,4}/  
     \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a  
  0: \x09 \xa0X\x0a\x0b\x0c\x0d  
     \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a  
  0: \x09 \xa0\x0a\x0b\x0c\x0d  
     \x09\x20\xa0\x0a\x0b\x0c  
  0: \x09 \xa0\x0a\x0b\x0c  
     ** Failers  
 No match  
     \x09\x20\xa0\x0a\x0b  
 No match  
   
 /\H{3,4}/  
     XY  ABCDE  
  0: ABCD  
     XY  PQR ST  
  0: PQR  
   
 /.\h{3,4}./  
     XY  AB    PQRS  
  0: B    P  
   
 /\h*X\h?\H+Y\H?Z/  
     >XNNNYZ  
  0: XNNNYZ  
     >  X NYQZ  
  0:   X NYQZ  
     ** Failers  
 No match  
     >XYZ  
 No match  
     >  X NY Z  
 No match  
   
 /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/  
     >XY\x0aZ\x0aA\x0bNN\x0c  
  0: XY\x0aZ\x0aA\x0bNN\x0c  
     >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c  
  0: \x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c  
   
8221  /[\h]/BZ  /[\h]/BZ
8222  ------------------------------------------------------------------  ------------------------------------------------------------------
8223          Bra          Bra
# Line 8831  Failed: missing terminating ] for charac Line 8514  Failed: missing terminating ] for charac
8514          End          End
8515  ------------------------------------------------------------------  ------------------------------------------------------------------
8516    
 /^a+(*FAIL)/  
     aaaaaa  
 No match  
   
 /a+b?c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*PRUNE)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*COMMIT)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*SKIP)c+(*FAIL)/  
     aaabcccaaabccc  
 No match  
   
 /^(?:aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/  
     aaaxxxxxx  
  0: aaaxxxxxx  
     aaa++++++  
  0: aaa  
     bbbxxxxx  
  0: bbbxxxxx  
     bbb+++++  
  0: bbb  
     cccxxxx  
  0: cccxxxx  
     ccc++++  
  0: ccc  
     dddddddd  
  0: ddd  
   
 /^(aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/  
     aaaxxxxxx  
  0: aaaxxxxxx  
  1: aaaxxxxxx  
     aaa++++++  
  0: aaa  
  1: aaa  
     bbbxxxxx  
  0: bbbxxxxx  
  1: bbbxxxxx  
     bbb+++++  
  0: bbb  
  1: bbb  
     cccxxxx  
  0: cccxxxx  
  1: cccxxxx  
     ccc++++  
  0: ccc  
  1: ccc  
     dddddddd  
  0: ddd  
  1: ddd  
   
 /a+b?(*THEN)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /(A (A|B(*ACCEPT)|C) D)(E)/x  
     ABX  
  0: AB  
     AADE  
  0: AADE  
  1: AAD  
  2: A  
  3: E  
     ACDE  
  0: ACDE  
  1: ACD  
  2: C  
  3: E  
     ** Failers  
 No match  
     AD  
 No match  
   
8517  /^a+(*FAIL)/C  /^a+(*FAIL)/C
8518      aaaaaa      aaaaaa
8519  --->aaaaaa  --->aaaaaa
# Line 9216  No match Line 8818  No match
8818    
8819  /a\R{2,4}b/I<bsr_anycrlf>  /a\R{2,4}b/I<bsr_anycrlf>
8820  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
8821  Options: bsr_anycrlf  Options: bsr_anycrlf
8822  First char = 'a'  First char = 'a'
8823  Need char = 'b'  Need char = 'b'
# Line 9235  No match Line 8836  No match
8836    
8837  /a\R{2,4}b/I<bsr_unicode>  /a\R{2,4}b/I<bsr_unicode>
8838  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
8839  Options: bsr_unicode  Options: bsr_unicode
8840  First char = 'a'  First char = 'a'
8841  Need char = 'b'  Need char = 'b'
# Line 9304  First char = 'a' Line 8904  First char = 'a'
8904  Need char = 'b'  Need char = 'b'
8905    
8906  /(?<a>)(?&)/  /(?<a>)(?&)/
8907  Failed: subpattern name expected after (?& at offset 9  Failed: subpattern name expected at offset 9
8908    
8909  /(?<abc>)(?&a)/  /(?<abc>)(?&a)/
8910  Failed: reference to non-existent subpattern at offset 12  Failed: reference to non-existent subpattern at offset 12
# Line 9318  Failed: digit expected after (?+ at offs Line 8918  Failed: digit expected after (?+ at offs
8918  /(?-+a)/  /(?-+a)/
8919  Failed: unrecognized character after (? or (?- at offset 3  Failed: unrecognized character after (? or (?- at offset 3
8920    
8921  / End of testinput2 /  /(?(-1))/
8922    Failed: reference to non-existent subpattern at offset 6
8923    
8924    /(?(+10))/
8925    Failed: reference to non-existent subpattern at offset 7
8926    
8927    /(?(10))/
8928    Failed: reference to non-existent subpattern at offset 6
8929    
8930    /(?(+2))()()/
8931    
8932    /(?(2))()()/
8933    
8934    /\k''/
8935    Failed: subpattern name expected at offset 3
8936    
8937    /\k<>/
8938    Failed: subpattern name expected at offset 3
8939    
8940    /\k{}/
8941    Failed: subpattern name expected at offset 3
8942    
8943    /(?P=)/
8944    Failed: subpattern name expected at offset 4
8945    
8946    /(?P>)/
8947    Failed: subpattern name expected at offset 4
8948    
8949    /(?!\w)(?R)/
8950    Failed: recursive call could loop indefinitely at offset 9
8951    
8952    /(?=\w)(?R)/
8953    Failed: recursive call could loop indefinitely at offset 9
8954    
8955    /(?<!\w)(?R)/
8956    Failed: recursive call could loop indefinitely at offset 10
8957    
8958    /(?<=\w)(?R)/
8959    Failed: recursive call could loop indefinitely at offset 10
8960    
8961    /[[:foo:]]/
8962    Failed: unknown POSIX class name at offset 3
8963    
8964    /[[:1234:]]/
8965    Failed: unknown POSIX class name at offset 3
8966    
8967    /[[:f\oo:]]/
8968    Failed: unknown POSIX class name at offset 3
8969    
8970    /[[: :]]/
8971    Failed: unknown POSIX class name at offset 3
8972    
8973    /[[:...:]]/
8974    Failed: unknown POSIX class name at offset 3
8975    
8976    /[[:l\ower:]]/
8977    Failed: unknown POSIX class name at offset 3
8978    
8979    /[[:abc\:]]/
8980    Failed: unknown POSIX class name at offset 3
8981    
8982    /[abc[:x\]pqr:]]/
8983    Failed: unknown POSIX class name at offset 6
8984    
8985    /[[:a\dz:]]/
8986    Failed: unknown POSIX class name at offset 3
8987    
8988    /(^(a|b\g<-1'c))/
8989    Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
8990    
8991    /^(?+1)(?<a>x|y){0}z/
8992        xzxx
8993     0: xz
8994        yzyy
8995     0: yz
8996        ** Failers
8997    No match
8998        xxz
8999    No match
9000    
9001    /(\3)(\1)(a)/
9002        cat
9003    No match
9004    
9005    /(\3)(\1)(a)/<JS>
9006        cat
9007     0: a
9008     1:
9009     2:
9010     3: a
9011    
9012    /TA]/
9013        The ACTA] comes
9014     0: TA]
9015    
9016    /TA]/<JS>
9017    Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
9018    
9019    /(?2)[]a()b](abc)/
9020    Failed: reference to non-existent subpattern at offset 3
9021    
9022    /(?2)[^]a()b](abc)/
9023    Failed: reference to non-existent subpattern at offset 3
9024    
9025    /(?1)[]a()b](abc)/
9026        abcbabc
9027     0: abcbabc
9028     1: abc
9029        ** Failers
9030    No match
9031        abcXabc
9032    No match
9033    
9034    /(?1)[^]a()b](abc)/
9035        abcXabc
9036     0: abcXabc
9037     1: abc
9038        ** Failers
9039    No match
9040        abcbabc
9041    No match
9042    
9043    /(?2)[]a()b](abc)(xyz)/
9044        xyzbabcxyz
9045     0: xyzbabcxyz
9046     1: abc
9047     2: xyz
9048    
9049    /(?&N)[]a(?<N>)](?<M>abc)/
9050    Failed: reference to non-existent subpattern at offset 4
9051    
9052    /(?&N)[]a(?<N>)](abc)/
9053    Failed: reference to non-existent subpattern at offset 4
9054    
9055    /a[]b/
9056    Failed: missing terminating ] for character class at offset 4
9057    
9058    /a[^]b/
9059    Failed: missing terminating ] for character class at offset 5
9060    
9061    /a[]b/<JS>
9062        ** Failers
9063    No match
9064        ab
9065    No match
9066    
9067    /a[]+b/<JS>
9068        ** Failers
9069    No match
9070        ab
9071    No match
9072    
9073    /a[]*+b/<JS>
9074        ** Failers
9075    No match
9076        ab
9077    No match
9078    
9079    /a[^]b/<JS>
9080        aXb
9081     0: aXb
9082        a\nb
9083     0: a\x0ab
9084        ** Failers
9085    No match
9086        ab
9087    No match
9088    
9089    /a[^]+b/<JS>
9090        aXb
9091     0: aXb
9092        a\nX\nXb
9093     0: a\x0aX\x0aXb
9094        ** Failers
9095    No match
9096        ab
9097    No match
9098    
9099    /a(?!)+b/
9100    Failed: nothing to repeat at offset 5
9101    
9102    /a(*FAIL)+b/
9103    Failed: nothing to repeat at offset 8
9104    
9105    /(abc|pqr|123){0}[xyz]/SI
9106    Capturing subpattern count = 1
9107    No options
9108    No first char
9109    No need char
9110    Subject length lower bound = 1
9111    Starting byte set: x y z
9112    
9113    /(?(?=.*b)b|^)/CI
9114    Capturing subpattern count = 0
9115    Options:
9116    No first char
9117    No need char
9118       adc
9119    --->adc
9120     +0 ^       (?(?=.*b)b|^)
9121     +2 ^       (?=.*b)
9122     +5 ^       .*
9123     +7 ^  ^    b
9124     +7 ^ ^     b
9125     +7 ^^      b
9126     +7 ^       b
9127    +12 ^       )
9128    +13 ^
9129     0:
9130       abc
9131    --->abc
9132     +0 ^       (?(?=.*b)b|^)
9133     +2 ^       (?=.*b)
9134     +5 ^       .*
9135     +7 ^  ^    b
9136     +7 ^ ^     b
9137     +7 ^^      b
9138     +8 ^ ^     )
9139     +9 ^       b
9140     +0  ^      (?(?=.*b)b|^)
9141     +2  ^      (?=.*b)
9142     +5  ^      .*
9143     +7  ^ ^    b
9144     +7  ^^     b
9145     +7  ^      b
9146     +8  ^^     )
9147     +9  ^      b
9148    +10  ^^     |
9149    +13  ^^
9150     0: b
9151    
9152    /(?(?=b).*b|^d)/I
9153    Capturing subpattern count = 0
9154    No options
9155    No first char
9156    No need char
9157    
9158    /(?(?=.*b).*b|^d)/I
9159    Capturing subpattern count = 0
9160    No options
9161    First char at start or follows newline
9162    No need char
9163    
9164    /a?|b?/P
9165        abc
9166     0: a
9167        ** Failers
9168     0:
9169        ddd\N
9170    No match: POSIX code 17: match failed
9171    
9172    /xyz/C
9173      xyz
9174    --->xyz
9175     +0 ^       x
9176     +1 ^^      y
9177     +2 ^ ^     z
9178     +3 ^  ^
9179     0: xyz
9180      abcxyz
9181    --->abcxyz
9182     +0    ^       x
9183     +1    ^^      y
9184     +2    ^ ^     z
9185     +3    ^  ^
9186     0: xyz
9187      abcxyz\Y
9188    --->abcxyz
9189     +0 ^          x
9190     +0  ^         x
9191     +0   ^        x
9192     +0    ^       x
9193     +1    ^^      y
9194     +2    ^ ^     z
9195     +3    ^  ^
9196     0: xyz
9197      ** Failers
9198    No match
9199      abc
9200    No match
9201      abc\Y
9202    --->abc
9203     +0 ^       x
9204     +0  ^      x
9205     +0   ^     x
9206     +0    ^    x
9207    No match
9208      abcxypqr
9209    No match
9210      abcxypqr\Y
9211    --->abcxypqr
9212     +0 ^            x
9213     +0  ^           x
9214     +0   ^          x
9215     +0    ^         x
9216     +1    ^^        y
9217     +2    ^ ^       z
9218     +0     ^        x
9219     +0      ^       x
9220     +0       ^      x
9221     +0        ^     x
9222     +0         ^    x
9223    No match
9224    
9225    /^"((?(?=[a])[^"])|b)*"$/C
9226        "ab"
9227    --->"ab"
9228     +0 ^        ^
9229     +1 ^        "
9230     +2 ^^       ((?(?=[a])[^"])|b)*
9231     +3 ^^       (?(?=[a])[^"])
9232     +5 ^^       (?=[a])
9233     +8 ^^       [a]
9234    +11 ^ ^      )
9235    +12 ^^       [^"]
9236    +16 ^ ^      )
9237    +17 ^ ^      |
9238     +3 ^ ^      (?(?=[a])[^"])
9239     +5 ^ ^      (?=[a])
9240     +8 ^ ^      [a]
9241    +21 ^ ^      "
9242    +18 ^ ^      b
9243    +19 ^  ^     )
9244     +3 ^  ^     (?(?=[a])[^"])
9245     +5 ^  ^     (?=[a])
9246     +8 ^  ^     [a]
9247    +21 ^  ^     "
9248    +22 ^   ^    $
9249    +23 ^   ^
9250     0: "ab"
9251     1:
9252    
9253    /^"((?(?=[a])[^"])|b)*"$/
9254        "ab"
9255     0: "ab"
9256     1:
9257    
9258    /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9259    Failed: reference to non-existent subpattern at offset 5
9260    
9261    /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9262        XYabcdY
9263     0: XYabcdY
9264     1: a
9265     2: b
9266     3: c
9267     4: d
9268     5: Y
9269    
9270    /Xa{2,4}b/
9271        X\P
9272    Partial match: X
9273        Xa\P
9274    Partial match: Xa
9275        Xaa\P
9276    Partial match: Xaa
9277        Xaaa\P
9278    Partial match: Xaaa
9279        Xaaaa\P
9280    Partial match: Xaaaa
9281    
9282    /Xa{2,4}?b/
9283        X\P
9284    Partial match: X
9285        Xa\P
9286    Partial match: Xa
9287        Xaa\P
9288    Partial match: Xaa
9289        Xaaa\P
9290    Partial match: Xaaa
9291        Xaaaa\P
9292    Partial match: Xaaaa
9293    
9294    /Xa{2,4}+b/
9295        X\P
9296    Partial match: X
9297        Xa\P
9298    Partial match: Xa
9299        Xaa\P
9300    Partial match: Xaa
9301        Xaaa\P
9302    Partial match: Xaaa
9303        Xaaaa\P
9304    Partial match: Xaaaa
9305    
9306    /X\d{2,4}b/
9307        X\P
9308    Partial match: X
9309        X3\P
9310    Partial match: X3
9311        X33\P
9312    Partial match: X33
9313        X333\P
9314    Partial match: X333
9315        X3333\P
9316    Partial match: X3333
9317    
9318    /X\d{2,4}?b/
9319        X\P
9320    Partial match: X
9321        X3\P
9322    Partial match: X3
9323        X33\P
9324    Partial match: X33
9325        X333\P
9326    Partial match: X333
9327        X3333\P
9328    Partial match: X3333
9329    
9330    /X\d{2,4}+b/
9331        X\P
9332    Partial match: X
9333        X3\P
9334    Partial match: X3
9335        X33\P
9336    Partial match: X33
9337        X333\P
9338    Partial match: X333
9339        X3333\P
9340    Partial match: X3333
9341    
9342    /X\D{2,4}b/
9343        X\P
9344    Partial match: X
9345        Xa\P
9346    Partial match: Xa
9347        Xaa\P
9348    Partial match: Xaa
9349        Xaaa\P
9350    Partial match: Xaaa
9351        Xaaaa\P
9352    Partial match: Xaaaa
9353    
9354    /X\D{2,4}?b/
9355        X\P
9356    Partial match: X
9357        Xa\P
9358    Partial match: Xa
9359        Xaa\P
9360    Partial match: Xaa
9361        Xaaa\P
9362    Partial match: Xaaa
9363        Xaaaa\P
9364    Partial match: Xaaaa
9365    
9366    /X\D{2,4}+b/
9367        X\P
9368    Partial match: X
9369        Xa\P
9370    Partial match: Xa
9371        Xaa\P
9372    Partial match: Xaa
9373        Xaaa\P
9374    Partial match: Xaaa
9375        Xaaaa\P
9376    Partial match: Xaaaa
9377    
9378    /X[abc]{2,4}b/
9379        X\P
9380    Partial match: X
9381        Xa\P
9382    Partial match: Xa
9383        Xaa\P
9384    Partial match: Xaa
9385        Xaaa\P
9386    Partial match: Xaaa
9387        Xaaaa\P
9388    Partial match: Xaaaa
9389    
9390    /X[abc]{2,4}?b/
9391        X\P
9392    Partial match: X
9393        Xa\P
9394    Partial match: Xa
9395        Xaa\P
9396    Partial match: Xaa
9397        Xaaa\P
9398    Partial match: Xaaa
9399        Xaaaa\P
9400    Partial match: Xaaaa
9401    
9402    /X[abc]{2,4}+b/
9403        X\P
9404    Partial match: X
9405        Xa\P
9406    Partial match: Xa
9407        Xaa\P
9408    Partial match: Xaa
9409        Xaaa\P
9410    Partial match: Xaaa
9411        Xaaaa\P
9412    Partial match: Xaaaa
9413    
9414    /X[^a]{2,4}b/
9415        X\P
9416    Partial match: X
9417        Xz\P
9418    Partial match: Xz
9419        Xzz\P
9420    Partial match: Xzz
9421        Xzzz\P
9422    Partial match: Xzzz
9423        Xzzzz\P
9424    Partial match: Xzzzz
9425    
9426    /X[^a]{2,4}?b/
9427        X\P
9428    Partial match: X
9429        Xz\P
9430    Partial match: Xz
9431        Xzz\P
9432    Partial match: Xzz
9433        Xzzz\P
9434    Partial match: Xzzz
9435        Xzzzz\P
9436    Partial match: Xzzzz
9437    
9438    /X[^a]{2,4}+b/
9439        X\P
9440    Partial match: X
9441        Xz\P
9442    Partial match: Xz
9443        Xzz\P
9444    Partial match: Xzz
9445        Xzzz\P
9446    Partial match: Xzzz
9447        Xzzzz\P
9448    Partial match: Xzzzz
9449    
9450    /(Y)X\1{2,4}b/
9451        YX\P
9452    Partial match: YX
9453        YXY\P
9454    Partial match: YXY
9455        YXYY\P
9456    Partial match: YXYY
9457        YXYYY\P
9458    Partial match: YXYYY
9459        YXYYYY\P
9460    Partial match: YXYYYY
9461    
9462    /(Y)X\1{2,4}?b/
9463        YX\P
9464    Partial match: YX
9465        YXY\P
9466    Partial match: YXY
9467        YXYY\P
9468    Partial match: YXYY
9469        YXYYY\P
9470    Partial match: YXYYY
9471        YXYYYY\P
9472    Partial match: YXYYYY
9473    
9474    /(Y)X\1{2,4}+b/
9475        YX\P
9476    Partial match: YX
9477        YXY\P
9478    Partial match: YXY
9479        YXYY\P
9480    Partial match: YXYY
9481        YXYYY\P
9482    Partial match: YXYYY
9483        YXYYYY\P
9484    Partial match: YXYYYY
9485    
9486    /\++\KZ|\d+X|9+Y/
9487        ++++123999\P
9488    Partial match: 123999
9489        ++++123999Y\P
9490     0: 999Y
9491        ++++Z1234\P
9492     0: Z
9493    
9494    /Z(*F)/
9495        Z\P
9496    No match
9497        ZA\P
9498    No match
9499    
9500    /Z(?!)/
9501        Z\P
9502    No match
9503        ZA\P
9504    No match
9505    
9506    /dog(sbody)?/
9507        dogs\P
9508     0: dog
9509        dogs\P\P
9510    Partial match: dogs
9511    
9512    /dog(sbody)??/
9513        dogs\P
9514     0: dog
9515        dogs\P\P
9516     0: dog
9517    
9518    /dog|dogsbody/
9519        dogs\P
9520     0: dog
9521        dogs\P\P
9522     0: dog
9523    
9524    /dogsbody|dog/
9525        dogs\P
9526     0: dog
9527        dogs\P\P
9528    Partial match: dogs
9529    
9530    /\bthe cat\b/
9531        the cat\P
9532     0: the cat
9533        the cat\P\P
9534    Partial match: the cat
9535    
9536    /abc/
9537       abc\P
9538     0: abc
9539       abc\P\P
9540     0: abc
9541    
9542    /\w+A/P
9543       CDAAAAB
9544     0: CDAAAA
9545    
9546    /\w+A/PU
9547       CDAAAAB
9548     0: CDA
9549    
9550    /abc\K123/
9551        xyzabc123pqr
9552     0: 123
9553        xyzabc12\P
9554    Partial match: abc12
9555        xyzabc12\P\P
9556    Partial match: abc12
9557    
9558    /(?<=abc)123/
9559        xyzabc123pqr
9560     0: 123
9561        xyzabc12\P
9562    Partial match: abc12
9563        xyzabc12\P\P
9564    Partial match: abc12
9565    
9566    /\babc\b/
9567        +++abc+++
9568     0: abc
9569        +++ab\P
9570    Partial match: +ab
9571        +++ab\P\P
9572    Partial match: +ab
9573    
9574    /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9575    ------------------------------------------------------------------
9576            Bra
9577            Once
9578            Recurse
9579            Ket
9580            Once
9581            Recurse
9582            Ket
9583            Cond
9584            Cond def
9585            CBra 1
9586            <
9587            [^m]
9588            [^>]
9589            >
9590            [^<]
9591            Ket
9592            CBra 2
9593            \w*+
9594            Ket
9595            Ket
9596            Ket
9597            End
9598    ------------------------------------------------------------------
9599    
9600    /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9601    ------------------------------------------------------------------
9602            Bra
9603            Once
9604            Recurse
9605            Ket
9606            Once
9607            Recurse
9608            Ket
9609            Cond
9610            Cond def
9611            CBra 1
9612            <
9613            [\x00-/:-\xff] (neg)
9614            [^>]
9615            >
9616            [^<]
9617            Ket
9618            CBra 2
9619            \w*+
9620            Ket
9621            Ket
9622            Ket
9623            End
9624    ------------------------------------------------------------------
9625    
9626    /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9627    ------------------------------------------------------------------
9628            Bra
9629            CBra 1
9630            ab
9631            Ket
9632            CBra 2
9633            x
9634            CBra 3
9635            y
9636            Ket
9637            z
9638            CBra 4
9639            cd
9640            Close 4
9641            Close 2
9642            *ACCEPT
9643            Ket
9644            Ket
9645            pq
9646            Ket
9647            End
9648    ------------------------------------------------------------------
9649    
9650    /abc\K/+
9651        abcdef
9652     0:
9653     0+ def
9654        abcdef\N\N
9655     0:
9656     0+ def
9657        xyzabcdef\N\N
9658     0:
9659     0+ def
9660        ** Failers
9661    No match
9662        abcdef\N
9663    No match
9664        xyzabcdef\N
9665    No match
9666    
9667    /^(?:(?=abc)|abc\K)/+
9668        abcdef
9669     0:
9670     0+ abcdef
9671        abcdef\N\N
9672     0:
9673     0+ def
9674        ** Failers
9675    No match
9676        abcdef\N
9677    No match
9678    
9679    /a?b?/+
9680        xyz
9681     0:
9682     0+ xyz
9683        xyzabc
9684     0:
9685     0+ xyzabc
9686        xyzabc\N
9687     0: ab
9688     0+ c
9689        xyzabc\N\N
9690     0:
9691     0+ yzabc
9692        xyz\N\N
9693     0:
9694     0+ yz
9695        ** Failers
9696     0:
9697     0+ ** Failers
9698        xyz\N
9699    No match
9700    
9701    /^a?b?/+
9702        xyz
9703     0:
9704     0+ xyz
9705        xyzabc
9706     0:
9707     0+ xyzabc
9708        ** Failers
9709     0:
9710     0+ ** Failers
9711        xyzabc\N
9712    No match
9713        xyzabc\N\N
9714    No match
9715        xyz\N\N
9716    No match
9717        xyz\N
9718    No match
9719    
9720    /^(?<name>a|b\g<name>c)/
9721        aaaa
9722     0: a
9723     1: a
9724        bacxxx
9725     0: bac
9726     1: bac
9727        bbaccxxx
9728     0: bbacc
9729     1: bbacc
9730        bbbacccxx
9731     0: bbbaccc
9732     1: bbbaccc
9733    
9734    /^(?<name>a|b\g'name'c)/
9735        aaaa
9736     0: a
9737     1: a
9738        bacxxx
9739     0: bac
9740     1: bac
9741        bbaccxxx
9742     0: bbacc
9743     1: bbacc
9744        bbbacccxx
9745     0: bbbaccc
9746     1: bbbaccc
9747    
9748    /^(a|b\g<1>c)/
9749        aaaa
9750     0: a
9751     1: a
9752        bacxxx
9753     0: bac
9754     1: bac
9755        bbaccxxx
9756     0: bbacc
9757     1: bbacc
9758        bbbacccxx
9759     0: bbbaccc
9760     1: bbbaccc
9761    
9762    /^(a|b\g'1'c)/
9763        aaaa
9764     0: a
9765     1: a
9766        bacxxx
9767     0: bac
9768     1: bac
9769        bbaccxxx
9770     0: bbacc
9771     1: bbacc
9772        bbbacccxx
9773     0: bbbaccc
9774     1: bbbaccc
9775    
9776    /^(a|b\g'-1'c)/
9777        aaaa
9778     0: a
9779     1: a
9780        bacxxx
9781     0: bac
9782     1: bac
9783        bbaccxxx
9784     0: bbacc
9785     1: bbacc
9786        bbbacccxx
9787     0: bbbaccc
9788     1: bbbaccc
9789    
9790    /(^(a|b\g<-1>c))/
9791        aaaa
9792     0: a
9793     1: a
9794     2: a
9795        bacxxx
9796     0: bac
9797     1: bac
9798     2: bac
9799        bbaccxxx
9800     0: bbacc
9801     1: bbacc
9802     2: bbacc
9803        bbbacccxx
9804     0: bbbaccc
9805     1: bbbaccc
9806     2: bbbaccc
9807    
9808    /(?-i:\g<name>)(?i:(?<name>a))/
9809        XaaX
9810     0: aa
9811     1: a
9812        XAAX
9813     0: AA
9814     1: A
9815    
9816    /(?i:\g<name>)(?-i:(?<name>a))/
9817        XaaX
9818     0: aa
9819     1: a
9820        ** Failers
9821    No match
9822        XAAX
9823    No match
9824    
9825    /(?-i:\g<+1>)(?i:(a))/
9826        XaaX
9827     0: aa
9828     1: a
9829        XAAX
9830     0: AA
9831     1: A
9832    
9833    /(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/
9834    
9835    /(?<n>a|b|c)\g<n>*/
9836       abc
9837     0: abc
9838     1: a
9839       accccbbb
9840     0: accccbbb
9841     1: a
9842    
9843    /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
9844        XYabcdY
9845     0: XYabcdY
9846     1: a
9847     2: b
9848     3: <unset>
9849     4: <unset>
9850     5: c
9851     6: d
9852     7: Y
9853    
9854    /(?<=b(?1)|zzz)(a)/
9855        xbaax
9856     0: a
9857     1: a
9858        xzzzax
9859     0: a
9860     1: a
9861    
9862    /(a)(?<=b\1)/
9863    Failed: lookbehind assertion is not fixed length at offset 10
9864    
9865    /(a)(?<=b+(?1))/
9866    Failed: lookbehind assertion is not fixed length at offset 13
9867    
9868    /(a+)(?<=b(?1))/
9869    Failed: lookbehind assertion is not fixed length at offset 14
9870    
9871    /(a(?<=b(?1)))/
9872    Failed: lookbehind assertion is not fixed length at offset 13
9873    
9874    /(?<=b(?1))xyz/
9875    Failed: reference to non-existent subpattern at offset 8
9876    
9877    /(?<=b(?1))xyz(b+)pqrstuvew/
9878    Failed: lookbehind assertion is not fixed length at offset 26
9879    
9880    /(a|bc)\1/SI
9881    Capturing subpattern count = 1
9882    Max back reference = 1
9883    No options
9884    No first char
9885    No need char
9886    Subject length lower bound = 2
9887    Starting byte set: a b
9888    
9889    /(a|bc)\1{2,3}/SI
9890    Capturing subpattern count = 1
9891    Max back reference = 1
9892    No options
9893    No first char
9894    No need char
9895    Subject length lower bound = 3
9896    Starting byte set: a b
9897    
9898    /(a|bc)(?1)/SI
9899    Capturing subpattern count = 1
9900    No options
9901    No first char
9902    No need char
9903    Subject length lower bound = 2
9904    Starting byte set: a b
9905    
9906    /(a|b\1)(a|b\1)/SI
9907    Capturing subpattern count = 2
9908    Max back reference = 1
9909    No options
9910    No first char
9911    No need char
9912    Subject length lower bound = 2
9913    Starting byte set: a b
9914    
9915    /(a|b\1){2}/SI
9916    Capturing subpattern count = 1
9917    Max back reference = 1
9918    No options
9919    No first char
9920    No need char
9921    Subject length lower bound = 2
9922    Starting byte set: a b
9923    
9924    /(a|bbbb\1)(a|bbbb\1)/SI
9925    Capturing subpattern count = 2
9926    Max back reference = 1
9927    No options
9928    No first char
9929    No need char
9930    Subject length lower bound = 2
9931    Starting byte set: a b
9932    
9933    /(a|bbbb\1){2}/SI
9934    Capturing subpattern count = 1
9935    Max back reference = 1
9936    No options
9937    No first char
9938    No need char
9939    Subject length lower bound = 2
9940    Starting byte set: a b
9941    
9942    /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/SI
9943    Capturing subpattern count = 1
9944    Options: anchored
9945    No first char
9946    Need char = ':'
9947    Subject length lower bound = 22
9948    No set of starting bytes
9949    
9950    /  (?: [\040\t] |  \(
9951    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
9952    \)  )*                          # optional leading comment
9953    (?:    (?:
9954    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
9955    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
9956    |
9957    " (?:                      # opening quote...
9958    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
9959    |                     #    or
9960    \\ [^\x80-\xff]           #   Escaped something (something != CR)
9961    )* "  # closing quote
9962    )                    # initial word
9963    (?:  (?: [\040\t] |  \(
9964    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
9965    \)  )*  \.  (?: [\040\t] |  \(
9966    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
9967    \)  )*   (?:
9968    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
9969    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
9970    |
9971    " (?:                      # opening quote...
9972    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
9973    |                     #    or
9974    \\ [^\x80-\xff]           #   Escaped something (something != CR)
9975    )* "  # closing quote
9976    )  )* # further okay, if led by a period
9977    (?: [\040\t] |  \(
9978    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
9979    \)  )*  @  (?: [\040\t] |  \(
9980    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
9981    \)  )*    (?:
9982    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
9983    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
9984    |   \[                         # [
9985    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
9986    \]                        #           ]
9987    )                           # initial subdomain
9988    (?:                                  #
9989    (?: [\040\t] |  \(
9990    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
9991    \)  )*  \.                        # if led by a period...
9992    (?: [\040\t] |  \(
9993    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
9994    \)  )*   (?:
9995    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
9996    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
9997    |   \[                         # [
9998    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
9999    \]                        #           ]
10000    )                     #   ...further okay
10001    )*
10002    # address
10003    |                     #  or
10004    (?:
10005    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10006    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10007    |
10008    " (?:                      # opening quote...
10009    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10010    |                     #    or
10011    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10012    )* "  # closing quote
10013    )             # one word, optionally followed by....
10014    (?:
10015    [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
10016    \(
10017    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10018    \)       |  # comments, or...
10019    
10020    " (?:                      # opening quote...
10021    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10022    |                     #    or
10023    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10024    )* "  # closing quote
10025    # quoted strings
10026    )*
10027    <  (?: [\040\t] |  \(
10028    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10029    \)  )*                     # leading <
10030    (?:  @  (?: [\040\t] |  \(
10031    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10032    \)  )*    (?:
10033    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10034    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10035    |   \[                         # [
10036    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10037    \]                        #           ]
10038    )                           # initial subdomain
10039    (?:                                  #
10040    (?: [\040\t] |  \(
10041    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10042    \)  )*  \.                        # if led by a period...
10043    (?: [\040\t] |  \(
10044    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10045    \)  )*   (?:
10046    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10047    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10048    |   \[                         # [
10049    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10050    \]                        #           ]
10051    )                     #   ...further okay
10052    )*
10053    
10054    (?:  (?: [\040\t] |  \(
10055    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10056    \)  )*  ,  (?: [\040\t] |  \(
10057    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10058    \)  )*  @  (?: [\040\t] |  \(
10059    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10060    \)  )*    (?:
10061    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10062    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10063    |   \[                         # [
10064    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10065    \]                        #           ]
10066    )                           # initial subdomain
10067    (?:                                  #
10068    (?: [\040\t] |  \(
10069    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10070    \)  )*  \.                        # if led by a period...
10071    (?: [\040\t] |  \(
10072    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10073    \)  )*   (?:
10074    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10075    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10076    |   \[                         # [
10077    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10078    \]                        #           ]
10079    )                     #   ...further okay
10080    )*
10081    )* # further okay, if led by comma
10082    :                                # closing colon
10083    (?: [\040\t] |  \(
10084    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10085    \)  )*  )? #       optional route
10086    (?:
10087    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10088    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10089    |
10090    " (?:                      # opening quote...
10091    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10092    |                     #    or
10093    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10094    )* "  # closing quote
10095    )                    # initial word
10096    (?:  (?: [\040\t] |  \(
10097    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10098    \)  )*  \.  (?: [\040\t] |  \(
10099    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10100    \)  )*   (?:
10101    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10102    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10103    |
10104    " (?:                      # opening quote...
10105    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10106    |                     #    or
10107    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10108    )* "  # closing quote
10109    )  )* # further okay, if led by a period
10110    (?: [\040\t] |  \(
10111    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10112    \)  )*  @  (?: [\040\t] |  \(
10113    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10114    \)  )*    (?:
10115    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10116    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10117    |   \[                         # [
10118    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10119    \]                        #           ]
10120    )                           # initial subdomain
10121    (?:                                  #
10122    (?: [\040\t] |  \(
10123    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10124    \)  )*  \.                        # if led by a period...
10125    (?: [\040\t] |  \(
10126    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10127    \)  )*   (?:
10128    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10129    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10130    |   \[                         # [
10131    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10132    \]                        #           ]
10133    )                     #   ...further okay
10134    )*
10135    #       address spec
10136    (?: [\040\t] |  \(
10137    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10138    \)  )*  > #                  trailing >
10139    # name and address
10140    )  (?: [\040\t] |  \(
10141    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10142    \)  )*                       # optional trailing comment
10143    /xSI
10144    Capturing subpattern count = 0
10145    Contains explicit CR or LF match
10146    Options: extended
10147    No first char
10148    No need char
10149    Subject length lower bound = 3
10150    Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8
10151      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
10152      f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f
10153    
10154    /<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
10155    Capturing subpattern count = 11
10156    Options: caseless dotall
10157    First char = '<'
10158    Need char = '>'
10159    Subject length lower bound = 47
10160    No set of starting bytes
10161    
10162    "(?>.*/)foo"SI
10163    Capturing subpattern count = 0
10164    No options
10165    First char at start or follows newline
10166    Need char = 'o'
10167    Subject length lower bound = 4
10168    No set of starting bytes
10169    
10170    /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10171    Capturing subpattern count = 0
10172    Options: extended
10173    No first char
10174    Need char = '-'
10175    Subject length lower bound = 8
10176    No set of starting bytes
10177    
10178    /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10179    Capturing subpattern count = 1
10180    Options: caseless
10181    No first char
10182    No need char
10183    Subject length lower bound = 1
10184    Starting byte set: A B C a b c
10185    
10186    /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10187    Capturing subpattern count = 0
10188    No options
10189    No first char
10190    Need char = 'b'
10191    Subject length lower bound = 41
10192    Starting byte set: c d
10193    
10194    /<a[\s]+href[\s]*=[\s]*          # find <a href=
10195     ([\"\'])?                       # find single or double quote
10196     (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
10197                                     # quote, otherwise match up to next space
10198    /isxSI
10199    Capturing subpattern count = 3
10200    Max back reference = 1
10201    Options: caseless extended dotall
10202    First char = '<'
10203    Need char = '='
10204    Subject length lower bound = 9
10205    No set of starting bytes
10206    
10207    /^(?!:)                       # colon disallowed at start
10208      (?:                         # start of item
10209        (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
10210        (?(1)0 | () ) )           # if null previously matched, fail; else null
10211        :                         # followed by colon
10212      ){1,7}                      # end item; 1-7 of them required
10213      [0-9a-f]{1,4} $             # final hex number at end of string
10214      (?(1)|.)                    # check that there was an empty component
10215      /xiIS
10216    Capturing subpattern count = 1
10217    Options: anchored caseless extended
10218    No first char
10219    Need char = ':'
10220    Subject length lower bound = 2
10221    No set of starting bytes
10222    
10223    /(?|(?<a>A)|(?<a>B))/I
10224    Capturing subpattern count = 1
10225    Named capturing subpatterns:
10226      a   1
10227      a   1
10228    No options
10229    No first char
10230    No need char
10231        AB\Ca
10232     0: A
10233     1: A
10234      C A (1) a
10235        BA\Ca
10236     0: B
10237     1: B
10238      C B (1) a
10239    
10240    /(?|(?<a>A)|(?<b>B))/
10241    Failed: different names for subpatterns of the same number are not allowed at offset 15
10242    
10243    /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10244        b(?<quote> (?<apostrophe>')|(?<realquote>")) )
10245        (?('quote')[a-z]+|[0-9]+)/JIx
10246    Capturing subpattern count = 6
10247    Named capturing subpatterns:
10248      apostrophe   2
10249      apostrophe   5
10250      quote        1
10251      quote        4
10252      realquote    3
10253      realquote    6
10254    Options: extended dupnames
10255    No first char
10256    No need char
10257        a"aaaaa
10258     0: a"aaaaa
10259     1: "
10260     2: <unset>
10261     3: "
10262        b"aaaaa
10263     0: b"aaaaa
10264     1: <unset>
10265     2: <unset>
10266     3: <unset>
10267     4: "
10268     5: <unset>
10269     6: "
10270        ** Failers
10271    No match
10272        b"11111
10273    No match
10274        a"11111
10275    No match
10276    
10277    /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10278    ------------------------------------------------------------------
10279            Bra
10280            ^
10281            Bra
10282            CBra 1
10283            a
10284            Ket
10285            CBra 2
10286            b
10287            Ket
10288            CBra 3
10289            c
10290            Ket
10291            CBra 4
10292            d
10293            Ket
10294            Alt
10295            CBra 1
10296            e
10297            Ket
10298            Ket
10299            Cond
10300          4 Cond nref
10301            X
10302            Alt
10303            Y
10304            Ket
10305            Ket
10306            End
10307    ------------------------------------------------------------------
10308    Capturing subpattern count = 4
10309    Named capturing subpatterns:
10310      D   4
10311      D   1
10312    Options: anchored extended dupnames
10313    No first char
10314    No need char
10315        abcdX
10316     0: abcdX
10317     1: a
10318     2: b
10319     3: c
10320     4: d
10321        eX
10322     0: eX
10323     1: e
10324        ** Failers
10325    No match
10326        abcdY
10327    No match
10328        ey
10329    No match
10330    
10331    /(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
10332    ------------------------------------------------------------------
10333            Bra
10334            CBra 1
10335            a
10336            Ket
10337            CBra 2
10338            b
10339            Ket
10340            CBra 3
10341            c
10342            Ket
10343            CBra 4
10344            d
10345            Cond
10346            Cond nrecurse 1
10347            $
10348            Alt
10349            Once
10350            Recurse
10351            Ket
10352            Ket
10353            Ket
10354            Ket
10355            End
10356    ------------------------------------------------------------------
10357    Capturing subpattern count = 4
10358    Named capturing subpatterns:
10359      A   1
10360      A   4
10361    Options: extended dupnames
10362    First char = 'a'
10363    Need char = 'd'
10364        abcdd
10365     0: abcdd
10366     1: a
10367     2: b
10368     3: c
10369     4: dd
10370        ** Failers
10371    No match
10372        abcdde
10373    No match
10374    
10375    /abcd*/
10376        xxxxabcd\P
10377     0: abcd
10378        xxxxabcd\P\P
10379    Partial match: abcd
10380    
10381    /abcd*/i
10382        xxxxabcd\P
10383     0: abcd
10384        xxxxabcd\P\P
10385    Partial match: abcd
10386        XXXXABCD\P
10387     0: ABCD
10388        XXXXABCD\P\P
10389    Partial match: ABCD
10390    
10391    /abc\d*/
10392        xxxxabc1\P
10393     0: abc1
10394        xxxxabc1\P\P
10395    Partial match: abc1
10396    
10397    /(a)bc\1*/
10398        xxxxabca\P
10399     0: abca
10400     1: a
10401        xxxxabca\P\P
10402    Partial match: abca
10403    
10404    /abc[de]*/
10405        xxxxabcde\P
10406     0: abcde
10407        xxxxabcde\P\P
10408    Partial match: abcde
10409    
10410    /-- This is not in the Perl 5.10 test because Perl seems currently to be broken
10411        and not behaving as specified in that it *does* bumpalong after hitting
10412        (*COMMIT). --/
10413    
10414    /(?1)(A(*COMMIT)|B)D/
10415        ABD
10416     0: ABD
10417     1: B
10418        XABD
10419     0: ABD
10420     1: B
10421        BAD
10422     0: BAD
10423     1: A
10424        ABXABD
10425     0: ABD
10426     1: B
10427        ** Failers
10428    No match
10429        ABX
10430    No match
10431        BAXBAD
10432    No match
10433    
10434    /-- End of testinput2 --/

Legend:
Removed from v.270  
changed lines
  Added in v.464

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12