/[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 205 by ph10, Fri Aug 3 13:18:33 2007 UTC revision 454 by ph10, Tue Sep 22 09:42:11 2009 UTC
# Line 1  Line 1 
1    /-- This set of tests is not Perl-compatible. It checks on special features
2        of PCRE's API, error diagnostics, and the compiled code of some patterns.
3        It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4        Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5        either because PCRE can't be compatible, or there is potential Perl
6        bug. --/
7    
8    /-- Originally, the Perl 5.10 things were in here too, but now I have separated
9        many (most?) of them out into test 11. However, there may still be some
10        that were overlooked. --/
11    
12  /(a)b|/I  /(a)b|/I
13  Capturing subpattern count = 1  Capturing subpattern count = 1
14  No options  No options
# Line 40  No match Line 51  No match
51    
52  /a+bc/I  /a+bc/I
53  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
54  No options  No options
55  First char = 'a'  First char = 'a'
56  Need char = 'c'  Need char = 'c'
57    
58  /a*bc/I  /a*bc/I
59  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
60  No options  No options
61  No first char  No first char
62  Need char = 'c'  Need char = 'c'
63    
64  /a{3}bc/I  /a{3}bc/I
65  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
66  No options  No options
67  First char = 'a'  First char = 'a'
68  Need char = 'c'  Need char = 'c'
69    
70  /(abc|a+z)/I  /(abc|a+z)/I
71  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
72  No options  No options
73  First char = 'a'  First char = 'a'
74  No need char  No need char
# Line 109  Failed: missing ) at offset 4 Line 116  Failed: missing ) at offset 4
116  Failed: missing ) after comment at offset 7  Failed: missing ) after comment at offset 7
117    
118  /(?z)abc/  /(?z)abc/
119  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? or (?- at offset 2
120    
121  /.*b/I  /.*b/I
122  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
123  No options  No options
124  First char at start or follows newline  First char at start or follows newline
125  Need char = 'b'  Need char = 'b'
126    
127  /.*?b/I  /.*?b/I
128  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
129  No options  No options
130  First char at start or follows newline  First char at start or follows newline
131  Need char = 'b'  Need char = 'b'
# Line 310  No match Line 315  No match
315  No match  No match
316    
317  /ab(?z)cd/  /ab(?z)cd/
318  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? or (?- at offset 4
319    
320  /^abc|def/I  /^abc|def/I
321  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 324  No need char Line 329  No need char
329    
330  /.*((abc)$|(def))/I  /.*((abc)$|(def))/I
331  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
332  No options  No options
333  First char at start or follows newline  First char at start or follows newline
334  No need char  No need char
# Line 338  No need char Line 342  No need char
342   2: <unset>   2: <unset>
343   3: def   3: def
344    
345  /abc/IP  /abc/P
346      abc      abc
347   0: abc   0: abc
348      *** Failers      *** Failers
349  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
350    
351  /^abc|def/IP  /^abc|def/P
352      abcdef      abcdef
353   0: abc   0: abc
354      abcdef\B      abcdef\B
355   0: def   0: def
356    
357  /.*((abc)$|(def))/IP  /.*((abc)$|(def))/P
358      defabc      defabc
359   0: defabc   0: defabc
360   1: abc   1: abc
# Line 360  No match: POSIX code 17: match failed Line 364  No match: POSIX code 17: match failed
364   1: def   1: def
365   3: def   3: def
366    
367  /the quick brown fox/IP  /the quick brown fox/P
368      the quick brown fox      the quick brown fox
369   0: the quick brown fox   0: the quick brown fox
370      *** Failers      *** Failers
# Line 368  No match: POSIX code 17: match failed Line 372  No match: POSIX code 17: match failed
372      The Quick Brown Fox      The Quick Brown Fox
373  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
374    
375  /the quick brown fox/IPi  /the quick brown fox/Pi
376      the quick brown fox      the quick brown fox
377   0: the quick brown fox   0: the quick brown fox
378      The Quick Brown Fox      The Quick Brown Fox
379   0: The Quick Brown Fox   0: The Quick Brown Fox
380    
381  /abc.def/IP  /abc.def/P
382      *** Failers      *** Failers
383  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
384      abc\ndef      abc\ndef
385  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
386    
387  /abc$/IP  /abc$/P
388      abc      abc
389   0: abc   0: abc
390      abc\n      abc\n
391   0: abc   0: abc
392    
393  /(abc)\2/IP  /(abc)\2/P
394  Failed: POSIX code 15: bad back reference at offset 7  Failed: POSIX code 15: bad back reference at offset 7
395    
396  /(abc\1)/IP  /(abc\1)/P
397      abc      abc
398  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
399    
# Line 401  Failed: missing terminating ] for charac Line 405  Failed: missing terminating ] for charac
405    
406  /[^aeiou ]{3,}/I  /[^aeiou ]{3,}/I
407  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
408  No options  No options
409  No first char  No first char
410  No need char  No need char
# Line 410  No need char Line 413  No need char
413    
414  /<.*>/I  /<.*>/I
415  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
416  No options  No options
417  First char = '<'  First char = '<'
418  Need char = '>'  Need char = '>'
# Line 419  Need char = '>' Line 421  Need char = '>'
421    
422  /<.*?>/I  /<.*?>/I
423  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
424  No options  No options
425  First char = '<'  First char = '<'
426  Need char = '>'  Need char = '>'
# Line 428  Need char = '>' Line 429  Need char = '>'
429    
430  /<.*>/IU  /<.*>/IU
431  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
432  Options: ungreedy  Options: ungreedy
433  First char = '<'  First char = '<'
434  Need char = '>'  Need char = '>'
# Line 437  Need char = '>' Line 437  Need char = '>'
437    
438  /(?U)<.*>/I  /(?U)<.*>/I
439  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
440  Options: ungreedy  Options: ungreedy
441  First char = '<'  First char = '<'
442  Need char = '>'  Need char = '>'
# Line 446  Need char = '>' Line 445  Need char = '>'
445    
446  /<.*?>/IU  /<.*?>/IU
447  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
448  Options: ungreedy  Options: ungreedy
449  First char = '<'  First char = '<'
450  Need char = '>'  Need char = '>'
# Line 455  Need char = '>' Line 453  Need char = '>'
453    
454  /={3,}/IU  /={3,}/IU
455  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
456  Options: ungreedy  Options: ungreedy
457  First char = '='  First char = '='
458  Need char = '='  Need char = '='
# Line 464  Need char = '=' Line 461  Need char = '='
461    
462  /(?U)={3,}?/I  /(?U)={3,}?/I
463  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
464  Options: ungreedy  Options: ungreedy
465  First char = '='  First char = '='
466  Need char = '='  Need char = '='
# Line 522  No need char Line 518  No need char
518    
519  /(?s).*/I  /(?s).*/I
520  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
521  Options: anchored dotall  Options: anchored dotall
522  No first char  No first char
523  No need char  No need char
# Line 584  Failed: syntax error in subpattern name Line 579  Failed: syntax error in subpattern name
579  /((?s)blah)\s+\1/I  /((?s)blah)\s+\1/I
580  Capturing subpattern count = 1  Capturing subpattern count = 1
581  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
582  No options  No options
583  First char = 'b'  First char = 'b'
584  Need char = 'h'  Need char = 'h'
# Line 592  Need char = 'h' Line 586  Need char = 'h'
586  /((?i)blah)\s+\1/I  /((?i)blah)\s+\1/I
587  Capturing subpattern count = 1  Capturing subpattern count = 1
588  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
589  No options  No options
590  First char = 'b' (caseless)  First char = 'b' (caseless)
591  Need char = 'h' (caseless)  Need char = 'h' (caseless)
# Line 616  Study returned NULL Line 609  Study returned NULL
609    
610  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
611  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
612  No options  No options
613  No first char  No first char
614  No need char  No need char
# Line 668  Need char = 'c' Line 660  Need char = 'c'
660    
661  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
662  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
663  Options: anchored  Options: anchored
664  No first char  No first char
665  No need char  No need char
# Line 703  Starting byte set: a b Line 694  Starting byte set: a b
694    
695  /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
696  Capturing subpattern count = 0  Capturing subpattern count = 0
697    Contains explicit CR or LF match
698  Options: multiline  Options: multiline
699  No first char  No first char
700  Need char = 'r'  Need char = 'r'
# Line 719  No match Line 711  No match
711    
712  /^(?<=foo\n)bar/Im  /^(?<=foo\n)bar/Im
713  Capturing subpattern count = 0  Capturing subpattern count = 0
714    Contains explicit CR or LF match
715  Options: multiline  Options: multiline
716  First char at start or follows newline  First char at start or follows newline
717  Need char = 'r'  Need char = 'r'
# Line 782  No need char Line 775  No need char
775    
776  /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
777  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
778  No options  No options
779  First char at start or follows newline  First char at start or follows newline
780  No need char  No need char
# Line 944  Failed: missing ) at offset 4 Line 936  Failed: missing ) at offset 4
936  Failed: unrecognized character after (?< at offset 3  Failed: unrecognized character after (?< at offset 3
937    
938  /a(?{)b/  /a(?{)b/
939  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
940    
941  /a(?{{})b/  /a(?{{})b/
942  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
943    
944  /a(?{}})b/  /a(?{}})b/
945  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
946    
947  /a(?{"{"})b/  /a(?{"{"})b/
948  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
949    
950  /a(?{"{"}})b/  /a(?{"{"}})b/
951  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
952    
953  /(?(1?)a|b)/  /(?(1?)a|b)/
954  Failed: malformed number or name after (?( at offset 4  Failed: malformed number or name after (?( at offset 4
955    
 /(?(1)a|b|c)/  
 Failed: conditional group contains more than two branches at offset 10  
   
956  /[a[:xyz:/  /[a[:xyz:/
957  Failed: missing terminating ] for character class at offset 8  Failed: missing terminating ] for character class at offset 8
958    
# Line 1004  copy substring 5 failed -7 Line 993  copy substring 5 failed -7
993    
994  /(.{20})/I  /(.{20})/I
995  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
996  No options  No options
997  No first char  No first char
998  No need char  No need char
# Line 1022  No need char Line 1010  No need char
1010    
1011  /(.{15})/I  /(.{15})/I
1012  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1013  No options  No options
1014  No first char  No first char
1015  No need char  No need char
# Line 1037  No need char Line 1024  No need char
1024    
1025  /(.{16})/I  /(.{16})/I
1026  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1027  No options  No options
1028  No first char  No first char
1029  No need char  No need char
# Line 1104  No need char Line 1090  No need char
1090  )((?:[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]+
1091  )?)?)?)?)?)?)?)?)?otherword/I  )?)?)?)?)?)?)?)?)?otherword/I
1092  Capturing subpattern count = 8  Capturing subpattern count = 8
1093  Partial matching not supported  Contains explicit CR or LF match
1094  No options  No options
1095  First char = 'w'  First char = 'w'
1096  Need char = 'd'  Need char = 'd'
# Line 1118  Need char = 'd' Line 1104  Need char = 'd'
1104          End          End
1105  ------------------------------------------------------------------  ------------------------------------------------------------------
1106  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1107  No options  No options
1108  First char at start or follows newline  First char at start or follows newline
1109  Need char = 'X'  Need char = 'X'
# Line 1126  Need char = 'X' Line 1111  Need char = 'X'
1111  /.*X/IDZs  /.*X/IDZs
1112  ------------------------------------------------------------------  ------------------------------------------------------------------
1113          Bra          Bra
1114          Any*          AllAny*
1115          X          X
1116          Ket          Ket
1117          End          End
1118  ------------------------------------------------------------------  ------------------------------------------------------------------
1119  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1120  Options: anchored dotall  Options: anchored dotall
1121  No first char  No first char
1122  Need char = 'X'  Need char = 'X'
# Line 1151  Need char = 'X' Line 1135  Need char = 'X'
1135          End          End
1136  ------------------------------------------------------------------  ------------------------------------------------------------------
1137  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1138  No options  No options
1139  First char at start or follows newline  First char at start or follows newline
1140  No need char  No need char
# Line 1160  No need char Line 1143  No need char
1143  ------------------------------------------------------------------  ------------------------------------------------------------------
1144          Bra          Bra
1145          CBra 1          CBra 1
1146          Any*          AllAny*
1147          X          X
1148          Alt          Alt
1149          ^          ^
# Line 1170  No need char Line 1153  No need char
1153          End          End
1154  ------------------------------------------------------------------  ------------------------------------------------------------------
1155  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1156  Options: anchored dotall  Options: anchored dotall
1157  No first char  No first char
1158  No need char  No need char
# Line 1179  No need char Line 1161  No need char
1161  ------------------------------------------------------------------  ------------------------------------------------------------------
1162          Bra          Bra
1163          CBra 1          CBra 1
1164          Any*          AllAny*
1165          X          X
1166          Alt          Alt
1167          ^          ^
# Line 1189  No need char Line 1171  No need char
1171          End          End
1172  ------------------------------------------------------------------  ------------------------------------------------------------------
1173  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1174  Options: anchored dotall  Options: anchored dotall
1175  No first char  No first char
1176  No need char  No need char
# Line 1199  No need char Line 1180  No need char
1180          Bra          Bra
1181          Bra          Bra
1182       04 Opt       04 Opt
1183          Any*          AllAny*
1184          X          X
1185          Alt          Alt
1186       04 Opt       04 Opt
# Line 1211  No need char Line 1192  No need char
1192          End          End
1193  ------------------------------------------------------------------  ------------------------------------------------------------------
1194  Capturing subpattern count = 0  Capturing subpattern count = 0
1195  Partial matching not supported  Options: anchored
1196  No options  No first char
 First char at start or follows newline  
1197  No need char  No need char
1198    
1199  /\Biss\B/I+  /\Biss\B/I+
# Line 1296  No need char Line 1276  No need char
1276    
1277  /.*iss/Ig+  /.*iss/Ig+
1278  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1279  No options  No options
1280  First char at start or follows newline  First char at start or follows newline
1281  Need char = 's'  Need char = 's'
# Line 1347  No need char Line 1326  No need char
1326    
1327  /^ab\n/Ig+  /^ab\n/Ig+
1328  Capturing subpattern count = 0  Capturing subpattern count = 0
1329    Contains explicit CR or LF match
1330  Options: anchored  Options: anchored
1331  No first char  No first char
1332  No need char  No need char
# Line 1356  No need char Line 1336  No need char
1336    
1337  /^ab\n/Img+  /^ab\n/Img+
1338  Capturing subpattern count = 0  Capturing subpattern count = 0
1339    Contains explicit CR or LF match
1340  Options: multiline  Options: multiline
1341  First char at start or follows newline  First char at start or follows newline
1342  Need char = 10  Need char = 10
# Line 1397  Need char = 'c' Line 1378  Need char = 'c'
1378    
1379  /a*/I  /a*/I
1380  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1381  No options  No options
1382  No first char  No first char
1383  No need char  No need char
1384    
1385  /a+/I  /a+/I
1386  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1387  No options  No options
1388  First char = 'a'  First char = 'a'
1389  No need char  No need char
1390    
1391  /(baa|a+)/I  /(baa|a+)/I
1392  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1393  No options  No options
1394  No first char  No first char
1395  Need char = 'a'  Need char = 'a'
1396    
1397  /a{0,3}/I  /a{0,3}/I
1398  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1399  No options  No options
1400  No first char  No first char
1401  No need char  No need char
1402    
1403  /baa{3,}/I  /baa{3,}/I
1404  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1405  No options  No options
1406  First char = 'b'  First char = 'b'
1407  Need char = 'a'  Need char = 'a'
1408    
1409  /"([^\\"]+|\\.)*"/I  /"([^\\"]+|\\.)*"/I
1410  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1411  No options  No options
1412  First char = '"'  First char = '"'
1413  Need char = '"'  Need char = '"'
# Line 1487  Need char = 'b' Line 1462  Need char = 'b'
1462    
1463  /abc*/I  /abc*/I
1464  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1465  No options  No options
1466  First char = 'a'  First char = 'a'
1467  Need char = 'b'  Need char = 'b'
1468    
1469  /ab.c*/I  /ab.c*/I
1470  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1471  No options  No options
1472  First char = 'a'  First char = 'a'
1473  Need char = 'b'  Need char = 'b'
1474    
1475  /a.c*/I  /a.c*/I
1476  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1477  No options  No options
1478  First char = 'a'  First char = 'a'
1479  No need char  No need char
1480    
1481  /.c*/I  /.c*/I
1482  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1483  No options  No options
1484  No first char  No first char
1485  No need char  No need char
1486    
1487  /ac*/I  /ac*/I
1488  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1489  No options  No options
1490  First char = 'a'  First char = 'a'
1491  No need char  No need char
1492    
1493  /(a.c*|b.c*)/I  /(a.c*|b.c*)/I
1494  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1495  No options  No options
1496  No first char  No first char
1497  No need char  No need char
1498    
1499  /a.c*|aba/I  /a.c*|aba/I
1500  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1501  No options  No options
1502  First char = 'a'  First char = 'a'
1503  No need char  No need char
1504    
1505  /.+a/I  /.+a/I
1506  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1507  No options  No options
1508  No first char  No first char
1509  Need char = 'a'  Need char = 'a'
1510    
1511  /(?=abcda)a.*/I  /(?=abcda)a.*/I
1512  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1513  No options  No options
1514  First char = 'a'  First char = 'a'
1515  Need char = 'a'  Need char = 'a'
1516    
1517  /(?=a)a.*/I  /(?=a)a.*/I
1518  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1519  No options  No options
1520  First char = 'a'  First char = 'a'
1521  No need char  No need char
# Line 1563  No need char Line 1528  No need char
1528    
1529  /a\d*/I  /a\d*/I
1530  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1531  No options  No options
1532  First char = 'a'  First char = 'a'
1533  No need char  No need char
1534    
1535  /ab\d*/I  /ab\d*/I
1536  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1537  No options  No options
1538  First char = 'a'  First char = 'a'
1539  Need char = 'b'  Need char = 'b'
# Line 1589  Need char = 'd' Line 1552  Need char = 'd'
1552    
1553  /ab\d+/I  /ab\d+/I
1554  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1555  No options  No options
1556  First char = 'a'  First char = 'a'
1557  Need char = 'b'  Need char = 'b'
1558    
1559  /a(?(1)b)/I  /a(?(1)b)(.)/I
1560  Capturing subpattern count = 0  Capturing subpattern count = 1
1561  No options  No options
1562  First char = 'a'  First char = 'a'
1563  No need char  No need char
1564    
1565  /a(?(1)bag|big)/I  /a(?(1)bag|big)(.)/I
1566  Capturing subpattern count = 0  Capturing subpattern count = 1
1567  No options  No options
1568  First char = 'a'  First char = 'a'
1569  Need char = 'g'  Need char = 'g'
1570    
1571  /a(?(1)bag|big)*/I  /a(?(1)bag|big)*(.)/I
1572  Capturing subpattern count = 0  Capturing subpattern count = 1
1573  No options  No options
1574  First char = 'a'  First char = 'a'
1575  No need char  No need char
1576    
1577  /a(?(1)bag|big)+/I  /a(?(1)bag|big)+(.)/I
1578  Capturing subpattern count = 0  Capturing subpattern count = 1
1579  No options  No options
1580  First char = 'a'  First char = 'a'
1581  Need char = 'g'  Need char = 'g'
1582    
1583  /a(?(1)b..|b..)/I  /a(?(1)b..|b..)(.)/I
1584  Capturing subpattern count = 0  Capturing subpattern count = 1
1585  No options  No options
1586  First char = 'a'  First char = 'a'
1587  Need char = 'b'  Need char = 'b'
# Line 1664  No need char Line 1626  No need char
1626      \Nabc      \Nabc
1627  No match  No match
1628    
1629  /a*(b+)(z)(z)/IP  /a*(b+)(z)(z)/P
1630      aaaabbbbzzzz      aaaabbbbzzzz
1631   0: aaaabbbbzz   0: aaaabbbbzz
1632   1: bbbb   1: bbbb
# Line 1707  Study returned NULL Line 1669  Study returned NULL
1669    \)            # Closing )    \)            # Closing )
1670    /Ix    /Ix
1671  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1672  Options: extended  Options: extended
1673  First char = '('  First char = '('
1674  Need char = ')'  Need char = ')'
# Line 1736  No match Line 1697  No match
1697    
1698  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1699  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1700  Options: extended  Options: extended
1701  First char = '('  First char = '('
1702  Need char = ')'  Need char = ')'
# Line 1751  Need char = ')' Line 1711  Need char = ')'
1711    
1712  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1713  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1714  Options: extended  Options: extended
1715  First char = '('  First char = '('
1716  Need char = ')'  Need char = ')'
# Line 1770  No match Line 1729  No match
1729    
1730  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1731  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1732  Options: extended  Options: extended
1733  First char = '('  First char = '('
1734  Need char = ')'  Need char = ')'
# Line 1781  Need char = ')' Line 1739  Need char = ')'
1739    
1740  /\(  ( (?>[^()]+) | (?R) )* \) /Ix  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1741  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1742  Options: extended  Options: extended
1743  First char = '('  First char = '('
1744  Need char = ')'  Need char = ')'
# Line 1791  Need char = ')' Line 1748  Need char = ')'
1748    
1749  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1750  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
1751  Options: extended  Options: extended
1752  First char = '('  First char = '('
1753  Need char = ')'  Need char = ')'
# Line 1802  Need char = ')' Line 1758  Need char = ')'
1758    
1759  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1760  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1761  Options: extended  Options: extended
1762  First char = '('  First char = '('
1763  Need char = ')'  Need char = ')'
# Line 1819  Need char = ')' Line 1774  Need char = ')'
1774    
1775  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1776  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1777  Options: extended  Options: extended
1778  First char = '('  First char = '('
1779  Need char = ')'  Need char = ')'
# Line 1836  Need char = ')' Line 1790  Need char = ')'
1790    
1791  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1792  Capturing subpattern count = 11  Capturing subpattern count = 11
 Partial matching not supported  
1793  Options: extended  Options: extended
1794  First char = '('  First char = '('
1795  Need char = ')'  Need char = ')'
# Line 1856  Need char = ')' Line 1809  Need char = ')'
1809    
1810  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1811  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1812  Options: extended  Options: extended
1813  First char = '('  First char = '('
1814  Need char = ')'  Need char = ')'
# Line 1864  Need char = ')' Line 1816  Need char = ')'
1816   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1817   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1818   2: 123   2: 123
  3: <unset>  
1819    
1820  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1821  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1822  Options: extended  Options: extended
1823  First char = '('  First char = '('
1824  Need char = ')'  Need char = ')'
# Line 1900  No need char Line 1850  No need char
1850  ------------------------------------------------------------------  ------------------------------------------------------------------
1851          Bra          Bra
1852          ^          ^
1853          [\x00-/:-@[-`{-\xff]          [\x00-/:-@[-`{-\xff] (neg)
1854          Ket          Ket
1855          End          End
1856  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1926  No need char Line 1876  No need char
1876  ------------------------------------------------------------------  ------------------------------------------------------------------
1877          Bra          Bra
1878          ^          ^
1879          [\x00-@[-`{-\xff]          [\x00-@[-`{-\xff] (neg)
1880          Ket          Ket
1881          End          End
1882  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1960  No need char Line 1910  No need char
1910  ------------------------------------------------------------------  ------------------------------------------------------------------
1911          Bra          Bra
1912          ^          ^
1913          [\x80-\xff]          [\x80-\xff] (neg)
1914          Ket          Ket
1915          End          End
1916  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1986  No need char Line 1936  No need char
1936  ------------------------------------------------------------------  ------------------------------------------------------------------
1937          Bra          Bra
1938          ^          ^
1939          [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
1940          Ket          Ket
1941          End          End
1942  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1997  No need char Line 1947  No need char
1947    
1948  /[\n\x0b\x0c\x0d[:blank:]]/IS  /[\n\x0b\x0c\x0d[:blank:]]/IS
1949  Capturing subpattern count = 0  Capturing subpattern count = 0
1950    Contains explicit CR or LF match
1951  No options  No options
1952  No first char  No first char
1953  No need char  No need char
# Line 2136  No need char Line 2087  No need char
2087  ------------------------------------------------------------------  ------------------------------------------------------------------
2088          Bra          Bra
2089          ^          ^
2090          [ -~\x80-\xff]          [ -~\x80-\xff] (neg)
2091          Ket          Ket
2092          End          End
2093  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2149  No need char Line 2100  No need char
2100  ------------------------------------------------------------------  ------------------------------------------------------------------
2101          Bra          Bra
2102          ^          ^
2103          [\x00-/12:-\xff]          [\x00-/12:-\xff] (neg)
2104          Ket          Ket
2105          End          End
2106  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2162  No need char Line 2113  No need char
2113  ------------------------------------------------------------------  ------------------------------------------------------------------
2114          Bra          Bra
2115          ^          ^
2116          [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2117          Ket          Ket
2118          End          End
2119  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2246  Need char = 'd' Line 2197  Need char = 'd'
2197  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2198  Capturing subpattern count = 271  Capturing subpattern count = 271
2199  Max back reference = 270  Max back reference = 270
 Partial matching not supported  
2200  No options  No options
2201  No first char  No first char
2202  No need char  No need char
# Line 2730  No need char Line 2680  No need char
2680  /[\S]/DZ  /[\S]/DZ
2681  ------------------------------------------------------------------  ------------------------------------------------------------------
2682          Bra          Bra
2683          [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2684          Ket          Ket
2685          End          End
2686  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2927  Need char = 'c' Line 2877  Need char = 'c'
2877          End          End
2878  ------------------------------------------------------------------  ------------------------------------------------------------------
2879  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2880  No options  No options
2881  No first char  No first char
2882  No need char  No need char
# Line 2956  No need char Line 2905  No need char
2905          End          End
2906  ------------------------------------------------------------------  ------------------------------------------------------------------
2907  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2908  No options  No options
2909  First char = 'x'  First char = 'x'
2910  No need char  No need char
# Line 2972  No need char Line 2920  No need char
2920          End          End
2921  ------------------------------------------------------------------  ------------------------------------------------------------------
2922  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2923  No options  No options
2924  First char = 'x'  First char = 'x'
2925  No need char  No need char
# Line 2996  No need char Line 2943  No need char
2943    
2944  /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
2945  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2946  Options: anchored  Options: anchored
2947  No first char  No first char
2948  No need char  No need char
# Line 3010  No match Line 2956  No match
2956    
2957  /(\d++)(\w)/I  /(\d++)(\w)/I
2958  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
2959  No options  No options
2960  No first char  No first char
2961  No need char  No need char
# Line 3025  No match Line 2970  No match
2970    
2971  /a++b/I  /a++b/I
2972  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2973  No options  No options
2974  First char = 'a'  First char = 'a'
2975  Need char = 'b'  Need char = 'b'
# Line 3034  Need char = 'b' Line 2978  Need char = 'b'
2978    
2979  /(a++b)/I  /(a++b)/I
2980  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2981  No options  No options
2982  First char = 'a'  First char = 'a'
2983  Need char = 'b'  Need char = 'b'
# Line 3044  Need char = 'b' Line 2987  Need char = 'b'
2987    
2988  /(a++)b/I  /(a++)b/I
2989  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2990  No options  No options
2991  First char = 'a'  First char = 'a'
2992  Need char = 'b'  Need char = 'b'
# Line 3054  Need char = 'b' Line 2996  Need char = 'b'
2996    
2997  /([^()]++|\([^()]*\))+/I  /([^()]++|\([^()]*\))+/I
2998  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2999  No options  No options
3000  No first char  No first char
3001  No need char  No need char
# Line 3064  No need char Line 3005  No need char
3005    
3006  /\(([^()]++|\([^()]+\))+\)/I  /\(([^()]++|\([^()]+\))+\)/I
3007  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3008  No options  No options
3009  First char = '('  First char = '('
3010  Need char = ')'  Need char = ')'
# Line 3127  Failed: nothing to repeat at offset 7 Line 3067  Failed: nothing to repeat at offset 7
3067          End          End
3068  ------------------------------------------------------------------  ------------------------------------------------------------------
3069  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3070  No options  No options
3071  First char = 'x'  First char = 'x'
3072  Need char = 'b'  Need char = 'b'
# Line 3144  Need char = 'b' Line 3083  Need char = 'b'
3083          End          End
3084  ------------------------------------------------------------------  ------------------------------------------------------------------
3085  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3086  Options: ungreedy  Options: ungreedy
3087  First char = 'x'  First char = 'x'
3088  Need char = 'b'  Need char = 'b'
# Line 3173  Need char = 'b' Line 3111  Need char = 'b'
3111          End          End
3112  ------------------------------------------------------------------  ------------------------------------------------------------------
3113  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3114  Options: anchored  Options: anchored
3115  No first char  No first char
3116  No need char  No need char
# Line 3189  No need char Line 3126  No need char
3126          End          End
3127  ------------------------------------------------------------------  ------------------------------------------------------------------
3128  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3129  Options: anchored  Options: anchored
3130  No first char  No first char
3131  Need char = 'b'  Need char = 'b'
# Line 3207  Need char = 'b' Line 3143  Need char = 'b'
3143          End          End
3144  ------------------------------------------------------------------  ------------------------------------------------------------------
3145  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3146  Options: anchored  Options: anchored
3147  No first char  No first char
3148  Need char = 'b'  Need char = 'b'
# Line 3283  No need char Line 3218  No need char
3218    
3219  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3220  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3221  Options: extended  Options: extended
3222  First char = '<'  First char = '<'
3223  Need char = '>'  Need char = '>'
# Line 3333  Need char = 'X' Line 3267  Need char = 'X'
3267  /(.*)\d+\1/I  /(.*)\d+\1/I
3268  Capturing subpattern count = 1  Capturing subpattern count = 1
3269  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3270  No options  No options
3271  No first char  No first char
3272  No need char  No need char
3273    
3274  /(.*)\d+/I  /(.*)\d+/I
3275  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3276  No options  No options
3277  First char at start or follows newline  First char at start or follows newline
3278  No need char  No need char
# Line 3348  No need char Line 3280  No need char
3280  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3281  Capturing subpattern count = 1  Capturing subpattern count = 1
3282  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3283  Options: dotall  Options: dotall
3284  No first char  No first char
3285  No need char  No need char
3286    
3287  /(.*)\d+/Is  /(.*)\d+/Is
3288  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3289  Options: anchored dotall  Options: anchored dotall
3290  No first char  No first char
3291  No need char  No need char
# Line 3363  No need char Line 3293  No need char
3293  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3294  Capturing subpattern count = 2  Capturing subpattern count = 2
3295  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3296  No options  No options
3297  First char at start or follows newline  First char at start or follows newline
3298  Need char = 'z'  Need char = 'z'
# Line 3371  Need char = 'z' Line 3300  Need char = 'z'
3300  /((.*))\d+\1/I  /((.*))\d+\1/I
3301  Capturing subpattern count = 2  Capturing subpattern count = 2
3302  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3303  No options  No options
3304  No first char  No first char
3305  No need char  No need char
# Line 3388  Need char = 'b' Line 3316  Need char = 'b'
3316    
3317  /(?=a).*/I  /(?=a).*/I
3318  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3319  No options  No options
3320  First char = 'a'  First char = 'a'
3321  No need char  No need char
# Line 3435  No options Line 3362  No options
3362  No first char  No first char
3363  Need char = 'a'  Need char = 'a'
3364    
3365  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3366  Capturing subpattern count = 0  Capturing subpattern count = 1
3367  No options  No options
3368  First char = 'a'  First char = 'a'
3369  No need char  No need char
3370    
3371  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3372  Capturing subpattern count = 0  Capturing subpattern count = 1
3373  No options  No options
3374  First char = 'a'  First char = 'a'
3375  Need char = 'z'  Need char = 'z'
3376    
3377  /(?(1)abz)/I  /(?(1)abz)(.)/I
3378  Capturing subpattern count = 0  Capturing subpattern count = 1
3379  No options  No options
3380  No first char  No first char
3381  No need char  No need char
3382    
3383  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3384  Capturing subpattern count = 0  Capturing subpattern count = 1
3385  No options  No options
3386  No first char  No first char
3387  Need char = '3'  Need char = '3'
# Line 3710  No need char Line 3637  No need char
3637    
3638  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3639  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3640  No options  No options
3641  No first char  No first char
3642  No need char  No need char
# Line 3839  Callout 0: last capture = 1 Line 3765  Callout 0: last capture = 1
3765    
3766  /a(b+)(c*)(?C1)/I  /a(b+)(c*)(?C1)/I
3767  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3768  No options  No options
3769  First char = 'a'  First char = 'a'
3770  Need char = 'b'  Need char = 'b'
# Line 3865  No match Line 3790  No match
3790    
3791  /a(b+?)(c*?)(?C1)/I  /a(b+?)(c*?)(?C1)/I
3792  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3793  No options  No options
3794  First char = 'a'  First char = 'a'
3795  Need char = 'b'  Need char = 'b'
# Line 4025  No options Line 3949  No options
3949  First char = 'a'  First char = 'a'
3950  Need char = 'b'  Need char = 'b'
3951    
 /^\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  
   
3952  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3953  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3954  Options: anchored  Options: anchored
3955  No first char  No first char
3956  No need char  No need char
# Line 4102  No match Line 3991  No match
3991    
3992  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
3993  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3994  Options: extended  Options: extended
3995  First char = '<'  First char = '<'
3996  Need char = '>'  Need char = '>'
# Line 4276  Named capturing subpatterns: Line 4164  Named capturing subpatterns:
4164    one     1    one     1
4165    three   3    three   3
4166    two     2    two     2
 Partial matching not supported  
4167  Options: anchored caseless  Options: anchored caseless
4168  No first char  No first char
4169  No need char  No need char
# Line 4322  No need char Line 4209  No need char
4209    
4210  /(.*)a/Is  /(.*)a/Is
4211  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4212  Options: anchored dotall  Options: anchored dotall
4213  No first char  No first char
4214  Need char = 'a'  Need char = 'a'
# Line 4330  Need char = 'a' Line 4216  Need char = 'a'
4216  /(.*)a\1/Is  /(.*)a\1/Is
4217  Capturing subpattern count = 1  Capturing subpattern count = 1
4218  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4219  Options: dotall  Options: dotall
4220  No first char  No first char
4221  Need char = 'a'  Need char = 'a'
# Line 4338  Need char = 'a' Line 4223  Need char = 'a'
4223  /(.*)a(b)\2/Is  /(.*)a(b)\2/Is
4224  Capturing subpattern count = 2  Capturing subpattern count = 2
4225  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4226  Options: anchored dotall  Options: anchored dotall
4227  No first char  No first char
4228  Need char = 'b'  Need char = 'b'
4229    
4230  /((.*)a|(.*)b)z/Is  /((.*)a|(.*)b)z/Is
4231  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4232  Options: anchored dotall  Options: anchored dotall
4233  No first char  No first char
4234  Need char = 'z'  Need char = 'z'
# Line 4353  Need char = 'z' Line 4236  Need char = 'z'
4236  /((.*)a|(.*)b)z\1/Is  /((.*)a|(.*)b)z\1/Is
4237  Capturing subpattern count = 3  Capturing subpattern count = 3
4238  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4239  Options: dotall  Options: dotall
4240  No first char  No first char
4241  Need char = 'z'  Need char = 'z'
# Line 4361  Need char = 'z' Line 4243  Need char = 'z'
4243  /((.*)a|(.*)b)z\2/Is  /((.*)a|(.*)b)z\2/Is
4244  Capturing subpattern count = 3  Capturing subpattern count = 3
4245  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4246  Options: dotall  Options: dotall
4247  No first char  No first char
4248  Need char = 'z'  Need char = 'z'
# Line 4369  Need char = 'z' Line 4250  Need char = 'z'
4250  /((.*)a|(.*)b)z\3/Is  /((.*)a|(.*)b)z\3/Is
4251  Capturing subpattern count = 3  Capturing subpattern count = 3
4252  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4253  Options: dotall  Options: dotall
4254  No first char  No first char
4255  Need char = 'z'  Need char = 'z'
# Line 4377  Need char = 'z' Line 4257  Need char = 'z'
4257  /((.*)a|^(.*)b)z\3/Is  /((.*)a|^(.*)b)z\3/Is
4258  Capturing subpattern count = 3  Capturing subpattern count = 3
4259  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4260  Options: anchored dotall  Options: anchored dotall
4261  No first char  No first char
4262  Need char = 'z'  Need char = 'z'
4263    
4264  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4265  Capturing subpattern count = 31  Capturing subpattern count = 31
 Partial matching not supported  
4266  Options: anchored dotall  Options: anchored dotall
4267  No first char  No first char
4268  No need char  No need char
# Line 4392  No need char Line 4270  No need char
4270  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4271  Capturing subpattern count = 31  Capturing subpattern count = 31
4272  Max back reference = 31  Max back reference = 31
 Partial matching not supported  
4273  Options: dotall  Options: dotall
4274  No first char  No first char
4275  No need char  No need char
# Line 4400  No need char Line 4277  No need char
4277  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4278  Capturing subpattern count = 32  Capturing subpattern count = 32
4279  Max back reference = 32  Max back reference = 32
 Partial matching not supported  
4280  Options: dotall  Options: dotall
4281  No first char  No first char
4282  No need char  No need char
# Line 4467  Need char = 'c' Line 4343  Need char = 'c'
4343    
4344  /(a+)*zz/I  /(a+)*zz/I
4345  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4346  No options  No options
4347  No first char  No first char
4348  Need char = 'z'  Need char = 'z'
# Line 4604  Failed: two named subpatterns have the s Line 4479  Failed: two named subpatterns have the s
4479  Capturing subpattern count = 3  Capturing subpattern count = 3
4480  Named capturing subpatterns:  Named capturing subpatterns:
4481    elem   2    elem   2
 Partial matching not supported  
4482  No options  No options
4483  First char = '['  First char = '['
4484  Need char = ']'  Need char = ']'
# Line 4622  No match Line 4496  No match
4496  Capturing subpattern count = 3  Capturing subpattern count = 3
4497  Named capturing subpatterns:  Named capturing subpatterns:
4498    elem   2    elem   2
 Partial matching not supported  
4499  No options  No options
4500  First char = '['  First char = '['
4501  Need char = ']'  Need char = ']'
# Line 4729  No need char Line 4602  No need char
4602    
4603  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4604  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4605  Options: caseless  Options: caseless
4606  No first char  No first char
4607  Need char = 'g' (caseless)  Need char = 'g' (caseless)
# Line 4739  Need char = 'g' (caseless) Line 4611  Need char = 'g' (caseless)
4611    
4612  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4613  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4614  Options: caseless  Options: caseless
4615  No first char  No first char
4616  Need char = 'g' (caseless)  Need char = 'g' (caseless)
# Line 4758  Study returned NULL Line 4629  Study returned NULL
4629          End          End
4630  ------------------------------------------------------------------  ------------------------------------------------------------------
4631  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4632  No options  No options
4633  No first char  No first char
4634  Need char = 'b'  Need char = 'b'
# Line 4851  No match Line 4721  No match
4721          End          End
4722  ------------------------------------------------------------------  ------------------------------------------------------------------
4723  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4724  Options:  Options:
4725  No first char  No first char
4726  Need char = 'b'  Need char = 'b'
# Line 4896  Need char = 'b' Line 4765  Need char = 'b'
4765          End          End
4766  ------------------------------------------------------------------  ------------------------------------------------------------------
4767  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4768  Options:  Options:
4769  First char = 'a'  First char = 'a'
4770  Need char = 'b'  Need char = 'b'
# Line 5334  No match Line 5202  No match
5202          End          End
5203  ------------------------------------------------------------------  ------------------------------------------------------------------
5204  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
5205  Options:  Options:
5206  No first char  No first char
5207  Need char = '3'  Need char = '3'
# Line 5366  Need char = '3' Line 5233  Need char = '3'
5233    
5234  /\b.*/I  /\b.*/I
5235  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5236  No options  No options
5237  No first char  No first char
5238  No need char  No need char
# Line 5375  No need char Line 5241  No need char
5241    
5242  /\b.*/Is  /\b.*/Is
5243  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5244  Options: dotall  Options: dotall
5245  No first char  No first char
5246  No need char  No need char
# Line 5384  No need char Line 5249  No need char
5249    
5250  /(?!.bcd).*/I  /(?!.bcd).*/I
5251  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5252  No options  No options
5253  No first char  No first char
5254  No need char  No need char
# Line 5397  No options Line 5261  No options
5261  First char = 'a'  First char = 'a'
5262  Need char = 'e'  Need char = 'e'
5263      ab\P      ab\P
5264  Partial match  Partial match: ab
5265      abc\P      abc\P
5266  Partial match  Partial match: abc
5267      abcd\P      abcd\P
5268  Partial match  Partial match: abcd
5269      abcde\P      abcde\P
5270   0: abcde   0: abcde
5271      the quick brown abc\P      the quick brown abc\P
5272  Partial match  Partial match: abc
5273      ** Failers\P      ** Failers\P
5274  No match  No match
5275      the quick brown abxyz fox\P      the quick brown abxyz fox\P
# Line 5430  Need char = '/' Line 5294  Need char = '/'
5294   1: 02   1: 02
5295   2: 05   2: 05
5296      1\P      1\P
5297  Partial match  Partial match: 1
5298      1/2\P      1/2\P
5299  Partial match  Partial match: 1/2
5300      1/2/0\P      1/2/0\P
5301  Partial match  Partial match: 1/2/0
5302      1/2/04\P      1/2/04\P
5303   0: 1/2/04   0: 1/2/04
5304   1: 1   1: 1
5305   2: 2   2: 2
5306      0\P      0\P
5307  Partial match  Partial match: 0
5308      02/\P      02/\P
5309  Partial match  Partial match: 02/
5310      02/0\P      02/0\P
5311  Partial match  Partial match: 02/0
5312      02/1\P      02/1\P
5313  Partial match  Partial match: 02/1
5314      ** Failers\P      ** Failers\P
5315  No match  No match
5316      \P      \P
# Line 5468  No match Line 5332  No match
5332    
5333  /0{0,2}ABC/I  /0{0,2}ABC/I
5334  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5335  No options  No options
5336  No first char  No first char
5337  Need char = 'C'  Need char = 'C'
5338    
5339  /\d{3,}ABC/I  /\d{3,}ABC/I
5340  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5341  No options  No options
5342  No first char  No first char
5343  Need char = 'C'  Need char = 'C'
5344    
5345  /\d*ABC/I  /\d*ABC/I
5346  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5347  No options  No options
5348  No first char  No first char
5349  Need char = 'C'  Need char = 'C'
5350    
5351  /[abc]+DE/I  /[abc]+DE/I
5352  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5353  No options  No options
5354  No first char  No first char
5355  Need char = 'E'  Need char = 'E'
# Line 5502  Need char = '3' Line 5362  Need char = '3'
5362      123\P      123\P
5363   0: 123   0: 123
5364      a\P      a\P
5365  Partial match  Partial match: a
5366      b\P      b\P
5367  Partial match  Partial match: b
5368      c\P      c\P
5369  Partial match  Partial match: c
5370      c12\P      c12\P
5371  Partial match  Partial match: c12
5372      c123\P      c123\P
5373   0: c123   0: c123
5374    
# Line 5518  Options: anchored Line 5378  Options: anchored
5378  No first char  No first char
5379  Need char = 'X'  Need char = 'X'
5380      1\P      1\P
5381  Partial match  Partial match: 1
5382      123\P      123\P
5383  Partial match  Partial match: 123
5384      123X      123X
5385   0: 123X   0: 123X
5386      1234\P      1234\P
5387  Partial match  Partial match: 1234
5388      1234X      1234X
5389   0: 1234X   0: 1234X
5390      12345\P      12345\P
5391  Partial match  Partial match: 12345
5392      12345X      12345X
5393   0: 12345X   0: 12345X
5394      *** Failers      *** Failers
# Line 5613  No match Line 5473  No match
5473  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5474  Capturing subpattern count = 3  Capturing subpattern count = 3
5475  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
5476  Options: multiline dotall  Options: multiline dotall
5477  First char = '<'  First char = '<'
5478  Need char = '>'  Need char = '>'
# Line 5631  No need char Line 5490  No need char
5490    
5491  /line\nbreak/I  /line\nbreak/I
5492  Capturing subpattern count = 0  Capturing subpattern count = 0
5493    Contains explicit CR or LF match
5494  No options  No options
5495  First char = 'l'  First char = 'l'
5496  Need char = 'k'  Need char = 'k'
# Line 5641  Need char = 'k' Line 5501  Need char = 'k'
5501    
5502  /line\nbreak/If  /line\nbreak/If
5503  Capturing subpattern count = 0  Capturing subpattern count = 0
5504    Contains explicit CR or LF match
5505  Options: firstline  Options: firstline
5506  First char = 'l'  First char = 'l'
5507  Need char = 'k'  Need char = 'k'
# Line 5653  No match Line 5514  No match
5514    
5515  /line\nbreak/Imf  /line\nbreak/Imf
5516  Capturing subpattern count = 0  Capturing subpattern count = 0
5517    Contains explicit CR or LF match
5518  Options: multiline firstline  Options: multiline firstline
5519  First char = 'l'  First char = 'l'
5520  Need char = 'k'  Need char = 'k'
# Line 5663  No match Line 5525  No match
5525      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5526  No match  No match
5527    
5528  /ab.cd/IP  /ab.cd/P
5529      ab-cd      ab-cd
5530   0: ab-cd   0: ab-cd
5531      ab=cd      ab=cd
# Line 5673  No match: POSIX code 17: match failed Line 5535  No match: POSIX code 17: match failed
5535      ab\ncd      ab\ncd
5536  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
5537    
5538  /ab.cd/IPs  /ab.cd/Ps
5539      ab-cd      ab-cd
5540   0: ab-cd   0: ab-cd
5541      ab=cd      ab=cd
# Line 5917  Matched, but too many substrings Line 5779  Matched, but too many substrings
5779    
5780  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
5781  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5782  No options  No options
5783  No first char  No first char
5784  No need char  No need char
# Line 5930  No need char Line 5791  No need char
5791    
5792  /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
5793  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5794  No options  No options
5795  No first char  No first char
5796  No need char  No need char
# Line 5941  No need char Line 5801  No need char
5801    
5802  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
5803  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5804  No options  No options
5805  No first char  No first char
5806  No need char  No need char
# Line 5952  No need char Line 5811  No need char
5811    
5812  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
5813  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5814  No options  No options
5815  No first char  No first char
5816  No need char  No need char
# Line 5965  No need char Line 5823  No need char
5823    
5824  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
5825  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5826  No options  No options
5827  No first char  No first char
5828  No need char  No need char
# Line 5978  No need char Line 5835  No need char
5835      ((this))      ((this))
5836   0: ((this))   0: ((this))
5837    
5838  /a(b)c/IPN  /a(b)c/PN
5839      abc      abc
5840  Matched with REG_NOSUB  Matched with REG_NOSUB
5841    
5842  /a(?P<name>b)c/IPN  /a(?P<name>b)c/PN
5843      abc      abc
5844  Matched with REG_NOSUB  Matched with REG_NOSUB
5845    
# Line 6160  Named capturing subpatterns: Line 6017  Named capturing subpatterns:
6017    A   2    A   2
6018    A   3    A   3
6019  Options: anchored dupnames  Options: anchored dupnames
6020    Duplicate name status changes
6021  No first char  No first char
6022  No need char  No need char
6023      a1b\CA      a1b\CA
# Line 6306  Failed: octal value is greater than \377 Line 6164  Failed: octal value is greater than \377
6164    
6165  /\s*,\s*/IS  /\s*,\s*/IS
6166  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6167  No options  No options
6168  No first char  No first char
6169  Need char = ','  Need char = ','
# Line 6436  Unknown newline type at: <bad> Line 6293  Unknown newline type at: <bad>
6293    
6294  /.*/I<lf>  /.*/I<lf>
6295  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6296  Options:  Options:
6297  Forced newline sequence: LF  Forced newline sequence: LF
6298  First char at start or follows newline  First char at start or follows newline
# Line 6462  No need char Line 6318  No need char
6318    
6319  /\w+(.)(.)?def/Is  /\w+(.)(.)?def/Is
6320  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
6321  Options: dotall  Options: dotall
6322  No first char  No first char
6323  Need char = 'f'  Need char = 'f'
# Line 6479  Need char = 'f' Line 6334  Need char = 'f'
6334    
6335  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6336  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6337  No options  No options
6338  No first char  No first char
6339  No need char  No need char
# Line 6614  No need char Line 6468  No need char
6468    
6469  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
6470  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6471  No options  No options
6472  No first char  No first char
6473  No need char  No need char
# Line 6673  Starting byte set: a b c d Line 6526  Starting byte set: a b c d
6526          End          End
6527  ------------------------------------------------------------------  ------------------------------------------------------------------
6528  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6529  Options: anchored  Options: anchored
6530  No first char  No first char
6531  Need char = 'b'  Need char = 'b'
# Line 6689  Need char = 'b' Line 6541  Need char = 'b'
6541          End          End
6542  ------------------------------------------------------------------  ------------------------------------------------------------------
6543  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6544  Options: anchored  Options: anchored
6545  No first char  No first char
6546  Need char = 'b'  Need char = 'b'
# Line 6705  Need char = 'b' Line 6556  Need char = 'b'
6556          End          End
6557  ------------------------------------------------------------------  ------------------------------------------------------------------
6558  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6559  Options: anchored  Options: anchored
6560  No first char  No first char
6561  Need char = 'b'  Need char = 'b'
# Line 6721  Need char = 'b' Line 6571  Need char = 'b'
6571          End          End
6572  ------------------------------------------------------------------  ------------------------------------------------------------------
6573  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6574  Options: anchored  Options: anchored
6575  No first char  No first char
6576  Need char = 'A'  Need char = 'A'
# Line 6743  No match Line 6592  No match
6592          End          End
6593  ------------------------------------------------------------------  ------------------------------------------------------------------
6594  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6595  Options: anchored caseless  Options: anchored caseless
6596  No first char  No first char
6597  Need char = 'A' (caseless)  Need char = 'A' (caseless)
# Line 6754  Need char = 'A' (caseless) Line 6602  Need char = 'A' (caseless)
6602    
6603  /(a*|b*)[cd]/IS  /(a*|b*)[cd]/IS
6604  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6605  No options  No options
6606  No first char  No first char
6607  No need char  No need char
# Line 6762  Starting byte set: a b c d Line 6609  Starting byte set: a b c d
6609    
6610  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
6611  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6612  No options  No options
6613  No first char  No first char
6614  No need char  No need char
# Line 6770  Starting byte set: a b c d Line 6616  Starting byte set: a b c d
6616    
6617  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
6618  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6619  No options  No options
6620  No first char  No first char
6621  No need char  No need char
# Line 6778  Starting byte set: a b c d Line 6623  Starting byte set: a b c d
6623    
6624  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
6625  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6626  No options  No options
6627  No first char  No first char
6628  No need char  No need char
# Line 7653  Named capturing subpatterns: Line 7497  Named capturing subpatterns:
7497    one     1    one     1
7498    three   3    three   3
7499    two     2    two     2
 Partial matching not supported  
7500  Options: anchored caseless  Options: anchored caseless
7501  No first char  No first char
7502  No need char  No need char
# Line 7687  No match Line 7530  No match
7530  /(?=(\w+))\1:/I  /(?=(\w+))\1:/I
7531  Capturing subpattern count = 1  Capturing subpattern count = 1
7532  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
7533  No options  No options
7534  No first char  No first char
7535  Need char = ':'  Need char = ':'
# Line 7700  Capturing subpattern count = 1 Line 7542  Capturing subpattern count = 1
7542  Max back reference = 1  Max back reference = 1
7543  Named capturing subpatterns:  Named capturing subpatterns:
7544    abc   1    abc   1
 Partial matching not supported  
7545  No options  No options
7546  No first char  No first char
7547  Need char = ':'  Need char = ':'
# Line 7708  Need char = ':' Line 7549  Need char = ':'
7549   0: abcd:   0: abcd:
7550   1: abcd   1: abcd
7551    
 /(?'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  
   
7552  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7553      adaa      adaa
7554   0: adaa   0: adaa
# Line 7748  No match Line 7575  No match
7575      bddd      bddd
7576  No match  No match
7577    
 /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x  
     abd  
  0: abd  
  1: a  
     ce  
  0: ce  
   
7578  /(?(<bc))/  /(?(<bc))/
7579  Failed: malformed number or name after (?( at offset 6  Failed: malformed number or name after (?( at offset 6
7580    
# Line 7785  Failed: reference to non-existent subpat Line 7605  Failed: reference to non-existent subpat
7605   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7606   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7607    
 /^(?(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>  
   
7608  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7609  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7610    
# Line 7844  No match Line 7646  No match
7646  No match  No match
7647    
7648  /^abc./mgx<any>  /^abc./mgx<any>
7649      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
7650   0: abc1   0: abc1
7651   0: abc2   0: abc2
7652   0: abc3   0: abc3
# Line 7854  No match Line 7656  No match
7656   0: abc7   0: abc7
7657    
7658  /abc.$/mgx<any>  /abc.$/mgx<any>
7659      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
7660   0: abc1   0: abc1
7661   0: abc2   0: abc2
7662   0: abc3   0: abc3
# Line 7868  No match Line 7670  No match
7670  /a/<any><crlf>  /a/<any><crlf>
7671  Failed: inconsistent NEWLINE options at offset 0  Failed: inconsistent NEWLINE options at offset 0
7672    
7673  /^a\Rb/  /^a\Rb/<bsr_unicode>
7674      a\nb      a\nb
7675   0: a\x0ab   0: a\x0ab
7676      a\rb      a\rb
# Line 7886  No match Line 7688  No match
7688      a\n\rb      a\n\rb
7689  No match  No match
7690    
7691  /^a\R*b/  /^a\R*b/<bsr_unicode>
7692      ab      ab
7693   0: ab   0: ab
7694      a\nb      a\nb
# Line 7906  No match Line 7708  No match
7708      a\n\r\x85\x0cb      a\n\r\x85\x0cb
7709   0: a\x0a\x0d\x85\x0cb   0: a\x0a\x0d\x85\x0cb
7710    
7711  /^a\R+b/  /^a\R+b/<bsr_unicode>
7712      a\nb      a\nb
7713   0: a\x0ab   0: a\x0ab
7714      a\rb      a\rb
# Line 7928  No match Line 7730  No match
7730      ab      ab
7731  No match  No match
7732    
7733  /^a\R{1,3}b/  /^a\R{1,3}b/<bsr_unicode>
7734      a\nb      a\nb
7735   0: a\x0ab   0: a\x0ab
7736      a\n\rb      a\n\rb
# Line 7950  No match Line 7752  No match
7752      a\r      a\r
7753  No match  No match
7754    
7755  /^a[\R]b/  /^a[\R]b/<bsr_unicode>
7756      aRb      aRb
7757   0: aRb   0: aRb
7758      ** Failers      ** Failers
# Line 7980  Need char = 'P' Line 7782  Need char = 'P'
7782   0: PXP   0: PXP
7783   1: P   1: P
7784    
 /(?(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  
   
7785  /(?:a(?&abc)b)*(?<abc>x)/  /(?:a(?&abc)b)*(?<abc>x)/
7786      123axbaxbaxbx456      123axbaxbaxbx456
7787   0: axbaxbaxbx   0: axbaxbaxbx
# Line 8057  No match Line 7819  No match
7819     DEFabcABCXYZ     DEFabcABCXYZ
7820  No match  No match
7821    
 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/  
     ababababbbabZXXXX  
  0: ababababbbabZ  
  1: ab  
  2: b  
   
7822  /^(a)\g-2/  /^(a)\g-2/
7823  Failed: reference to non-existent subpattern at offset 4  Failed: reference to non-existent subpattern at offset 7
7824    
7825  /^(a)\g/  /^(a)\g/
7826  Failed: \g is not followed by a braced name or an optionally braced non-zero number at offset 4  Failed: a numbered reference must not be zero at offset 5
7827    
7828  /^(a)\g{0}/  /^(a)\g{0}/
7829  Failed: \g is not followed by a braced name or an optionally braced non-zero number at offset 4  Failed: a numbered reference must not be zero at offset 8
7830    
7831  /^(a)\g{3/  /^(a)\g{3/
7832  Failed: \g is not followed by a braced name or an optionally braced non-zero number at offset 4  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
7833    
7834  /^(a)\g{4a}/  /^(a)\g{4a}/
7835  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
# Line 8156  No match Line 7912  No match
7912   0+   0+
7913    
7914  /abc.$/mgx<anycrlf>  /abc.$/mgx<anycrlf>
7915      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
7916   0: abc1   0: abc1
7917   0: abc4   0: abc4
7918   0: abc5   0: abc5
# Line 8210  No match Line 7966  No match
7966  No match  No match
7967    
7968  /x(?-0)y/  /x(?-0)y/
7969  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
7970    
7971  /x(?-1)y/  /x(?-1)y/
7972  Failed: reference to non-existent subpattern at offset 5  Failed: reference to non-existent subpattern at offset 5
7973    
7974  /x(?+0)y/  /x(?+0)y/
7975  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
7976    
7977  /x(?+1)y/  /x(?+1)y/
7978  Failed: reference to non-existent subpattern at offset 5  Failed: reference to non-existent subpattern at offset 5
# Line 8298  Failed: reference to non-existent subpat Line 8054  Failed: reference to non-existent subpat
8054  /((?(-2)a))/BZ  /((?(-2)a))/BZ
8055  Failed: reference to non-existent subpattern at offset 7  Failed: reference to non-existent subpattern at offset 7
8056    
8057  /^(?(+1)X|Y)/BZ  /^(?(+1)X|Y)(.)/BZ
8058  ------------------------------------------------------------------  ------------------------------------------------------------------
8059          Bra          Bra
8060          ^          ^
# Line 8308  Failed: reference to non-existent subpat Line 8064  Failed: reference to non-existent subpat
8064          Alt          Alt
8065          Y          Y
8066          Ket          Ket
8067            CBra 1
8068            Any
8069            Ket
8070          Ket          Ket
8071          End          End
8072  ------------------------------------------------------------------  ------------------------------------------------------------------
8073      Y      Y!
8074   0: Y   0: Y!
8075     1: !
 /(foo)\Kbar/  
     foobar  
  0: bar  
  1: foo  
   
 /(foo)(\Kbar|baz)/  
     foobar  
  0: bar  
  1: foo  
  2: bar  
     foobaz  
  0: foobaz  
  1: foo  
  2: baz  
   
 /(foo\Kbar)baz/  
     foobarbaz  
  0: barbaz  
  1: foobar  
8076    
8077  /(?<A>tom|bon)-\k{A}/  /(?<A>tom|bon)-\k{A}/
8078      tom-tom      tom-tom
# Line 8346  No match Line 8086  No match
8086      tom-bon      tom-bon
8087  No match  No match
8088    
 /(?<A>tom|bon)-\g{A}/  
     tom-tom  
  0: tom-tom  
  1: tom  
     bon-bon  
  0: bon-bon  
  1: bon  
   
8089  /\g{A/  /\g{A/
8090  Failed: syntax error in subpattern name (missing terminator) at offset 4  Failed: syntax error in subpattern name (missing terminator) at offset 4
8091    
# Line 8448  Failed: syntax error in subpattern name Line 8180  Failed: syntax error in subpattern name
8180   3: <unset>   3: <unset>
8181   4: x   4: x
8182    
 /(?|(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  
   
8183  /[\h]/BZ  /[\h]/BZ
8184  ------------------------------------------------------------------  ------------------------------------------------------------------
8185          Bra          Bra
# Line 8796  Failed: missing terminating ] for charac Line 8452  Failed: missing terminating ] for charac
8452  /[\Q\E^]AAA/  /[\Q\E^]AAA/
8453  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
8454    
8455  / End of testinput2 /  /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
8456    ------------------------------------------------------------------
8457            Bra
8458            A
8459            *PRUNE
8460            B
8461            *SKIP
8462            C
8463            *THEN
8464            D
8465            *COMMIT
8466            E
8467            *FAIL
8468            F
8469            *FAIL
8470            G
8471            *FAIL
8472            H
8473            *ACCEPT
8474            I
8475            Ket
8476            End
8477    ------------------------------------------------------------------
8478    
8479    /^a+(*FAIL)/C
8480        aaaaaa
8481    --->aaaaaa
8482     +0 ^          ^
8483     +1 ^          a+
8484     +3 ^     ^    (*FAIL)
8485     +3 ^    ^     (*FAIL)
8486     +3 ^   ^      (*FAIL)
8487     +3 ^  ^       (*FAIL)
8488     +3 ^ ^        (*FAIL)
8489     +3 ^^         (*FAIL)
8490    No match
8491    
8492    /a+b?c+(*FAIL)/C
8493        aaabccc
8494    --->aaabccc
8495     +0 ^           a+
8496     +2 ^  ^        b?
8497     +4 ^   ^       c+
8498     +6 ^      ^    (*FAIL)
8499     +6 ^     ^     (*FAIL)
8500     +6 ^    ^      (*FAIL)
8501     +4 ^  ^        c+
8502     +2 ^ ^         b?
8503     +4 ^ ^         c+
8504     +2 ^^          b?
8505     +4 ^^          c+
8506     +0  ^          a+
8507     +2  ^ ^        b?
8508     +4  ^  ^       c+
8509     +6  ^     ^    (*FAIL)
8510     +6  ^    ^     (*FAIL)
8511     +6  ^   ^      (*FAIL)
8512     +4  ^ ^        c+
8513     +2  ^^         b?
8514     +4  ^^         c+
8515     +0   ^         a+
8516     +2   ^^        b?
8517     +4   ^ ^       c+
8518     +6   ^    ^    (*FAIL)
8519     +6   ^   ^     (*FAIL)
8520     +6   ^  ^      (*FAIL)
8521     +4   ^^        c+
8522    No match
8523    
8524    /a+b?(*PRUNE)c+(*FAIL)/C
8525        aaabccc
8526    --->aaabccc
8527     +0 ^           a+
8528     +2 ^  ^        b?
8529     +4 ^   ^       (*PRUNE)
8530    +12 ^   ^       c+
8531    +14 ^      ^    (*FAIL)
8532    +14 ^     ^     (*FAIL)
8533    +14 ^    ^      (*FAIL)
8534     +0  ^          a+
8535     +2  ^ ^        b?
8536     +4  ^  ^       (*PRUNE)
8537    +12  ^  ^       c+
8538    +14  ^     ^    (*FAIL)
8539    +14  ^    ^     (*FAIL)
8540    +14  ^   ^      (*FAIL)
8541     +0   ^         a+
8542     +2   ^^        b?
8543     +4   ^ ^       (*PRUNE)
8544    +12   ^ ^       c+
8545    +14   ^    ^    (*FAIL)
8546    +14   ^   ^     (*FAIL)
8547    +14   ^  ^      (*FAIL)
8548    No match
8549    
8550    /a+b?(*COMMIT)c+(*FAIL)/C
8551        aaabccc
8552    --->aaabccc
8553     +0 ^           a+
8554     +2 ^  ^        b?
8555     +4 ^   ^       (*COMMIT)
8556    +13 ^   ^       c+
8557    +15 ^      ^    (*FAIL)
8558    +15 ^     ^     (*FAIL)
8559    +15 ^    ^      (*FAIL)
8560    No match
8561    
8562    /a+b?(*SKIP)c+(*FAIL)/C
8563        aaabcccaaabccc
8564    --->aaabcccaaabccc
8565     +0 ^                  a+
8566     +2 ^  ^               b?
8567     +4 ^   ^              (*SKIP)
8568    +11 ^   ^              c+
8569    +13 ^      ^           (*FAIL)
8570    +13 ^     ^            (*FAIL)
8571    +13 ^    ^             (*FAIL)
8572     +0        ^           a+
8573     +2        ^  ^        b?
8574     +4        ^   ^       (*SKIP)
8575    +11        ^   ^       c+
8576    +13        ^      ^    (*FAIL)
8577    +13        ^     ^     (*FAIL)
8578    +13        ^    ^      (*FAIL)
8579    No match
8580    
8581    /a+b?(*THEN)c+(*FAIL)/C
8582        aaabccc
8583    --->aaabccc
8584     +0 ^           a+
8585     +2 ^  ^        b?
8586     +4 ^   ^       (*THEN)
8587    +11 ^   ^       c+
8588    +13 ^      ^    (*FAIL)
8589    +13 ^     ^     (*FAIL)
8590    +13 ^    ^      (*FAIL)
8591     +0  ^          a+
8592     +2  ^ ^        b?
8593     +4  ^  ^       (*THEN)
8594    +11  ^  ^       c+
8595    +13  ^     ^    (*FAIL)
8596    +13  ^    ^     (*FAIL)
8597    +13  ^   ^      (*FAIL)
8598     +0   ^         a+
8599     +2   ^^        b?
8600     +4   ^ ^       (*THEN)
8601    +11   ^ ^       c+
8602    +13   ^    ^    (*FAIL)
8603    +13   ^   ^     (*FAIL)
8604    +13   ^  ^      (*FAIL)
8605    No match
8606    
8607    /a(*PRUNE:XXX)b/
8608    Failed: (*VERB) with an argument is not supported at offset 8
8609    
8610    /a(*MARK)b/
8611    Failed: (*VERB) not recognized at offset 7
8612    
8613    /(?i:A{1,}\6666666666)/
8614    Failed: number is too big at offset 19
8615    
8616    /\g6666666666/
8617    Failed: number is too big at offset 11
8618    
8619    /[\g6666666666]/
8620    Failed: number is too big at offset 12
8621    
8622    /(?1)\c[/
8623    Failed: reference to non-existent subpattern at offset 3
8624    
8625    /.+A/<crlf>
8626        \r\nA
8627    No match
8628    
8629    /\nA/<crlf>
8630        \r\nA
8631     0: \x0aA
8632    
8633    /[\r\n]A/<crlf>
8634        \r\nA
8635     0: \x0aA
8636    
8637    /(\r|\n)A/<crlf>
8638        \r\nA
8639     0: \x0aA
8640     1: \x0a
8641    
8642    /a(*CR)b/
8643    Failed: (*VERB) not recognized at offset 5
8644    
8645    /(*CR)a.b/
8646        a\nb
8647     0: a\x0ab
8648        ** Failers
8649    No match
8650        a\rb
8651    No match
8652    
8653    /(*CR)a.b/<lf>
8654        a\nb
8655     0: a\x0ab
8656        ** Failers
8657    No match
8658        a\rb
8659    No match
8660    
8661    /(*LF)a.b/<CRLF>
8662        a\rb
8663     0: a\x0db
8664        ** Failers
8665    No match
8666        a\nb
8667    No match
8668    
8669    /(*CRLF)a.b/
8670        a\rb
8671     0: a\x0db
8672        a\nb
8673     0: a\x0ab
8674        ** Failers
8675    No match
8676        a\r\nb
8677    No match
8678    
8679    /(*ANYCRLF)a.b/<CR>
8680        ** Failers
8681    No match
8682        a\rb
8683    No match
8684        a\nb
8685    No match
8686        a\r\nb
8687    No match
8688    
8689    /(*ANY)a.b/<cr>
8690        ** Failers
8691    No match
8692        a\rb
8693    No match
8694        a\nb
8695    No match
8696        a\r\nb
8697    No match
8698        a\x85b
8699    No match
8700    
8701    /a\Rb/I<bsr_anycrlf>
8702    Capturing subpattern count = 0
8703    Options: bsr_anycrlf
8704    First char = 'a'
8705    Need char = 'b'
8706        a\rb
8707     0: a\x0db
8708        a\nb
8709     0: a\x0ab
8710        a\r\nb
8711     0: a\x0d\x0ab
8712        ** Failers
8713    No match
8714        a\x85b
8715    No match
8716        a\x0bb
8717    No match
8718    
8719    /a\Rb/I<bsr_unicode>
8720    Capturing subpattern count = 0
8721    Options: bsr_unicode
8722    First char = 'a'
8723    Need char = 'b'
8724        a\rb
8725     0: a\x0db
8726        a\nb
8727     0: a\x0ab
8728        a\r\nb
8729     0: a\x0d\x0ab
8730        a\x85b
8731     0: a\x85b
8732        a\x0bb
8733     0: a\x0bb
8734        ** Failers
8735    No match
8736        a\x85b\<bsr_anycrlf>
8737    No match
8738        a\x0bb\<bsr_anycrlf>
8739    No match
8740    
8741    /a\R?b/I<bsr_anycrlf>
8742    Capturing subpattern count = 0
8743    Options: bsr_anycrlf
8744    First char = 'a'
8745    Need char = 'b'
8746        a\rb
8747     0: a\x0db
8748        a\nb
8749     0: a\x0ab
8750        a\r\nb
8751     0: a\x0d\x0ab
8752        ** Failers
8753    No match
8754        a\x85b
8755    No match
8756        a\x0bb
8757    No match
8758    
8759    /a\R?b/I<bsr_unicode>
8760    Capturing subpattern count = 0
8761    Options: bsr_unicode
8762    First char = 'a'
8763    Need char = 'b'
8764        a\rb
8765     0: a\x0db
8766        a\nb
8767     0: a\x0ab
8768        a\r\nb
8769     0: a\x0d\x0ab
8770        a\x85b
8771     0: a\x85b
8772        a\x0bb
8773     0: a\x0bb
8774        ** Failers
8775    No match
8776        a\x85b\<bsr_anycrlf>
8777    No match
8778        a\x0bb\<bsr_anycrlf>
8779    No match
8780    
8781    /a\R{2,4}b/I<bsr_anycrlf>
8782    Capturing subpattern count = 0
8783    Options: bsr_anycrlf
8784    First char = 'a'
8785    Need char = 'b'
8786        a\r\n\nb
8787     0: a\x0d\x0a\x0ab
8788        a\n\r\rb
8789     0: a\x0a\x0d\x0db
8790        a\r\n\r\n\r\n\r\nb
8791     0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
8792        ** Failers
8793    No match
8794        a\x85\85b
8795    No match
8796        a\x0b\0bb
8797    No match
8798    
8799    /a\R{2,4}b/I<bsr_unicode>
8800    Capturing subpattern count = 0
8801    Options: bsr_unicode
8802    First char = 'a'
8803    Need char = 'b'
8804        a\r\rb
8805     0: a\x0d\x0db
8806        a\n\n\nb
8807     0: a\x0a\x0a\x0ab
8808        a\r\n\n\r\rb
8809     0: a\x0d\x0a\x0a\x0d\x0db
8810        a\x85\85b
8811    No match
8812        a\x0b\0bb
8813    No match
8814        ** Failers
8815    No match
8816        a\r\r\r\r\rb
8817    No match
8818        a\x85\85b\<bsr_anycrlf>
8819    No match
8820        a\x0b\0bb\<bsr_anycrlf>
8821    No match
8822    
8823    /(*BSR_ANYCRLF)a\Rb/I
8824    Capturing subpattern count = 0
8825    Options: bsr_anycrlf
8826    First char = 'a'
8827    Need char = 'b'
8828        a\nb
8829     0: a\x0ab
8830        a\rb
8831     0: a\x0db
8832    
8833    /(*BSR_UNICODE)a\Rb/I
8834    Capturing subpattern count = 0
8835    Options: bsr_unicode
8836    First char = 'a'
8837    Need char = 'b'
8838        a\x85b
8839     0: a\x85b
8840    
8841    /(*BSR_ANYCRLF)(*CRLF)a\Rb/I
8842    Capturing subpattern count = 0
8843    Options: bsr_anycrlf
8844    Forced newline sequence: CRLF
8845    First char = 'a'
8846    Need char = 'b'
8847        a\nb
8848     0: a\x0ab
8849        a\rb
8850     0: a\x0db
8851    
8852    /(*CRLF)(*BSR_UNICODE)a\Rb/I
8853    Capturing subpattern count = 0
8854    Options: bsr_unicode
8855    Forced newline sequence: CRLF
8856    First char = 'a'
8857    Need char = 'b'
8858        a\x85b
8859     0: a\x85b
8860    
8861    /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
8862    Capturing subpattern count = 0
8863    Options: bsr_anycrlf
8864    Forced newline sequence: CR
8865    First char = 'a'
8866    Need char = 'b'
8867    
8868    /(?<a>)(?&)/
8869    Failed: subpattern name expected at offset 9
8870    
8871    /(?<abc>)(?&a)/
8872    Failed: reference to non-existent subpattern at offset 12
8873    
8874    /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
8875    Failed: reference to non-existent subpattern at offset 32
8876    
8877    /(?+-a)/
8878    Failed: digit expected after (?+ at offset 3
8879    
8880    /(?-+a)/
8881    Failed: unrecognized character after (? or (?- at offset 3
8882    
8883    /(?(-1))/
8884    Failed: reference to non-existent subpattern at offset 6
8885    
8886    /(?(+10))/
8887    Failed: reference to non-existent subpattern at offset 7
8888    
8889    /(?(10))/
8890    Failed: reference to non-existent subpattern at offset 6
8891    
8892    /(?(+2))()()/
8893    
8894    /(?(2))()()/
8895    
8896    /\k''/
8897    Failed: subpattern name expected at offset 3
8898    
8899    /\k<>/
8900    Failed: subpattern name expected at offset 3
8901    
8902    /\k{}/
8903    Failed: subpattern name expected at offset 3
8904    
8905    /(?P=)/
8906    Failed: subpattern name expected at offset 4
8907    
8908    /(?P>)/
8909    Failed: subpattern name expected at offset 4
8910    
8911    /(?!\w)(?R)/
8912    Failed: recursive call could loop indefinitely at offset 9
8913    
8914    /(?=\w)(?R)/
8915    Failed: recursive call could loop indefinitely at offset 9
8916    
8917    /(?<!\w)(?R)/
8918    Failed: recursive call could loop indefinitely at offset 10
8919    
8920    /(?<=\w)(?R)/
8921    Failed: recursive call could loop indefinitely at offset 10
8922    
8923    /[[:foo:]]/
8924    Failed: unknown POSIX class name at offset 3
8925    
8926    /[[:1234:]]/
8927    Failed: unknown POSIX class name at offset 3
8928    
8929    /[[:f\oo:]]/
8930    Failed: unknown POSIX class name at offset 3
8931    
8932    /[[: :]]/
8933    Failed: unknown POSIX class name at offset 3
8934    
8935    /[[:...:]]/
8936    Failed: unknown POSIX class name at offset 3
8937    
8938    /[[:l\ower:]]/
8939    Failed: unknown POSIX class name at offset 3
8940    
8941    /[[:abc\:]]/
8942    Failed: unknown POSIX class name at offset 3
8943    
8944    /[abc[:x\]pqr:]]/
8945    Failed: unknown POSIX class name at offset 6
8946    
8947    /[[:a\dz:]]/
8948    Failed: unknown POSIX class name at offset 3
8949    
8950    /(^(a|b\g<-1'c))/
8951    Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
8952    
8953    /^(?+1)(?<a>x|y){0}z/
8954        xzxx
8955     0: xz
8956        yzyy
8957     0: yz
8958        ** Failers
8959    No match
8960        xxz
8961    No match
8962    
8963    /(\3)(\1)(a)/
8964        cat
8965    No match
8966    
8967    /(\3)(\1)(a)/<JS>
8968        cat
8969     0: a
8970     1:
8971     2:
8972     3: a
8973    
8974    /TA]/
8975        The ACTA] comes
8976     0: TA]
8977    
8978    /TA]/<JS>
8979    Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
8980    
8981    /(?2)[]a()b](abc)/
8982    Failed: reference to non-existent subpattern at offset 3
8983    
8984    /(?2)[^]a()b](abc)/
8985    Failed: reference to non-existent subpattern at offset 3
8986    
8987    /(?1)[]a()b](abc)/
8988        abcbabc
8989     0: abcbabc
8990     1: abc
8991        ** Failers
8992    No match
8993        abcXabc
8994    No match
8995    
8996    /(?1)[^]a()b](abc)/
8997        abcXabc
8998     0: abcXabc
8999     1: abc
9000        ** Failers
9001    No match
9002        abcbabc
9003    No match
9004    
9005    /(?2)[]a()b](abc)(xyz)/
9006        xyzbabcxyz
9007     0: xyzbabcxyz
9008     1: abc
9009     2: xyz
9010    
9011    /(?&N)[]a(?<N>)](?<M>abc)/
9012    Failed: reference to non-existent subpattern at offset 4
9013    
9014    /(?&N)[]a(?<N>)](abc)/
9015    Failed: reference to non-existent subpattern at offset 4
9016    
9017    /a[]b/
9018    Failed: missing terminating ] for character class at offset 4
9019    
9020    /a[^]b/
9021    Failed: missing terminating ] for character class at offset 5
9022    
9023    /a[]b/<JS>
9024        ** Failers
9025    No match
9026        ab
9027    No match
9028    
9029    /a[]+b/<JS>
9030        ** Failers
9031    No match
9032        ab
9033    No match
9034    
9035    /a[]*+b/<JS>
9036        ** Failers
9037    No match
9038        ab
9039    No match
9040    
9041    /a[^]b/<JS>
9042        aXb
9043     0: aXb
9044        a\nb
9045     0: a\x0ab
9046        ** Failers
9047    No match
9048        ab
9049    No match
9050    
9051    /a[^]+b/<JS>
9052        aXb
9053     0: aXb
9054        a\nX\nXb
9055     0: a\x0aX\x0aXb
9056        ** Failers
9057    No match
9058        ab
9059    No match
9060    
9061    /a(?!)+b/
9062    Failed: nothing to repeat at offset 5
9063    
9064    /a(*FAIL)+b/
9065    Failed: nothing to repeat at offset 8
9066    
9067    /(abc|pqr|123){0}[xyz]/SI
9068    Capturing subpattern count = 1
9069    No options
9070    No first char
9071    No need char
9072    Starting byte set: x y z
9073    
9074    /(?(?=.*b)b|^)/CI
9075    Capturing subpattern count = 0
9076    Options:
9077    No first char
9078    No need char
9079       adc
9080    --->adc
9081     +0 ^       (?(?=.*b)b|^)
9082     +2 ^       (?=.*b)
9083     +5 ^       .*
9084     +7 ^  ^    b
9085     +7 ^ ^     b
9086     +7 ^^      b
9087     +7 ^       b
9088    +12 ^       )
9089    +13 ^
9090     0:
9091       abc
9092    --->abc
9093     +0 ^       (?(?=.*b)b|^)
9094     +2 ^       (?=.*b)
9095     +5 ^       .*
9096     +7 ^  ^    b
9097     +7 ^ ^     b
9098     +7 ^^      b
9099     +8 ^ ^     )
9100     +9 ^       b
9101     +0  ^      (?(?=.*b)b|^)
9102     +2  ^      (?=.*b)
9103     +5  ^      .*
9104     +7  ^ ^    b
9105     +7  ^^     b
9106     +7  ^      b
9107     +8  ^^     )
9108     +9  ^      b
9109    +10  ^^     |
9110    +13  ^^
9111     0: b
9112    
9113    /(?(?=b).*b|^d)/I
9114    Capturing subpattern count = 0
9115    No options
9116    No first char
9117    No need char
9118    
9119    /(?(?=.*b).*b|^d)/I
9120    Capturing subpattern count = 0
9121    No options
9122    First char at start or follows newline
9123    No need char
9124    
9125    /a?|b?/P
9126        abc
9127     0: a
9128        ** Failers
9129     0:
9130        ddd\N
9131    No match: POSIX code 17: match failed
9132    
9133    /xyz/C
9134      xyz
9135    --->xyz
9136     +0 ^       x
9137     +1 ^^      y
9138     +2 ^ ^     z
9139     +3 ^  ^
9140     0: xyz
9141      abcxyz
9142    --->abcxyz
9143     +0    ^       x
9144     +1    ^^      y
9145     +2    ^ ^     z
9146     +3    ^  ^
9147     0: xyz
9148      abcxyz\Y
9149    --->abcxyz
9150     +0 ^          x
9151     +0  ^         x
9152     +0   ^        x
9153     +0    ^       x
9154     +1    ^^      y
9155     +2    ^ ^     z
9156     +3    ^  ^
9157     0: xyz
9158      ** Failers
9159    No match
9160      abc
9161    No match
9162      abc\Y
9163    --->abc
9164     +0 ^       x
9165     +0  ^      x
9166     +0   ^     x
9167     +0    ^    x
9168    No match
9169      abcxypqr
9170    No match
9171      abcxypqr\Y
9172    --->abcxypqr
9173     +0 ^            x
9174     +0  ^           x
9175     +0   ^          x
9176     +0    ^         x
9177     +1    ^^        y
9178     +2    ^ ^       z
9179     +0     ^        x
9180     +0      ^       x
9181     +0       ^      x
9182     +0        ^     x
9183     +0         ^    x
9184    No match
9185    
9186    /^"((?(?=[a])[^"])|b)*"$/C
9187        "ab"
9188    --->"ab"
9189     +0 ^        ^
9190     +1 ^        "
9191     +2 ^^       ((?(?=[a])[^"])|b)*
9192     +3 ^^       (?(?=[a])[^"])
9193     +5 ^^       (?=[a])
9194     +8 ^^       [a]
9195    +11 ^ ^      )
9196    +12 ^^       [^"]
9197    +16 ^ ^      )
9198    +17 ^ ^      |
9199     +3 ^ ^      (?(?=[a])[^"])
9200     +5 ^ ^      (?=[a])
9201     +8 ^ ^      [a]
9202    +21 ^ ^      "
9203    +18 ^ ^      b
9204    +19 ^  ^     )
9205     +3 ^  ^     (?(?=[a])[^"])
9206     +5 ^  ^     (?=[a])
9207     +8 ^  ^     [a]
9208    +21 ^  ^     "
9209    +22 ^   ^    $
9210    +23 ^   ^
9211     0: "ab"
9212     1:
9213    
9214    /^"((?(?=[a])[^"])|b)*"$/
9215        "ab"
9216     0: "ab"
9217     1:
9218    
9219    /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9220    Failed: reference to non-existent subpattern at offset 5
9221    
9222    /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9223        XYabcdY
9224     0: XYabcdY
9225     1: a
9226     2: b
9227     3: c
9228     4: d
9229     5: Y
9230    
9231    /Xa{2,4}b/
9232        X\P
9233    Partial match: X
9234        Xa\P
9235    Partial match: Xa
9236        Xaa\P
9237    Partial match: Xaa
9238        Xaaa\P
9239    Partial match: Xaaa
9240        Xaaaa\P
9241    Partial match: Xaaaa
9242    
9243    /Xa{2,4}?b/
9244        X\P
9245    Partial match: X
9246        Xa\P
9247    Partial match: Xa
9248        Xaa\P
9249    Partial match: Xaa
9250        Xaaa\P
9251    Partial match: Xaaa
9252        Xaaaa\P
9253    Partial match: Xaaaa
9254    
9255    /Xa{2,4}+b/
9256        X\P
9257    Partial match: X
9258        Xa\P
9259    Partial match: Xa
9260        Xaa\P
9261    Partial match: Xaa
9262        Xaaa\P
9263    Partial match: Xaaa
9264        Xaaaa\P
9265    Partial match: Xaaaa
9266    
9267    /X\d{2,4}b/
9268        X\P
9269    Partial match: X
9270        X3\P
9271    Partial match: X3
9272        X33\P
9273    Partial match: X33
9274        X333\P
9275    Partial match: X333
9276        X3333\P
9277    Partial match: X3333
9278    
9279    /X\d{2,4}?b/
9280        X\P
9281    Partial match: X
9282        X3\P
9283    Partial match: X3
9284        X33\P
9285    Partial match: X33
9286        X333\P
9287    Partial match: X333
9288        X3333\P
9289    Partial match: X3333
9290    
9291    /X\d{2,4}+b/
9292        X\P
9293    Partial match: X
9294        X3\P
9295    Partial match: X3
9296        X33\P
9297    Partial match: X33
9298        X333\P
9299    Partial match: X333
9300        X3333\P
9301    Partial match: X3333
9302    
9303    /X\D{2,4}b/
9304        X\P
9305    Partial match: X
9306        Xa\P
9307    Partial match: Xa
9308        Xaa\P
9309    Partial match: Xaa
9310        Xaaa\P
9311    Partial match: Xaaa
9312        Xaaaa\P
9313    Partial match: Xaaaa
9314    
9315    /X\D{2,4}?b/
9316        X\P
9317    Partial match: X
9318        Xa\P
9319    Partial match: Xa
9320        Xaa\P
9321    Partial match: Xaa
9322        Xaaa\P
9323    Partial match: Xaaa
9324        Xaaaa\P
9325    Partial match: Xaaaa
9326    
9327    /X\D{2,4}+b/
9328        X\P
9329    Partial match: X
9330        Xa\P
9331    Partial match: Xa
9332        Xaa\P
9333    Partial match: Xaa
9334        Xaaa\P
9335    Partial match: Xaaa
9336        Xaaaa\P
9337    Partial match: Xaaaa
9338    
9339    /X[abc]{2,4}b/
9340        X\P
9341    Partial match: X
9342        Xa\P
9343    Partial match: Xa
9344        Xaa\P
9345    Partial match: Xaa
9346        Xaaa\P
9347    Partial match: Xaaa
9348        Xaaaa\P
9349    Partial match: Xaaaa
9350    
9351    /X[abc]{2,4}?b/
9352        X\P
9353    Partial match: X
9354        Xa\P
9355    Partial match: Xa
9356        Xaa\P
9357    Partial match: Xaa
9358        Xaaa\P
9359    Partial match: Xaaa
9360        Xaaaa\P
9361    Partial match: Xaaaa
9362    
9363    /X[abc]{2,4}+b/
9364        X\P
9365    Partial match: X
9366        Xa\P
9367    Partial match: Xa
9368        Xaa\P
9369    Partial match: Xaa
9370        Xaaa\P
9371    Partial match: Xaaa
9372        Xaaaa\P
9373    Partial match: Xaaaa
9374    
9375    /X[^a]{2,4}b/
9376        X\P
9377    Partial match: X
9378        Xz\P
9379    Partial match: Xz
9380        Xzz\P
9381    Partial match: Xzz
9382        Xzzz\P
9383    Partial match: Xzzz
9384        Xzzzz\P
9385    Partial match: Xzzzz
9386    
9387    /X[^a]{2,4}?b/
9388        X\P
9389    Partial match: X
9390        Xz\P
9391    Partial match: Xz
9392        Xzz\P
9393    Partial match: Xzz
9394        Xzzz\P
9395    Partial match: Xzzz
9396        Xzzzz\P
9397    Partial match: Xzzzz
9398    
9399    /X[^a]{2,4}+b/
9400        X\P
9401    Partial match: X
9402        Xz\P
9403    Partial match: Xz
9404        Xzz\P
9405    Partial match: Xzz
9406        Xzzz\P
9407    Partial match: Xzzz
9408        Xzzzz\P
9409    Partial match: Xzzzz
9410    
9411    /(Y)X\1{2,4}b/
9412        YX\P
9413    Partial match: YX
9414        YXY\P
9415    Partial match: YXY
9416        YXYY\P
9417    Partial match: YXYY
9418        YXYYY\P
9419    Partial match: YXYYY
9420        YXYYYY\P
9421    Partial match: YXYYYY
9422    
9423    /(Y)X\1{2,4}?b/
9424        YX\P
9425    Partial match: YX
9426        YXY\P
9427    Partial match: YXY
9428        YXYY\P
9429    Partial match: YXYY
9430        YXYYY\P
9431    Partial match: YXYYY
9432        YXYYYY\P
9433    Partial match: YXYYYY
9434    
9435    /(Y)X\1{2,4}+b/
9436        YX\P
9437    Partial match: YX
9438        YXY\P
9439    Partial match: YXY
9440        YXYY\P
9441    Partial match: YXYY
9442        YXYYY\P
9443    Partial match: YXYYY
9444        YXYYYY\P
9445    Partial match: YXYYYY
9446    
9447    /\++\KZ|\d+X|9+Y/
9448        ++++123999\P
9449    Partial match: 123999
9450        ++++123999Y\P
9451     0: 999Y
9452        ++++Z1234\P
9453     0: Z
9454    
9455    /Z(*F)/
9456        Z\P
9457    No match
9458        ZA\P
9459    No match
9460    
9461    /Z(?!)/
9462        Z\P
9463    No match
9464        ZA\P
9465    No match
9466    
9467    /dog(sbody)?/
9468        dogs\P
9469     0: dog
9470        dogs\P\P
9471    Partial match: dogs
9472    
9473    /dog(sbody)??/
9474        dogs\P
9475     0: dog
9476        dogs\P\P
9477     0: dog
9478    
9479    /dog|dogsbody/
9480        dogs\P
9481     0: dog
9482        dogs\P\P
9483     0: dog
9484    
9485    /dogsbody|dog/
9486        dogs\P
9487     0: dog
9488        dogs\P\P
9489    Partial match: dogs
9490    
9491    /\bthe cat\b/
9492        the cat\P
9493     0: the cat
9494        the cat\P\P
9495    Partial match: the cat
9496    
9497    /abc/
9498       abc\P
9499     0: abc
9500       abc\P\P
9501     0: abc
9502    
9503    /\w+A/P
9504       CDAAAAB
9505     0: CDAAAA
9506    
9507    /\w+A/PU
9508       CDAAAAB
9509     0: CDA
9510    
9511    /abc\K123/
9512        xyzabc123pqr
9513     0: 123
9514        xyzabc12\P
9515    Partial match: abc12
9516        xyzabc12\P\P
9517    Partial match: abc12
9518    
9519    /(?<=abc)123/
9520        xyzabc123pqr
9521     0: 123
9522        xyzabc12\P
9523    Partial match: abc12
9524        xyzabc12\P\P
9525    Partial match: abc12
9526    
9527    /\babc\b/
9528        +++abc+++
9529     0: abc
9530        +++ab\P
9531    Partial match: +ab
9532        +++ab\P\P
9533    Partial match: +ab
9534    
9535    /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9536    ------------------------------------------------------------------
9537            Bra
9538            Once
9539            Recurse
9540            Ket
9541            Once
9542            Recurse
9543            Ket
9544            Cond
9545            Cond def
9546            CBra 1
9547            <
9548            [^m]
9549            [^>]
9550            >
9551            [^<]
9552            Ket
9553            CBra 2
9554            \w*+
9555            Ket
9556            Ket
9557            Ket
9558            End
9559    ------------------------------------------------------------------
9560    
9561    /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9562    ------------------------------------------------------------------
9563            Bra
9564            Once
9565            Recurse
9566            Ket
9567            Once
9568            Recurse
9569            Ket
9570            Cond
9571            Cond def
9572            CBra 1
9573            <
9574            [\x00-/:-\xff] (neg)
9575            [^>]
9576            >
9577            [^<]
9578            Ket
9579            CBra 2
9580            \w*+
9581            Ket
9582            Ket
9583            Ket
9584            End
9585    ------------------------------------------------------------------
9586    
9587    /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9588    ------------------------------------------------------------------
9589            Bra
9590            CBra 1
9591            ab
9592            Ket
9593            CBra 2
9594            x
9595            CBra 3
9596            y
9597            Ket
9598            z
9599            CBra 4
9600            cd
9601            Close 4
9602            Close 2
9603            *ACCEPT
9604            Ket
9605            Ket
9606            pq
9607            Ket
9608            End
9609    ------------------------------------------------------------------
9610    
9611    /abc\K/+
9612        abcdef
9613     0:
9614     0+ def
9615        abcdef\N\N
9616     0:
9617     0+ def
9618        xyzabcdef\N\N
9619     0:
9620     0+ def
9621        ** Failers
9622    No match
9623        abcdef\N
9624    No match
9625        xyzabcdef\N
9626    No match
9627    
9628    /^(?:(?=abc)|abc\K)/+
9629        abcdef
9630     0:
9631     0+ abcdef
9632        abcdef\N\N
9633     0:
9634     0+ def
9635        ** Failers
9636    No match
9637        abcdef\N
9638    No match
9639    
9640    /a?b?/+
9641        xyz
9642     0:
9643     0+ xyz
9644        xyzabc
9645     0:
9646     0+ xyzabc
9647        xyzabc\N
9648     0: ab
9649     0+ c
9650        xyzabc\N\N
9651     0:
9652     0+ yzabc
9653        xyz\N\N
9654     0:
9655     0+ yz
9656        ** Failers
9657     0:
9658     0+ ** Failers
9659        xyz\N
9660    No match
9661    
9662    /^a?b?/+
9663        xyz
9664     0:
9665     0+ xyz
9666        xyzabc
9667     0:
9668     0+ xyzabc
9669        ** Failers
9670     0:
9671     0+ ** Failers
9672        xyzabc\N
9673    No match
9674        xyzabc\N\N
9675    No match
9676        xyz\N\N
9677    No match
9678        xyz\N
9679    No match
9680    
9681    /^(?<name>a|b\g<name>c)/
9682        aaaa
9683     0: a
9684     1: a
9685        bacxxx
9686     0: bac
9687     1: bac
9688        bbaccxxx
9689     0: bbacc
9690     1: bbacc
9691        bbbacccxx
9692     0: bbbaccc
9693     1: bbbaccc
9694    
9695    /^(?<name>a|b\g'name'c)/
9696        aaaa
9697     0: a
9698     1: a
9699        bacxxx
9700     0: bac
9701     1: bac
9702        bbaccxxx
9703     0: bbacc
9704     1: bbacc
9705        bbbacccxx
9706     0: bbbaccc
9707     1: bbbaccc
9708    
9709    /^(a|b\g<1>c)/
9710        aaaa
9711     0: a
9712     1: a
9713        bacxxx
9714     0: bac
9715     1: bac
9716        bbaccxxx
9717     0: bbacc
9718     1: bbacc
9719        bbbacccxx
9720     0: bbbaccc
9721     1: bbbaccc
9722    
9723    /^(a|b\g'1'c)/
9724        aaaa
9725     0: a
9726     1: a
9727        bacxxx
9728     0: bac
9729     1: bac
9730        bbaccxxx
9731     0: bbacc
9732     1: bbacc
9733        bbbacccxx
9734     0: bbbaccc
9735     1: bbbaccc
9736    
9737    /^(a|b\g'-1'c)/
9738        aaaa
9739     0: a
9740     1: a
9741        bacxxx
9742     0: bac
9743     1: bac
9744        bbaccxxx
9745     0: bbacc
9746     1: bbacc
9747        bbbacccxx
9748     0: bbbaccc
9749     1: bbbaccc
9750    
9751    /(^(a|b\g<-1>c))/
9752        aaaa
9753     0: a
9754     1: a
9755     2: a
9756        bacxxx
9757     0: bac
9758     1: bac
9759     2: bac
9760        bbaccxxx
9761     0: bbacc
9762     1: bbacc
9763     2: bbacc
9764        bbbacccxx
9765     0: bbbaccc
9766     1: bbbaccc
9767     2: bbbaccc
9768    
9769    /(?-i:\g<name>)(?i:(?<name>a))/
9770        XaaX
9771     0: aa
9772     1: a
9773        XAAX
9774     0: AA
9775     1: A
9776    
9777    /(?i:\g<name>)(?-i:(?<name>a))/
9778        XaaX
9779     0: aa
9780     1: a
9781        ** Failers
9782    No match
9783        XAAX
9784    No match
9785    
9786    /(?-i:\g<+1>)(?i:(a))/
9787        XaaX
9788     0: aa
9789     1: a
9790        XAAX
9791     0: AA
9792     1: A
9793    
9794    /(?=(?<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>\})\}))\{/
9795    
9796    /(?<n>a|b|c)\g<n>*/
9797       abc
9798     0: abc
9799     1: a
9800       accccbbb
9801     0: accccbbb
9802     1: a
9803    
9804    /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
9805        XYabcdY
9806     0: XYabcdY
9807     1: a
9808     2: b
9809     3: <unset>
9810     4: <unset>
9811     5: c
9812     6: d
9813     7: Y
9814    
9815    /(?<=b(?1)|zzz)(a)/
9816        xbaax
9817     0: a
9818     1: a
9819        xzzzax
9820     0: a
9821     1: a
9822    
9823    /(a)(?<=b\1)/
9824    Failed: lookbehind assertion is not fixed length at offset 10
9825    
9826    /(a)(?<=b+(?1))/
9827    Failed: lookbehind assertion is not fixed length at offset 13
9828    
9829    /(a+)(?<=b(?1))/
9830    Failed: lookbehind assertion is not fixed length at offset 14
9831    
9832    /(a(?<=b(?1)))/
9833    Failed: lookbehind assertion is not fixed length at offset 13
9834    
9835    /(?<=b(?1))xyz/
9836    Failed: reference to non-existent subpattern at offset 8
9837    
9838    /(?<=b(?1))xyz(b+)pqrstuvew/
9839    Failed: lookbehind assertion is not fixed length at offset 26
9840    
9841    /-- End of testinput2 --/

Legend:
Removed from v.205  
changed lines
  Added in v.454

  ViewVC Help
Powered by ViewVC 1.1.5