/[pcre]/code/trunk/testdata/testoutput2
ViewVC logotype

Diff of /code/trunk/testdata/testoutput2

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 270 by ph10, Fri Nov 16 19:55:16 2007 UTC revision 450 by ph10, Wed Sep 16 10:56:40 2009 UTC
# Line 1  Line 1 
1    /-- This set of tests is not Perl-compatible. It checks on special features
2        of PCRE's API, error diagnostics, and the compiled code of some patterns.
3        It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4        Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5        either because PCRE can't be compatible, or there is potential Perl
6        bug. --/
7    
8    /-- Originally, the Perl 5.10 things were in here too, but now I have separated
9        many (most?) of them out into test 11. However, there may still be some
10        that were overlooked. --/
11    
12  /(a)b|/I  /(a)b|/I
13  Capturing subpattern count = 1  Capturing subpattern count = 1
14  No options  No options
# Line 40  No match Line 51  No match
51    
52  /a+bc/I  /a+bc/I
53  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
54  No options  No options
55  First char = 'a'  First char = 'a'
56  Need char = 'c'  Need char = 'c'
57    
58  /a*bc/I  /a*bc/I
59  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
60  No options  No options
61  No first char  No first char
62  Need char = 'c'  Need char = 'c'
63    
64  /a{3}bc/I  /a{3}bc/I
65  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
66  No options  No options
67  First char = 'a'  First char = 'a'
68  Need char = 'c'  Need char = 'c'
69    
70  /(abc|a+z)/I  /(abc|a+z)/I
71  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
72  No options  No options
73  First char = 'a'  First char = 'a'
74  No need char  No need char
# Line 113  Failed: unrecognized character after (? Line 120  Failed: unrecognized character after (?
120    
121  /.*b/I  /.*b/I
122  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
123  No options  No options
124  First char at start or follows newline  First char at start or follows newline
125  Need char = 'b'  Need char = 'b'
126    
127  /.*?b/I  /.*?b/I
128  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
129  No options  No options
130  First char at start or follows newline  First char at start or follows newline
131  Need char = 'b'  Need char = 'b'
# Line 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 784  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 1003  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 1021  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 1036  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 1103  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
 Partial matching not supported  
1093  Contains explicit CR or LF match  Contains explicit CR or LF match
1094  No options  No options
1095  First char = 'w'  First char = 'w'
# 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 1399  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 1489  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 1565  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 1591  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'
# Line 1666  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 1709  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 1738  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 1753  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 1772  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 1783  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 1793  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 1804  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 1821  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 1838  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 1858  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 1866  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 2249  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 2930  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 2959  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 2975  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 2999  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 3013  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 3028  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 3037  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 3047  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 3057  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 3067  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 3130  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 3147  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 3176  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 3192  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 3210  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 3286  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 3336  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 3351  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 3366  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 3374  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 3391  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 3713  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 3842  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 3868  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 4031  Need char = 'b' Line 3952  Need char = 'b'
3952  /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii  /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii
3953  Capturing subpattern count = 4  Capturing subpattern count = 4
3954  Max back reference = 4  Max back reference = 4
 Partial matching not supported  
3955  Options: anchored caseless  Options: anchored caseless
3956  No first char  No first char
3957  No need char  No need char
# Line 4064  No match Line 3984  No match
3984    
3985  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3986  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3987  Options: anchored  Options: anchored
3988  No first char  No first char
3989  No need char  No need char
# Line 4105  No match Line 4024  No match
4024    
4025  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4026  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4027  Options: extended  Options: extended
4028  First char = '<'  First char = '<'
4029  Need char = '>'  Need char = '>'
# Line 4279  Named capturing subpatterns: Line 4197  Named capturing subpatterns:
4197    one     1    one     1
4198    three   3    three   3
4199    two     2    two     2
 Partial matching not supported  
4200  Options: anchored caseless  Options: anchored caseless
4201  No first char  No first char
4202  No need char  No need char
# Line 4325  No need char Line 4242  No need char
4242    
4243  /(.*)a/Is  /(.*)a/Is
4244  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4245  Options: anchored dotall  Options: anchored dotall
4246  No first char  No first char
4247  Need char = 'a'  Need char = 'a'
# Line 4333  Need char = 'a' Line 4249  Need char = 'a'
4249  /(.*)a\1/Is  /(.*)a\1/Is
4250  Capturing subpattern count = 1  Capturing subpattern count = 1
4251  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4252  Options: dotall  Options: dotall
4253  No first char  No first char
4254  Need char = 'a'  Need char = 'a'
# Line 4341  Need char = 'a' Line 4256  Need char = 'a'
4256  /(.*)a(b)\2/Is  /(.*)a(b)\2/Is
4257  Capturing subpattern count = 2  Capturing subpattern count = 2
4258  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4259  Options: anchored dotall  Options: anchored dotall
4260  No first char  No first char
4261  Need char = 'b'  Need char = 'b'
4262    
4263  /((.*)a|(.*)b)z/Is  /((.*)a|(.*)b)z/Is
4264  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4265  Options: anchored dotall  Options: anchored dotall
4266  No first char  No first char
4267  Need char = 'z'  Need char = 'z'
# Line 4356  Need char = 'z' Line 4269  Need char = 'z'
4269  /((.*)a|(.*)b)z\1/Is  /((.*)a|(.*)b)z\1/Is
4270  Capturing subpattern count = 3  Capturing subpattern count = 3
4271  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4272  Options: dotall  Options: dotall
4273  No first char  No first char
4274  Need char = 'z'  Need char = 'z'
# Line 4364  Need char = 'z' Line 4276  Need char = 'z'
4276  /((.*)a|(.*)b)z\2/Is  /((.*)a|(.*)b)z\2/Is
4277  Capturing subpattern count = 3  Capturing subpattern count = 3
4278  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4279  Options: dotall  Options: dotall
4280  No first char  No first char
4281  Need char = 'z'  Need char = 'z'
# Line 4372  Need char = 'z' Line 4283  Need char = 'z'
4283  /((.*)a|(.*)b)z\3/Is  /((.*)a|(.*)b)z\3/Is
4284  Capturing subpattern count = 3  Capturing subpattern count = 3
4285  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4286  Options: dotall  Options: dotall
4287  No first char  No first char
4288  Need char = 'z'  Need char = 'z'
# Line 4380  Need char = 'z' Line 4290  Need char = 'z'
4290  /((.*)a|^(.*)b)z\3/Is  /((.*)a|^(.*)b)z\3/Is
4291  Capturing subpattern count = 3  Capturing subpattern count = 3
4292  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4293  Options: anchored dotall  Options: anchored dotall
4294  No first char  No first char
4295  Need char = 'z'  Need char = 'z'
4296    
4297  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4298  Capturing subpattern count = 31  Capturing subpattern count = 31
 Partial matching not supported  
4299  Options: anchored dotall  Options: anchored dotall
4300  No first char  No first char
4301  No need char  No need char
# Line 4395  No need char Line 4303  No need char
4303  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4304  Capturing subpattern count = 31  Capturing subpattern count = 31
4305  Max back reference = 31  Max back reference = 31
 Partial matching not supported  
4306  Options: dotall  Options: dotall
4307  No first char  No first char
4308  No need char  No need char
# Line 4403  No need char Line 4310  No need char
4310  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4311  Capturing subpattern count = 32  Capturing subpattern count = 32
4312  Max back reference = 32  Max back reference = 32
 Partial matching not supported  
4313  Options: dotall  Options: dotall
4314  No first char  No first char
4315  No need char  No need char
# Line 4470  Need char = 'c' Line 4376  Need char = 'c'
4376    
4377  /(a+)*zz/I  /(a+)*zz/I
4378  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4379  No options  No options
4380  No first char  No first char
4381  Need char = 'z'  Need char = 'z'
# Line 4607  Failed: two named subpatterns have the s Line 4512  Failed: two named subpatterns have the s
4512  Capturing subpattern count = 3  Capturing subpattern count = 3
4513  Named capturing subpatterns:  Named capturing subpatterns:
4514    elem   2    elem   2
 Partial matching not supported  
4515  No options  No options
4516  First char = '['  First char = '['
4517  Need char = ']'  Need char = ']'
# Line 4625  No match Line 4529  No match
4529  Capturing subpattern count = 3  Capturing subpattern count = 3
4530  Named capturing subpatterns:  Named capturing subpatterns:
4531    elem   2    elem   2
 Partial matching not supported  
4532  No options  No options
4533  First char = '['  First char = '['
4534  Need char = ']'  Need char = ']'
# Line 4732  No need char Line 4635  No need char
4635    
4636  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4637  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4638  Options: caseless  Options: caseless
4639  No first char  No first char
4640  Need char = 'g' (caseless)  Need char = 'g' (caseless)
# Line 4742  Need char = 'g' (caseless) Line 4644  Need char = 'g' (caseless)
4644    
4645  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4646  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4647  Options: caseless  Options: caseless
4648  No first char  No first char
4649  Need char = 'g' (caseless)  Need char = 'g' (caseless)
# Line 4761  Study returned NULL Line 4662  Study returned NULL
4662          End          End
4663  ------------------------------------------------------------------  ------------------------------------------------------------------
4664  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4665  No options  No options
4666  No first char  No first char
4667  Need char = 'b'  Need char = 'b'
# Line 4854  No match Line 4754  No match
4754          End          End
4755  ------------------------------------------------------------------  ------------------------------------------------------------------
4756  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4757  Options:  Options:
4758  No first char  No first char
4759  Need char = 'b'  Need char = 'b'
# Line 4899  Need char = 'b' Line 4798  Need char = 'b'
4798          End          End
4799  ------------------------------------------------------------------  ------------------------------------------------------------------
4800  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4801  Options:  Options:
4802  First char = 'a'  First char = 'a'
4803  Need char = 'b'  Need char = 'b'
# Line 5337  No match Line 5235  No match
5235          End          End
5236  ------------------------------------------------------------------  ------------------------------------------------------------------
5237  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
5238  Options:  Options:
5239  No first char  No first char
5240  Need char = '3'  Need char = '3'
# Line 5369  Need char = '3' Line 5266  Need char = '3'
5266    
5267  /\b.*/I  /\b.*/I
5268  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5269  No options  No options
5270  No first char  No first char
5271  No need char  No need char
# Line 5378  No need char Line 5274  No need char
5274    
5275  /\b.*/Is  /\b.*/Is
5276  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5277  Options: dotall  Options: dotall
5278  No first char  No first char
5279  No need char  No need char
# Line 5387  No need char Line 5282  No need char
5282    
5283  /(?!.bcd).*/I  /(?!.bcd).*/I
5284  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5285  No options  No options
5286  No first char  No first char
5287  No need char  No need char
# Line 5400  No options Line 5294  No options
5294  First char = 'a'  First char = 'a'
5295  Need char = 'e'  Need char = 'e'
5296      ab\P      ab\P
5297  Partial match  Partial match: ab
5298      abc\P      abc\P
5299  Partial match  Partial match: abc
5300      abcd\P      abcd\P
5301  Partial match  Partial match: abcd
5302      abcde\P      abcde\P
5303   0: abcde   0: abcde
5304      the quick brown abc\P      the quick brown abc\P
5305  Partial match  Partial match: abc
5306      ** Failers\P      ** Failers\P
5307  No match  No match
5308      the quick brown abxyz fox\P      the quick brown abxyz fox\P
# Line 5433  Need char = '/' Line 5327  Need char = '/'
5327   1: 02   1: 02
5328   2: 05   2: 05
5329      1\P      1\P
5330  Partial match  Partial match: 1
5331      1/2\P      1/2\P
5332  Partial match  Partial match: 1/2
5333      1/2/0\P      1/2/0\P
5334  Partial match  Partial match: 1/2/0
5335      1/2/04\P      1/2/04\P
5336   0: 1/2/04   0: 1/2/04
5337   1: 1   1: 1
5338   2: 2   2: 2
5339      0\P      0\P
5340  Partial match  Partial match: 0
5341      02/\P      02/\P
5342  Partial match  Partial match: 02/
5343      02/0\P      02/0\P
5344  Partial match  Partial match: 02/0
5345      02/1\P      02/1\P
5346  Partial match  Partial match: 02/1
5347      ** Failers\P      ** Failers\P
5348  No match  No match
5349      \P      \P
# Line 5471  No match Line 5365  No match
5365    
5366  /0{0,2}ABC/I  /0{0,2}ABC/I
5367  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5368  No options  No options
5369  No first char  No first char
5370  Need char = 'C'  Need char = 'C'
5371    
5372  /\d{3,}ABC/I  /\d{3,}ABC/I
5373  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5374  No options  No options
5375  No first char  No first char
5376  Need char = 'C'  Need char = 'C'
5377    
5378  /\d*ABC/I  /\d*ABC/I
5379  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5380  No options  No options
5381  No first char  No first char
5382  Need char = 'C'  Need char = 'C'
5383    
5384  /[abc]+DE/I  /[abc]+DE/I
5385  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5386  No options  No options
5387  No first char  No first char
5388  Need char = 'E'  Need char = 'E'
# Line 5505  Need char = '3' Line 5395  Need char = '3'
5395      123\P      123\P
5396   0: 123   0: 123
5397      a\P      a\P
5398  Partial match  Partial match: a
5399      b\P      b\P
5400  Partial match  Partial match: b
5401      c\P      c\P
5402  Partial match  Partial match: c
5403      c12\P      c12\P
5404  Partial match  Partial match: c12
5405      c123\P      c123\P
5406   0: c123   0: c123
5407    
# Line 5521  Options: anchored Line 5411  Options: anchored
5411  No first char  No first char
5412  Need char = 'X'  Need char = 'X'
5413      1\P      1\P
5414  Partial match  Partial match: 1
5415      123\P      123\P
5416  Partial match  Partial match: 123
5417      123X      123X
5418   0: 123X   0: 123X
5419      1234\P      1234\P
5420  Partial match  Partial match: 1234
5421      1234X      1234X
5422   0: 1234X   0: 1234X
5423      12345\P      12345\P
5424  Partial match  Partial match: 12345
5425      12345X      12345X
5426   0: 12345X   0: 12345X
5427      *** Failers      *** Failers
# Line 5616  No match Line 5506  No match
5506  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5507  Capturing subpattern count = 3  Capturing subpattern count = 3
5508  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
5509  Options: multiline dotall  Options: multiline dotall
5510  First char = '<'  First char = '<'
5511  Need char = '>'  Need char = '>'
# Line 5669  No match Line 5558  No match
5558      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5559  No match  No match
5560    
5561  /ab.cd/IP  /ab.cd/P
5562      ab-cd      ab-cd
5563   0: ab-cd   0: ab-cd
5564      ab=cd      ab=cd
# Line 5679  No match: POSIX code 17: match failed Line 5568  No match: POSIX code 17: match failed
5568      ab\ncd      ab\ncd
5569  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
5570    
5571  /ab.cd/IPs  /ab.cd/Ps
5572      ab-cd      ab-cd
5573   0: ab-cd   0: ab-cd
5574      ab=cd      ab=cd
# Line 5923  Matched, but too many substrings Line 5812  Matched, but too many substrings
5812    
5813  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
5814  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5815  No options  No options
5816  No first char  No first char
5817  No need char  No need char
# Line 5936  No need char Line 5824  No need char
5824    
5825  /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
5826  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5827  No options  No options
5828  No first char  No first char
5829  No need char  No need char
# Line 5947  No need char Line 5834  No need char
5834    
5835  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
5836  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5837  No options  No options
5838  No first char  No first char
5839  No need char  No need char
# Line 5958  No need char Line 5844  No need char
5844    
5845  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
5846  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5847  No options  No options
5848  No first char  No first char
5849  No need char  No need char
# Line 5971  No need char Line 5856  No need char
5856    
5857  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
5858  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5859  No options  No options
5860  No first char  No first char
5861  No need char  No need char
# Line 5984  No need char Line 5868  No need char
5868      ((this))      ((this))
5869   0: ((this))   0: ((this))
5870    
5871  /a(b)c/IPN  /a(b)c/PN
5872      abc      abc
5873  Matched with REG_NOSUB  Matched with REG_NOSUB
5874    
5875  /a(?P<name>b)c/IPN  /a(?P<name>b)c/PN
5876      abc      abc
5877  Matched with REG_NOSUB  Matched with REG_NOSUB
5878    
# Line 6313  Failed: octal value is greater than \377 Line 6197  Failed: octal value is greater than \377
6197    
6198  /\s*,\s*/IS  /\s*,\s*/IS
6199  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6200  No options  No options
6201  No first char  No first char
6202  Need char = ','  Need char = ','
# Line 6443  Unknown newline type at: <bad> Line 6326  Unknown newline type at: <bad>
6326    
6327  /.*/I<lf>  /.*/I<lf>
6328  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6329  Options:  Options:
6330  Forced newline sequence: LF  Forced newline sequence: LF
6331  First char at start or follows newline  First char at start or follows newline
# Line 6469  No need char Line 6351  No need char
6351    
6352  /\w+(.)(.)?def/Is  /\w+(.)(.)?def/Is
6353  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
6354  Options: dotall  Options: dotall
6355  No first char  No first char
6356  Need char = 'f'  Need char = 'f'
# Line 6486  Need char = 'f' Line 6367  Need char = 'f'
6367    
6368  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6369  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6370  No options  No options
6371  No first char  No first char
6372  No need char  No need char
# Line 6621  No need char Line 6501  No need char
6501    
6502  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
6503  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6504  No options  No options
6505  No first char  No first char
6506  No need char  No need char
# Line 6680  Starting byte set: a b c d Line 6559  Starting byte set: a b c d
6559          End          End
6560  ------------------------------------------------------------------  ------------------------------------------------------------------
6561  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6562  Options: anchored  Options: anchored
6563  No first char  No first char
6564  Need char = 'b'  Need char = 'b'
# Line 6696  Need char = 'b' Line 6574  Need char = 'b'
6574          End          End
6575  ------------------------------------------------------------------  ------------------------------------------------------------------
6576  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6577  Options: anchored  Options: anchored
6578  No first char  No first char
6579  Need char = 'b'  Need char = 'b'
# Line 6712  Need char = 'b' Line 6589  Need char = 'b'
6589          End          End
6590  ------------------------------------------------------------------  ------------------------------------------------------------------
6591  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6592  Options: anchored  Options: anchored
6593  No first char  No first char
6594  Need char = 'b'  Need char = 'b'
# Line 6728  Need char = 'b' Line 6604  Need char = 'b'
6604          End          End
6605  ------------------------------------------------------------------  ------------------------------------------------------------------
6606  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6607  Options: anchored  Options: anchored
6608  No first char  No first char
6609  Need char = 'A'  Need char = 'A'
# Line 6750  No match Line 6625  No match
6625          End          End
6626  ------------------------------------------------------------------  ------------------------------------------------------------------
6627  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6628  Options: anchored caseless  Options: anchored caseless
6629  No first char  No first char
6630  Need char = 'A' (caseless)  Need char = 'A' (caseless)
# Line 6761  Need char = 'A' (caseless) Line 6635  Need char = 'A' (caseless)
6635    
6636  /(a*|b*)[cd]/IS  /(a*|b*)[cd]/IS
6637  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6638  No options  No options
6639  No first char  No first char
6640  No need char  No need char
# Line 6769  Starting byte set: a b c d Line 6642  Starting byte set: a b c d
6642    
6643  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
6644  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6645  No options  No options
6646  No first char  No first char
6647  No need char  No need char
# Line 6777  Starting byte set: a b c d Line 6649  Starting byte set: a b c d
6649    
6650  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
6651  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6652  No options  No options
6653  No first char  No first char
6654  No need char  No need char
# Line 6785  Starting byte set: a b c d Line 6656  Starting byte set: a b c d
6656    
6657  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
6658  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6659  No options  No options
6660  No first char  No first char
6661  No need char  No need char
# Line 7660  Named capturing subpatterns: Line 7530  Named capturing subpatterns:
7530    one     1    one     1
7531    three   3    three   3
7532    two     2    two     2
 Partial matching not supported  
7533  Options: anchored caseless  Options: anchored caseless
7534  No first char  No first char
7535  No need char  No need char
# Line 7694  No match Line 7563  No match
7563  /(?=(\w+))\1:/I  /(?=(\w+))\1:/I
7564  Capturing subpattern count = 1  Capturing subpattern count = 1
7565  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
7566  No options  No options
7567  No first char  No first char
7568  Need char = ':'  Need char = ':'
# Line 7707  Capturing subpattern count = 1 Line 7575  Capturing subpattern count = 1
7575  Max back reference = 1  Max back reference = 1
7576  Named capturing subpatterns:  Named capturing subpatterns:
7577    abc   1    abc   1
 Partial matching not supported  
7578  No options  No options
7579  No first char  No first char
7580  Need char = ':'  Need char = ':'
# Line 7715  Need char = ':' Line 7582  Need char = ':'
7582   0: abcd:   0: abcd:
7583   1: abcd   1: abcd
7584    
 /(?'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  
   
7585  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7586      adaa      adaa
7587   0: adaa   0: adaa
# Line 7755  No match Line 7608  No match
7608      bddd      bddd
7609  No match  No match
7610    
 /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x  
     abd  
  0: abd  
  1: a  
     ce  
  0: ce  
   
7611  /(?(<bc))/  /(?(<bc))/
7612  Failed: malformed number or name after (?( at offset 6  Failed: malformed number or name after (?( at offset 6
7613    
# Line 7792  Failed: reference to non-existent subpat Line 7638  Failed: reference to non-existent subpat
7638   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7639   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7640    
 /^(?(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>  
   
7641  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7642  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7643    
# Line 7851  No match Line 7679  No match
7679  No match  No match
7680    
7681  /^abc./mgx<any>  /^abc./mgx<any>
7682      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK      abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
7683   0: abc1   0: abc1
7684   0: abc2   0: abc2
7685   0: abc3   0: abc3
# Line 7861  No match Line 7689  No match
7689   0: abc7   0: abc7
7690    
7691  /abc.$/mgx<any>  /abc.$/mgx<any>
7692      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
7693   0: abc1   0: abc1
7694   0: abc2   0: abc2
7695   0: abc3   0: abc3
# Line 7987  Need char = 'P' Line 7815  Need char = 'P'
7815   0: PXP   0: PXP
7816   1: P   1: P
7817    
 /(?(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  
   
7818  /(?:a(?&abc)b)*(?<abc>x)/  /(?:a(?&abc)b)*(?<abc>x)/
7819      123axbaxbaxbx456      123axbaxbaxbx456
7820   0: axbaxbaxbx   0: axbaxbaxbx
# Line 8064  No match Line 7852  No match
7852     DEFabcABCXYZ     DEFabcABCXYZ
7853  No match  No match
7854    
 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/  
     ababababbbabZXXXX  
  0: ababababbbabZ  
  1: ab  
  2: b  
   
7855  /^(a)\g-2/  /^(a)\g-2/
7856  Failed: reference to non-existent subpattern at offset 7  Failed: reference to non-existent subpattern at offset 7
7857    
7858  /^(a)\g/  /^(a)\g/
7859  Failed: \g is not followed by a braced name or an optionally braced non-zero number at offset 5  Failed: a numbered reference must not be zero at offset 5
7860    
7861  /^(a)\g{0}/  /^(a)\g{0}/
7862  Failed: \g is not followed by a braced name or an optionally braced non-zero number at offset 7  Failed: a numbered reference must not be zero at offset 8
7863    
7864  /^(a)\g{3/  /^(a)\g{3/
7865  Failed: \g is not followed by a braced name or an optionally braced non-zero number at offset 8  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
7866    
7867  /^(a)\g{4a}/  /^(a)\g{4a}/
7868  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
# Line 8163  No match Line 7945  No match
7945   0+   0+
7946    
7947  /abc.$/mgx<anycrlf>  /abc.$/mgx<anycrlf>
7948      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
7949   0: abc1   0: abc1
7950   0: abc4   0: abc4
7951   0: abc5   0: abc5
# Line 8217  No match Line 7999  No match
7999  No match  No match
8000    
8001  /x(?-0)y/  /x(?-0)y/
8002  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
8003    
8004  /x(?-1)y/  /x(?-1)y/
8005  Failed: reference to non-existent subpattern at offset 5  Failed: reference to non-existent subpattern at offset 5
8006    
8007  /x(?+0)y/  /x(?+0)y/
8008  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
8009    
8010  /x(?+1)y/  /x(?+1)y/
8011  Failed: reference to non-existent subpattern at offset 5  Failed: reference to non-existent subpattern at offset 5
# Line 8325  Failed: reference to non-existent subpat Line 8107  Failed: reference to non-existent subpat
8107   0: Y!   0: Y!
8108   1: !   1: !
8109    
 /(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  
   
8110  /(?<A>tom|bon)-\k{A}/  /(?<A>tom|bon)-\k{A}/
8111      tom-tom      tom-tom
8112   0: tom-tom   0: tom-tom
# Line 8357  No match Line 8119  No match
8119      tom-bon      tom-bon
8120  No match  No match
8121    
 /(?<A>tom|bon)-\g{A}/  
     tom-tom  
  0: tom-tom  
  1: tom  
     bon-bon  
  0: bon-bon  
  1: bon  
   
8122  /\g{A/  /\g{A/
8123  Failed: syntax error in subpattern name (missing terminator) at offset 4  Failed: syntax error in subpattern name (missing terminator) at offset 4
8124    
# Line 8459  Failed: syntax error in subpattern name Line 8213  Failed: syntax error in subpattern name
8213   3: <unset>   3: <unset>
8214   4: x   4: x
8215    
 /(?|(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  
   
8216  /[\h]/BZ  /[\h]/BZ
8217  ------------------------------------------------------------------  ------------------------------------------------------------------
8218          Bra          Bra
# Line 8831  Failed: missing terminating ] for charac Line 8509  Failed: missing terminating ] for charac
8509          End          End
8510  ------------------------------------------------------------------  ------------------------------------------------------------------
8511    
 /^a+(*FAIL)/  
     aaaaaa  
 No match  
   
 /a+b?c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*PRUNE)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*COMMIT)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*SKIP)c+(*FAIL)/  
     aaabcccaaabccc  
 No match  
   
 /^(?:aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/  
     aaaxxxxxx  
  0: aaaxxxxxx  
     aaa++++++  
  0: aaa  
     bbbxxxxx  
  0: bbbxxxxx  
     bbb+++++  
  0: bbb  
     cccxxxx  
  0: cccxxxx  
     ccc++++  
  0: ccc  
     dddddddd  
  0: ddd  
   
 /^(aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/  
     aaaxxxxxx  
  0: aaaxxxxxx  
  1: aaaxxxxxx  
     aaa++++++  
  0: aaa  
  1: aaa  
     bbbxxxxx  
  0: bbbxxxxx  
  1: bbbxxxxx  
     bbb+++++  
  0: bbb  
  1: bbb  
     cccxxxx  
  0: cccxxxx  
  1: cccxxxx  
     ccc++++  
  0: ccc  
  1: ccc  
     dddddddd  
  0: ddd  
  1: ddd  
   
 /a+b?(*THEN)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /(A (A|B(*ACCEPT)|C) D)(E)/x  
     ABX  
  0: AB  
     AADE  
  0: AADE  
  1: AAD  
  2: A  
  3: E  
     ACDE  
  0: ACDE  
  1: ACD  
  2: C  
  3: E  
     ** Failers  
 No match  
     AD  
 No match  
   
8512  /^a+(*FAIL)/C  /^a+(*FAIL)/C
8513      aaaaaa      aaaaaa
8514  --->aaaaaa  --->aaaaaa
# Line 9216  No match Line 8813  No match
8813    
8814  /a\R{2,4}b/I<bsr_anycrlf>  /a\R{2,4}b/I<bsr_anycrlf>
8815  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
8816  Options: bsr_anycrlf  Options: bsr_anycrlf
8817  First char = 'a'  First char = 'a'
8818  Need char = 'b'  Need char = 'b'
# Line 9235  No match Line 8831  No match
8831    
8832  /a\R{2,4}b/I<bsr_unicode>  /a\R{2,4}b/I<bsr_unicode>
8833  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
8834  Options: bsr_unicode  Options: bsr_unicode
8835  First char = 'a'  First char = 'a'
8836  Need char = 'b'  Need char = 'b'
# Line 9304  First char = 'a' Line 8899  First char = 'a'
8899  Need char = 'b'  Need char = 'b'
8900    
8901  /(?<a>)(?&)/  /(?<a>)(?&)/
8902  Failed: subpattern name expected after (?& at offset 9  Failed: subpattern name expected at offset 9
8903    
8904  /(?<abc>)(?&a)/  /(?<abc>)(?&a)/
8905  Failed: reference to non-existent subpattern at offset 12  Failed: reference to non-existent subpattern at offset 12
# Line 9318  Failed: digit expected after (?+ at offs Line 8913  Failed: digit expected after (?+ at offs
8913  /(?-+a)/  /(?-+a)/
8914  Failed: unrecognized character after (? or (?- at offset 3  Failed: unrecognized character after (? or (?- at offset 3
8915    
8916  / End of testinput2 /  /(?(-1))/
8917    Failed: reference to non-existent subpattern at offset 6
8918    
8919    /(?(+10))/
8920    Failed: reference to non-existent subpattern at offset 7
8921    
8922    /(?(10))/
8923    Failed: reference to non-existent subpattern at offset 6
8924    
8925    /(?(+2))()()/
8926    
8927    /(?(2))()()/
8928    
8929    /\k''/
8930    Failed: subpattern name expected at offset 3
8931    
8932    /\k<>/
8933    Failed: subpattern name expected at offset 3
8934    
8935    /\k{}/
8936    Failed: subpattern name expected at offset 3
8937    
8938    /(?P=)/
8939    Failed: subpattern name expected at offset 4
8940    
8941    /(?P>)/
8942    Failed: subpattern name expected at offset 4
8943    
8944    /(?!\w)(?R)/
8945    Failed: recursive call could loop indefinitely at offset 9
8946    
8947    /(?=\w)(?R)/
8948    Failed: recursive call could loop indefinitely at offset 9
8949    
8950    /(?<!\w)(?R)/
8951    Failed: recursive call could loop indefinitely at offset 10
8952    
8953    /(?<=\w)(?R)/
8954    Failed: recursive call could loop indefinitely at offset 10
8955    
8956    /[[:foo:]]/
8957    Failed: unknown POSIX class name at offset 3
8958    
8959    /[[:1234:]]/
8960    Failed: unknown POSIX class name at offset 3
8961    
8962    /[[:f\oo:]]/
8963    Failed: unknown POSIX class name at offset 3
8964    
8965    /[[: :]]/
8966    Failed: unknown POSIX class name at offset 3
8967    
8968    /[[:...:]]/
8969    Failed: unknown POSIX class name at offset 3
8970    
8971    /[[:l\ower:]]/
8972    Failed: unknown POSIX class name at offset 3
8973    
8974    /[[:abc\:]]/
8975    Failed: unknown POSIX class name at offset 3
8976    
8977    /[abc[:x\]pqr:]]/
8978    Failed: unknown POSIX class name at offset 6
8979    
8980    /[[:a\dz:]]/
8981    Failed: unknown POSIX class name at offset 3
8982    
8983    /(^(a|b\g<-1'c))/
8984    Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
8985    
8986    /^(?+1)(?<a>x|y){0}z/
8987        xzxx
8988     0: xz
8989        yzyy
8990     0: yz
8991        ** Failers
8992    No match
8993        xxz
8994    No match
8995    
8996    /(\3)(\1)(a)/
8997        cat
8998    No match
8999    
9000    /(\3)(\1)(a)/<JS>
9001        cat
9002     0: a
9003     1:
9004     2:
9005     3: a
9006    
9007    /TA]/
9008        The ACTA] comes
9009     0: TA]
9010    
9011    /TA]/<JS>
9012    Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
9013    
9014    /(?2)[]a()b](abc)/
9015    Failed: reference to non-existent subpattern at offset 3
9016    
9017    /(?2)[^]a()b](abc)/
9018    Failed: reference to non-existent subpattern at offset 3
9019    
9020    /(?1)[]a()b](abc)/
9021        abcbabc
9022     0: abcbabc
9023     1: abc
9024        ** Failers
9025    No match
9026        abcXabc
9027    No match
9028    
9029    /(?1)[^]a()b](abc)/
9030        abcXabc
9031     0: abcXabc
9032     1: abc
9033        ** Failers
9034    No match
9035        abcbabc
9036    No match
9037    
9038    /(?2)[]a()b](abc)(xyz)/
9039        xyzbabcxyz
9040     0: xyzbabcxyz
9041     1: abc
9042     2: xyz
9043    
9044    /(?&N)[]a(?<N>)](?<M>abc)/
9045    Failed: reference to non-existent subpattern at offset 4
9046    
9047    /(?&N)[]a(?<N>)](abc)/
9048    Failed: reference to non-existent subpattern at offset 4
9049    
9050    /a[]b/
9051    Failed: missing terminating ] for character class at offset 4
9052    
9053    /a[^]b/
9054    Failed: missing terminating ] for character class at offset 5
9055    
9056    /a[]b/<JS>
9057        ** Failers
9058    No match
9059        ab
9060    No match
9061    
9062    /a[]+b/<JS>
9063        ** Failers
9064    No match
9065        ab
9066    No match
9067    
9068    /a[]*+b/<JS>
9069        ** Failers
9070    No match
9071        ab
9072    No match
9073    
9074    /a[^]b/<JS>
9075        aXb
9076     0: aXb
9077        a\nb
9078     0: a\x0ab
9079        ** Failers
9080    No match
9081        ab
9082    No match
9083    
9084    /a[^]+b/<JS>
9085        aXb
9086     0: aXb
9087        a\nX\nXb
9088     0: a\x0aX\x0aXb
9089        ** Failers
9090    No match
9091        ab
9092    No match
9093    
9094    /a(?!)+b/
9095    Failed: nothing to repeat at offset 5
9096    
9097    /a(*FAIL)+b/
9098    Failed: nothing to repeat at offset 8
9099    
9100    /(abc|pqr|123){0}[xyz]/SI
9101    Capturing subpattern count = 1
9102    No options
9103    No first char
9104    No need char
9105    Starting byte set: x y z
9106    
9107    /(?(?=.*b)b|^)/CI
9108    Capturing subpattern count = 0
9109    Options:
9110    No first char
9111    No need char
9112       adc
9113    --->adc
9114     +0 ^       (?(?=.*b)b|^)
9115     +2 ^       (?=.*b)
9116     +5 ^       .*
9117     +7 ^  ^    b
9118     +7 ^ ^     b
9119     +7 ^^      b
9120     +7 ^       b
9121    +12 ^       )
9122    +13 ^
9123     0:
9124       abc
9125    --->abc
9126     +0 ^       (?(?=.*b)b|^)
9127     +2 ^       (?=.*b)
9128     +5 ^       .*
9129     +7 ^  ^    b
9130     +7 ^ ^     b
9131     +7 ^^      b
9132     +8 ^ ^     )
9133     +9 ^       b
9134     +0  ^      (?(?=.*b)b|^)
9135     +2  ^      (?=.*b)
9136     +5  ^      .*
9137     +7  ^ ^    b
9138     +7  ^^     b
9139     +7  ^      b
9140     +8  ^^     )
9141     +9  ^      b
9142    +10  ^^     |
9143    +13  ^^
9144     0: b
9145    
9146    /(?(?=b).*b|^d)/I
9147    Capturing subpattern count = 0
9148    No options
9149    No first char
9150    No need char
9151    
9152    /(?(?=.*b).*b|^d)/I
9153    Capturing subpattern count = 0
9154    No options
9155    First char at start or follows newline
9156    No need char
9157    
9158    /a?|b?/P
9159        abc
9160     0: a
9161        ** Failers
9162     0:
9163        ddd\N
9164    No match: POSIX code 17: match failed
9165    
9166    /xyz/C
9167      xyz
9168    --->xyz
9169     +0 ^       x
9170     +1 ^^      y
9171     +2 ^ ^     z
9172     +3 ^  ^
9173     0: xyz
9174      abcxyz
9175    --->abcxyz
9176     +0    ^       x
9177     +1    ^^      y
9178     +2    ^ ^     z
9179     +3    ^  ^
9180     0: xyz
9181      abcxyz\Y
9182    --->abcxyz
9183     +0 ^          x
9184     +0  ^         x
9185     +0   ^        x
9186     +0    ^       x
9187     +1    ^^      y
9188     +2    ^ ^     z
9189     +3    ^  ^
9190     0: xyz
9191      ** Failers
9192    No match
9193      abc
9194    No match
9195      abc\Y
9196    --->abc
9197     +0 ^       x
9198     +0  ^      x
9199     +0   ^     x
9200     +0    ^    x
9201    No match
9202      abcxypqr
9203    No match
9204      abcxypqr\Y
9205    --->abcxypqr
9206     +0 ^            x
9207     +0  ^           x
9208     +0   ^          x
9209     +0    ^         x
9210     +1    ^^        y
9211     +2    ^ ^       z
9212     +0     ^        x
9213     +0      ^       x
9214     +0       ^      x
9215     +0        ^     x
9216     +0         ^    x
9217    No match
9218    
9219    /^"((?(?=[a])[^"])|b)*"$/C
9220        "ab"
9221    --->"ab"
9222     +0 ^        ^
9223     +1 ^        "
9224     +2 ^^       ((?(?=[a])[^"])|b)*
9225     +3 ^^       (?(?=[a])[^"])
9226     +5 ^^       (?=[a])
9227     +8 ^^       [a]
9228    +11 ^ ^      )
9229    +12 ^^       [^"]
9230    +16 ^ ^      )
9231    +17 ^ ^      |
9232     +3 ^ ^      (?(?=[a])[^"])
9233     +5 ^ ^      (?=[a])
9234     +8 ^ ^      [a]
9235    +21 ^ ^      "
9236    +18 ^ ^      b
9237    +19 ^  ^     )
9238     +3 ^  ^     (?(?=[a])[^"])
9239     +5 ^  ^     (?=[a])
9240     +8 ^  ^     [a]
9241    +21 ^  ^     "
9242    +22 ^   ^    $
9243    +23 ^   ^
9244     0: "ab"
9245     1:
9246    
9247    /^"((?(?=[a])[^"])|b)*"$/
9248        "ab"
9249     0: "ab"
9250     1:
9251    
9252    /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9253    Failed: reference to non-existent subpattern at offset 5
9254    
9255    /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9256        XYabcdY
9257     0: XYabcdY
9258     1: a
9259     2: b
9260     3: c
9261     4: d
9262     5: Y
9263    
9264    /Xa{2,4}b/
9265        X\P
9266    Partial match: X
9267        Xa\P
9268    Partial match: Xa
9269        Xaa\P
9270    Partial match: Xaa
9271        Xaaa\P
9272    Partial match: Xaaa
9273        Xaaaa\P
9274    Partial match: Xaaaa
9275    
9276    /Xa{2,4}?b/
9277        X\P
9278    Partial match: X
9279        Xa\P
9280    Partial match: Xa
9281        Xaa\P
9282    Partial match: Xaa
9283        Xaaa\P
9284    Partial match: Xaaa
9285        Xaaaa\P
9286    Partial match: Xaaaa
9287    
9288    /Xa{2,4}+b/
9289        X\P
9290    Partial match: X
9291        Xa\P
9292    Partial match: Xa
9293        Xaa\P
9294    Partial match: Xaa
9295        Xaaa\P
9296    Partial match: Xaaa
9297        Xaaaa\P
9298    Partial match: Xaaaa
9299    
9300    /X\d{2,4}b/
9301        X\P
9302    Partial match: X
9303        X3\P
9304    Partial match: X3
9305        X33\P
9306    Partial match: X33
9307        X333\P
9308    Partial match: X333
9309        X3333\P
9310    Partial match: X3333
9311    
9312    /X\d{2,4}?b/
9313        X\P
9314    Partial match: X
9315        X3\P
9316    Partial match: X3
9317        X33\P
9318    Partial match: X33
9319        X333\P
9320    Partial match: X333
9321        X3333\P
9322    Partial match: X3333
9323    
9324    /X\d{2,4}+b/
9325        X\P
9326    Partial match: X
9327        X3\P
9328    Partial match: X3
9329        X33\P
9330    Partial match: X33
9331        X333\P
9332    Partial match: X333
9333        X3333\P
9334    Partial match: X3333
9335    
9336    /X\D{2,4}b/
9337        X\P
9338    Partial match: X
9339        Xa\P
9340    Partial match: Xa
9341        Xaa\P
9342    Partial match: Xaa
9343        Xaaa\P
9344    Partial match: Xaaa
9345        Xaaaa\P
9346    Partial match: Xaaaa
9347    
9348    /X\D{2,4}?b/
9349        X\P
9350    Partial match: X
9351        Xa\P
9352    Partial match: Xa
9353        Xaa\P
9354    Partial match: Xaa
9355        Xaaa\P
9356    Partial match: Xaaa
9357        Xaaaa\P
9358    Partial match: Xaaaa
9359    
9360    /X\D{2,4}+b/
9361        X\P
9362    Partial match: X
9363        Xa\P
9364    Partial match: Xa
9365        Xaa\P
9366    Partial match: Xaa
9367        Xaaa\P
9368    Partial match: Xaaa
9369        Xaaaa\P
9370    Partial match: Xaaaa
9371    
9372    /X[abc]{2,4}b/
9373        X\P
9374    Partial match: X
9375        Xa\P
9376    Partial match: Xa
9377        Xaa\P
9378    Partial match: Xaa
9379        Xaaa\P
9380    Partial match: Xaaa
9381        Xaaaa\P
9382    Partial match: Xaaaa
9383    
9384    /X[abc]{2,4}?b/
9385        X\P
9386    Partial match: X
9387        Xa\P
9388    Partial match: Xa
9389        Xaa\P
9390    Partial match: Xaa
9391        Xaaa\P
9392    Partial match: Xaaa
9393        Xaaaa\P
9394    Partial match: Xaaaa
9395    
9396    /X[abc]{2,4}+b/
9397        X\P
9398    Partial match: X
9399        Xa\P
9400    Partial match: Xa
9401        Xaa\P
9402    Partial match: Xaa
9403        Xaaa\P
9404    Partial match: Xaaa
9405        Xaaaa\P
9406    Partial match: Xaaaa
9407    
9408    /X[^a]{2,4}b/
9409        X\P
9410    Partial match: X
9411        Xz\P
9412    Partial match: Xz
9413        Xzz\P
9414    Partial match: Xzz
9415        Xzzz\P
9416    Partial match: Xzzz
9417        Xzzzz\P
9418    Partial match: Xzzzz
9419    
9420    /X[^a]{2,4}?b/
9421        X\P
9422    Partial match: X
9423        Xz\P
9424    Partial match: Xz
9425        Xzz\P
9426    Partial match: Xzz
9427        Xzzz\P
9428    Partial match: Xzzz
9429        Xzzzz\P
9430    Partial match: Xzzzz
9431    
9432    /X[^a]{2,4}+b/
9433        X\P
9434    Partial match: X
9435        Xz\P
9436    Partial match: Xz
9437        Xzz\P
9438    Partial match: Xzz
9439        Xzzz\P
9440    Partial match: Xzzz
9441        Xzzzz\P
9442    Partial match: Xzzzz
9443    
9444    /(Y)X\1{2,4}b/
9445        YX\P
9446    Partial match: YX
9447        YXY\P
9448    Partial match: YXY
9449        YXYY\P
9450    Partial match: YXYY
9451        YXYYY\P
9452    Partial match: YXYYY
9453        YXYYYY\P
9454    Partial match: YXYYYY
9455    
9456    /(Y)X\1{2,4}?b/
9457        YX\P
9458    Partial match: YX
9459        YXY\P
9460    Partial match: YXY
9461        YXYY\P
9462    Partial match: YXYY
9463        YXYYY\P
9464    Partial match: YXYYY
9465        YXYYYY\P
9466    Partial match: YXYYYY
9467    
9468    /(Y)X\1{2,4}+b/
9469        YX\P
9470    Partial match: YX
9471        YXY\P
9472    Partial match: YXY
9473        YXYY\P
9474    Partial match: YXYY
9475        YXYYY\P
9476    Partial match: YXYYY
9477        YXYYYY\P
9478    Partial match: YXYYYY
9479    
9480    /\++\KZ|\d+X|9+Y/
9481        ++++123999\P
9482    Partial match: 123999
9483        ++++123999Y\P
9484     0: 999Y
9485        ++++Z1234\P
9486     0: Z
9487    
9488    /Z(*F)/
9489        Z\P
9490    No match
9491        ZA\P
9492    No match
9493    
9494    /Z(?!)/
9495        Z\P
9496    No match
9497        ZA\P
9498    No match
9499    
9500    /dog(sbody)?/
9501        dogs\P
9502     0: dog
9503        dogs\P\P
9504    Partial match: dogs
9505    
9506    /dog(sbody)??/
9507        dogs\P
9508     0: dog
9509        dogs\P\P
9510     0: dog
9511    
9512    /dog|dogsbody/
9513        dogs\P
9514     0: dog
9515        dogs\P\P
9516     0: dog
9517    
9518    /dogsbody|dog/
9519        dogs\P
9520     0: dog
9521        dogs\P\P
9522    Partial match: dogs
9523    
9524    /\bthe cat\b/
9525        the cat\P
9526     0: the cat
9527        the cat\P\P
9528    Partial match: the cat
9529    
9530    /abc/
9531       abc\P
9532     0: abc
9533       abc\P\P
9534     0: abc
9535    
9536    /\w+A/P
9537       CDAAAAB
9538     0: CDAAAA
9539    
9540    /\w+A/PU
9541       CDAAAAB
9542     0: CDA
9543    
9544    /abc\K123/
9545        xyzabc123pqr
9546     0: 123
9547        xyzabc12\P
9548    Partial match: abc12
9549        xyzabc12\P\P
9550    Partial match: abc12
9551    
9552    /(?<=abc)123/
9553        xyzabc123pqr
9554     0: 123
9555        xyzabc12\P
9556    Partial match: abc12
9557        xyzabc12\P\P
9558    Partial match: abc12
9559    
9560    /\babc\b/
9561        +++abc+++
9562     0: abc
9563        +++ab\P
9564    Partial match: +ab
9565        +++ab\P\P
9566    Partial match: +ab
9567    
9568    /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9569    ------------------------------------------------------------------
9570            Bra
9571            Once
9572            Recurse
9573            Ket
9574            Once
9575            Recurse
9576            Ket
9577            Cond
9578            Cond def
9579            CBra 1
9580            <
9581            [^m]
9582            [^>]
9583            >
9584            [^<]
9585            Ket
9586            CBra 2
9587            \w*+
9588            Ket
9589            Ket
9590            Ket
9591            End
9592    ------------------------------------------------------------------
9593    
9594    /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9595    ------------------------------------------------------------------
9596            Bra
9597            Once
9598            Recurse
9599            Ket
9600            Once
9601            Recurse
9602            Ket
9603            Cond
9604            Cond def
9605            CBra 1
9606            <
9607            [\x00-/:-\xff] (neg)
9608            [^>]
9609            >
9610            [^<]
9611            Ket
9612            CBra 2
9613            \w*+
9614            Ket
9615            Ket
9616            Ket
9617            End
9618    ------------------------------------------------------------------
9619    
9620    /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9621    ------------------------------------------------------------------
9622            Bra
9623            CBra 1
9624            ab
9625            Ket
9626            CBra 2
9627            x
9628            CBra 3
9629            y
9630            Ket
9631            z
9632            CBra 4
9633            cd
9634            Close 4
9635            Close 2
9636            *ACCEPT
9637            Ket
9638            Ket
9639            pq
9640            Ket
9641            End
9642    ------------------------------------------------------------------
9643    
9644    /abc\K/+
9645        abcdef
9646     0:
9647     0+ def
9648        abcdef\N\N
9649     0:
9650     0+ def
9651        xyzabcdef\N\N
9652     0:
9653     0+ def
9654        ** Failers
9655    No match
9656        abcdef\N
9657    No match
9658        xyzabcdef\N
9659    No match
9660    
9661    /^(?:(?=abc)|abc\K)/+
9662        abcdef
9663     0:
9664     0+ abcdef
9665        abcdef\N\N
9666     0:
9667     0+ def
9668        ** Failers
9669    No match
9670        abcdef\N
9671    No match
9672    
9673    /a?b?/+
9674        xyz
9675     0:
9676     0+ xyz
9677        xyzabc
9678     0:
9679     0+ xyzabc
9680        xyzabc\N
9681     0: ab
9682     0+ c
9683        xyzabc\N\N
9684     0:
9685     0+ yzabc
9686        xyz\N\N
9687     0:
9688     0+ yz
9689        ** Failers
9690     0:
9691     0+ ** Failers
9692        xyz\N
9693    No match
9694    
9695    /^a?b?/+
9696        xyz
9697     0:
9698     0+ xyz
9699        xyzabc
9700     0:
9701     0+ xyzabc
9702        ** Failers
9703     0:
9704     0+ ** Failers
9705        xyzabc\N
9706    No match
9707        xyzabc\N\N
9708    No match
9709        xyz\N\N
9710    No match
9711        xyz\N
9712    No match
9713    
9714    /^(?<name>a|b\g<name>c)/
9715        aaaa
9716     0: a
9717     1: a
9718        bacxxx
9719     0: bac
9720     1: bac
9721        bbaccxxx
9722     0: bbacc
9723     1: bbacc
9724        bbbacccxx
9725     0: bbbaccc
9726     1: bbbaccc
9727    
9728    /^(?<name>a|b\g'name'c)/
9729        aaaa
9730     0: a
9731     1: a
9732        bacxxx
9733     0: bac
9734     1: bac
9735        bbaccxxx
9736     0: bbacc
9737     1: bbacc
9738        bbbacccxx
9739     0: bbbaccc
9740     1: bbbaccc
9741    
9742    /^(a|b\g<1>c)/
9743        aaaa
9744     0: a
9745     1: a
9746        bacxxx
9747     0: bac
9748     1: bac
9749        bbaccxxx
9750     0: bbacc
9751     1: bbacc
9752        bbbacccxx
9753     0: bbbaccc
9754     1: bbbaccc
9755    
9756    /^(a|b\g'1'c)/
9757        aaaa
9758     0: a
9759     1: a
9760        bacxxx
9761     0: bac
9762     1: bac
9763        bbaccxxx
9764     0: bbacc
9765     1: bbacc
9766        bbbacccxx
9767     0: bbbaccc
9768     1: bbbaccc
9769    
9770    /^(a|b\g'-1'c)/
9771        aaaa
9772     0: a
9773     1: a
9774        bacxxx
9775     0: bac
9776     1: bac
9777        bbaccxxx
9778     0: bbacc
9779     1: bbacc
9780        bbbacccxx
9781     0: bbbaccc
9782     1: bbbaccc
9783    
9784    /(^(a|b\g<-1>c))/
9785        aaaa
9786     0: a
9787     1: a
9788     2: a
9789        bacxxx
9790     0: bac
9791     1: bac
9792     2: bac
9793        bbaccxxx
9794     0: bbacc
9795     1: bbacc
9796     2: bbacc
9797        bbbacccxx
9798     0: bbbaccc
9799     1: bbbaccc
9800     2: bbbaccc
9801    
9802    /(?-i:\g<name>)(?i:(?<name>a))/
9803        XaaX
9804     0: aa
9805     1: a
9806        XAAX
9807     0: AA
9808     1: A
9809    
9810    /(?i:\g<name>)(?-i:(?<name>a))/
9811        XaaX
9812     0: aa
9813     1: a
9814        ** Failers
9815    No match
9816        XAAX
9817    No match
9818    
9819    /(?-i:\g<+1>)(?i:(a))/
9820        XaaX
9821     0: aa
9822     1: a
9823        XAAX
9824     0: AA
9825     1: A
9826    
9827    /(?=(?<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>\})\}))\{/
9828    
9829    /(?<n>a|b|c)\g<n>*/
9830       abc
9831     0: abc
9832     1: a
9833       accccbbb
9834     0: accccbbb
9835     1: a
9836    
9837    /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
9838        XYabcdY
9839     0: XYabcdY
9840     1: a
9841     2: b
9842     3: <unset>
9843     4: <unset>
9844     5: c
9845     6: d
9846     7: Y
9847    
9848    /-- End of testinput2 --/

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

  ViewVC Help
Powered by ViewVC 1.1.5