/[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 355 by ph10, Mon Jul 7 17:45:23 2008 UTC revision 454 by ph10, Tue Sep 22 09:42:11 2009 UTC
# Line 1  Line 1 
1    /-- This set of tests is not Perl-compatible. It checks on special features
2        of PCRE's API, error diagnostics, and the compiled code of some patterns.
3        It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4        Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5        either because PCRE can't be compatible, or there is potential Perl
6        bug. --/
7    
8    /-- Originally, the Perl 5.10 things were in here too, but now I have separated
9        many (most?) of them out into test 11. However, there may still be some
10        that were overlooked. --/
11    
12  /(a)b|/I  /(a)b|/I
13  Capturing subpattern count = 1  Capturing subpattern count = 1
14  No options  No options
# Line 40  No match Line 51  No match
51    
52  /a+bc/I  /a+bc/I
53  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
54  No options  No options
55  First char = 'a'  First char = 'a'
56  Need char = 'c'  Need char = 'c'
57    
58  /a*bc/I  /a*bc/I
59  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
60  No options  No options
61  No first char  No first char
62  Need char = 'c'  Need char = 'c'
63    
64  /a{3}bc/I  /a{3}bc/I
65  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
66  No options  No options
67  First char = 'a'  First char = 'a'
68  Need char = 'c'  Need char = 'c'
69    
70  /(abc|a+z)/I  /(abc|a+z)/I
71  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
72  No options  No options
73  First char = 'a'  First char = 'a'
74  No need char  No need char
# Line 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 1132  Need char = 'X' Line 1117  Need char = 'X'
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 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 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 1211  No need char Line 1192  No need char
1192          End          End
1193  ------------------------------------------------------------------  ------------------------------------------------------------------
1194  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1195  Options: anchored  Options: anchored
1196  No first char  No first char
1197  No need char  No need char
# 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 4028  No options Line 3949  No options
3949  First char = 'a'  First char = 'a'
3950  Need char = 'b'  Need char = 'b'
3951    
 /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii  
 Capturing subpattern count = 4  
 Max back reference = 4  
 Partial matching not supported  
 Options: anchored caseless  
 No first char  
 No need char  
     1221  
  0: 1221  
  1: 1221  
  2: 1  
     Satan, oscillate my metallic sonatas!  
  0: Satan, oscillate my metallic sonatas!  
  1: <unset>  
  2: <unset>  
  3: Satan, oscillate my metallic sonatas  
  4: S  
     A man, a plan, a canal: Panama!  
  0: A man, a plan, a canal: Panama!  
  1: <unset>  
  2: <unset>  
  3: A man, a plan, a canal: Panama  
  4: A  
     Able was I ere I saw Elba.  
  0: Able was I ere I saw Elba.  
  1: <unset>  
  2: <unset>  
  3: Able was I ere I saw Elba  
  4: A  
     *** Failers  
 No match  
     The quick brown fox  
 No match  
   
3952  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3953  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3954  Options: anchored  Options: anchored
3955  No first char  No first char
3956  No need char  No need char
# Line 4105  No match Line 3991  No match
3991    
3992  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
3993  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3994  Options: extended  Options: extended
3995  First char = '<'  First char = '<'
3996  Need char = '>'  Need char = '>'
# Line 4279  Named capturing subpatterns: Line 4164  Named capturing subpatterns:
4164    one     1    one     1
4165    three   3    three   3
4166    two     2    two     2
 Partial matching not supported  
4167  Options: anchored caseless  Options: anchored caseless
4168  No first char  No first char
4169  No need char  No need char
# Line 4325  No need char Line 4209  No need char
4209    
4210  /(.*)a/Is  /(.*)a/Is
4211  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4212  Options: anchored dotall  Options: anchored dotall
4213  No first char  No first char
4214  Need char = 'a'  Need char = 'a'
# Line 4333  Need char = 'a' Line 4216  Need char = 'a'
4216  /(.*)a\1/Is  /(.*)a\1/Is
4217  Capturing subpattern count = 1  Capturing subpattern count = 1
4218  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4219  Options: dotall  Options: dotall
4220  No first char  No first char
4221  Need char = 'a'  Need char = 'a'
# Line 4341  Need char = 'a' Line 4223  Need char = 'a'
4223  /(.*)a(b)\2/Is  /(.*)a(b)\2/Is
4224  Capturing subpattern count = 2  Capturing subpattern count = 2
4225  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4226  Options: anchored dotall  Options: anchored dotall
4227  No first char  No first char
4228  Need char = 'b'  Need char = 'b'
4229    
4230  /((.*)a|(.*)b)z/Is  /((.*)a|(.*)b)z/Is
4231  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4232  Options: anchored dotall  Options: anchored dotall
4233  No first char  No first char
4234  Need char = 'z'  Need char = 'z'
# Line 4356  Need char = 'z' Line 4236  Need char = 'z'
4236  /((.*)a|(.*)b)z\1/Is  /((.*)a|(.*)b)z\1/Is
4237  Capturing subpattern count = 3  Capturing subpattern count = 3
4238  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4239  Options: dotall  Options: dotall
4240  No first char  No first char
4241  Need char = 'z'  Need char = 'z'
# Line 4364  Need char = 'z' Line 4243  Need char = 'z'
4243  /((.*)a|(.*)b)z\2/Is  /((.*)a|(.*)b)z\2/Is
4244  Capturing subpattern count = 3  Capturing subpattern count = 3
4245  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4246  Options: dotall  Options: dotall
4247  No first char  No first char
4248  Need char = 'z'  Need char = 'z'
# Line 4372  Need char = 'z' Line 4250  Need char = 'z'
4250  /((.*)a|(.*)b)z\3/Is  /((.*)a|(.*)b)z\3/Is
4251  Capturing subpattern count = 3  Capturing subpattern count = 3
4252  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4253  Options: dotall  Options: dotall
4254  No first char  No first char
4255  Need char = 'z'  Need char = 'z'
# Line 4380  Need char = 'z' Line 4257  Need char = 'z'
4257  /((.*)a|^(.*)b)z\3/Is  /((.*)a|^(.*)b)z\3/Is
4258  Capturing subpattern count = 3  Capturing subpattern count = 3
4259  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4260  Options: anchored dotall  Options: anchored dotall
4261  No first char  No first char
4262  Need char = 'z'  Need char = 'z'
4263    
4264  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4265  Capturing subpattern count = 31  Capturing subpattern count = 31
 Partial matching not supported  
4266  Options: anchored dotall  Options: anchored dotall
4267  No first char  No first char
4268  No need char  No need char
# Line 4395  No need char Line 4270  No need char
4270  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4271  Capturing subpattern count = 31  Capturing subpattern count = 31
4272  Max back reference = 31  Max back reference = 31
 Partial matching not supported  
4273  Options: dotall  Options: dotall
4274  No first char  No first char
4275  No need char  No need char
# Line 4403  No need char Line 4277  No need char
4277  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4278  Capturing subpattern count = 32  Capturing subpattern count = 32
4279  Max back reference = 32  Max back reference = 32
 Partial matching not supported  
4280  Options: dotall  Options: dotall
4281  No first char  No first char
4282  No need char  No need char
# Line 4470  Need char = 'c' Line 4343  Need char = 'c'
4343    
4344  /(a+)*zz/I  /(a+)*zz/I
4345  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4346  No options  No options
4347  No first char  No first char
4348  Need char = 'z'  Need char = 'z'
# Line 4607  Failed: two named subpatterns have the s Line 4479  Failed: two named subpatterns have the s
4479  Capturing subpattern count = 3  Capturing subpattern count = 3
4480  Named capturing subpatterns:  Named capturing subpatterns:
4481    elem   2    elem   2
 Partial matching not supported  
4482  No options  No options
4483  First char = '['  First char = '['
4484  Need char = ']'  Need char = ']'
# Line 4625  No match Line 4496  No match
4496  Capturing subpattern count = 3  Capturing subpattern count = 3
4497  Named capturing subpatterns:  Named capturing subpatterns:
4498    elem   2    elem   2
 Partial matching not supported  
4499  No options  No options
4500  First char = '['  First char = '['
4501  Need char = ']'  Need char = ']'
# Line 4732  No need char Line 4602  No need char
4602    
4603  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4604  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4605  Options: caseless  Options: caseless
4606  No first char  No first char
4607  Need char = 'g' (caseless)  Need char = 'g' (caseless)
# Line 4742  Need char = 'g' (caseless) Line 4611  Need char = 'g' (caseless)
4611    
4612  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4613  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4614  Options: caseless  Options: caseless
4615  No first char  No first char
4616  Need char = 'g' (caseless)  Need char = 'g' (caseless)
# Line 4761  Study returned NULL Line 4629  Study returned NULL
4629          End          End
4630  ------------------------------------------------------------------  ------------------------------------------------------------------
4631  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4632  No options  No options
4633  No first char  No first char
4634  Need char = 'b'  Need char = 'b'
# Line 4854  No match Line 4721  No match
4721          End          End
4722  ------------------------------------------------------------------  ------------------------------------------------------------------
4723  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4724  Options:  Options:
4725  No first char  No first char
4726  Need char = 'b'  Need char = 'b'
# Line 4899  Need char = 'b' Line 4765  Need char = 'b'
4765          End          End
4766  ------------------------------------------------------------------  ------------------------------------------------------------------
4767  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
4768  Options:  Options:
4769  First char = 'a'  First char = 'a'
4770  Need char = 'b'  Need char = 'b'
# Line 5337  No match Line 5202  No match
5202          End          End
5203  ------------------------------------------------------------------  ------------------------------------------------------------------
5204  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
5205  Options:  Options:
5206  No first char  No first char
5207  Need char = '3'  Need char = '3'
# Line 5369  Need char = '3' Line 5233  Need char = '3'
5233    
5234  /\b.*/I  /\b.*/I
5235  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5236  No options  No options
5237  No first char  No first char
5238  No need char  No need char
# Line 5378  No need char Line 5241  No need char
5241    
5242  /\b.*/Is  /\b.*/Is
5243  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5244  Options: dotall  Options: dotall
5245  No first char  No first char
5246  No need char  No need char
# Line 5387  No need char Line 5249  No need char
5249    
5250  /(?!.bcd).*/I  /(?!.bcd).*/I
5251  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5252  No options  No options
5253  No first char  No first char
5254  No need char  No need char
# Line 5400  No options Line 5261  No options
5261  First char = 'a'  First char = 'a'
5262  Need char = 'e'  Need char = 'e'
5263      ab\P      ab\P
5264  Partial match  Partial match: ab
5265      abc\P      abc\P
5266  Partial match  Partial match: abc
5267      abcd\P      abcd\P
5268  Partial match  Partial match: abcd
5269      abcde\P      abcde\P
5270   0: abcde   0: abcde
5271      the quick brown abc\P      the quick brown abc\P
5272  Partial match  Partial match: abc
5273      ** Failers\P      ** Failers\P
5274  No match  No match
5275      the quick brown abxyz fox\P      the quick brown abxyz fox\P
# Line 5433  Need char = '/' Line 5294  Need char = '/'
5294   1: 02   1: 02
5295   2: 05   2: 05
5296      1\P      1\P
5297  Partial match  Partial match: 1
5298      1/2\P      1/2\P
5299  Partial match  Partial match: 1/2
5300      1/2/0\P      1/2/0\P
5301  Partial match  Partial match: 1/2/0
5302      1/2/04\P      1/2/04\P
5303   0: 1/2/04   0: 1/2/04
5304   1: 1   1: 1
5305   2: 2   2: 2
5306      0\P      0\P
5307  Partial match  Partial match: 0
5308      02/\P      02/\P
5309  Partial match  Partial match: 02/
5310      02/0\P      02/0\P
5311  Partial match  Partial match: 02/0
5312      02/1\P      02/1\P
5313  Partial match  Partial match: 02/1
5314      ** Failers\P      ** Failers\P
5315  No match  No match
5316      \P      \P
# Line 5471  No match Line 5332  No match
5332    
5333  /0{0,2}ABC/I  /0{0,2}ABC/I
5334  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5335  No options  No options
5336  No first char  No first char
5337  Need char = 'C'  Need char = 'C'
5338    
5339  /\d{3,}ABC/I  /\d{3,}ABC/I
5340  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5341  No options  No options
5342  No first char  No first char
5343  Need char = 'C'  Need char = 'C'
5344    
5345  /\d*ABC/I  /\d*ABC/I
5346  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5347  No options  No options
5348  No first char  No first char
5349  Need char = 'C'  Need char = 'C'
5350    
5351  /[abc]+DE/I  /[abc]+DE/I
5352  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5353  No options  No options
5354  No first char  No first char
5355  Need char = 'E'  Need char = 'E'
# Line 5505  Need char = '3' Line 5362  Need char = '3'
5362      123\P      123\P
5363   0: 123   0: 123
5364      a\P      a\P
5365  Partial match  Partial match: a
5366      b\P      b\P
5367  Partial match  Partial match: b
5368      c\P      c\P
5369  Partial match  Partial match: c
5370      c12\P      c12\P
5371  Partial match  Partial match: c12
5372      c123\P      c123\P
5373   0: c123   0: c123
5374    
# Line 5521  Options: anchored Line 5378  Options: anchored
5378  No first char  No first char
5379  Need char = 'X'  Need char = 'X'
5380      1\P      1\P
5381  Partial match  Partial match: 1
5382      123\P      123\P
5383  Partial match  Partial match: 123
5384      123X      123X
5385   0: 123X   0: 123X
5386      1234\P      1234\P
5387  Partial match  Partial match: 1234
5388      1234X      1234X
5389   0: 1234X   0: 1234X
5390      12345\P      12345\P
5391  Partial match  Partial match: 12345
5392      12345X      12345X
5393   0: 12345X   0: 12345X
5394      *** Failers      *** Failers
# Line 5616  No match Line 5473  No match
5473  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5474  Capturing subpattern count = 3  Capturing subpattern count = 3
5475  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
5476  Options: multiline dotall  Options: multiline dotall
5477  First char = '<'  First char = '<'
5478  Need char = '>'  Need char = '>'
# Line 5669  No match Line 5525  No match
5525      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5526  No match  No match
5527    
5528  /ab.cd/IP  /ab.cd/P
5529      ab-cd      ab-cd
5530   0: ab-cd   0: ab-cd
5531      ab=cd      ab=cd
# Line 5679  No match: POSIX code 17: match failed Line 5535  No match: POSIX code 17: match failed
5535      ab\ncd      ab\ncd
5536  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
5537    
5538  /ab.cd/IPs  /ab.cd/Ps
5539      ab-cd      ab-cd
5540   0: ab-cd   0: ab-cd
5541      ab=cd      ab=cd
# Line 5923  Matched, but too many substrings Line 5779  Matched, but too many substrings
5779    
5780  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
5781  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5782  No options  No options
5783  No first char  No first char
5784  No need char  No need char
# Line 5936  No need char Line 5791  No need char
5791    
5792  /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
5793  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5794  No options  No options
5795  No first char  No first char
5796  No need char  No need char
# Line 5947  No need char Line 5801  No need char
5801    
5802  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
5803  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5804  No options  No options
5805  No first char  No first char
5806  No need char  No need char
# Line 5958  No need char Line 5811  No need char
5811    
5812  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
5813  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5814  No options  No options
5815  No first char  No first char
5816  No need char  No need char
# Line 5971  No need char Line 5823  No need char
5823    
5824  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
5825  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
5826  No options  No options
5827  No first char  No first char
5828  No need char  No need char
# Line 5984  No need char Line 5835  No need char
5835      ((this))      ((this))
5836   0: ((this))   0: ((this))
5837    
5838  /a(b)c/IPN  /a(b)c/PN
5839      abc      abc
5840  Matched with REG_NOSUB  Matched with REG_NOSUB
5841    
5842  /a(?P<name>b)c/IPN  /a(?P<name>b)c/PN
5843      abc      abc
5844  Matched with REG_NOSUB  Matched with REG_NOSUB
5845    
# Line 6313  Failed: octal value is greater than \377 Line 6164  Failed: octal value is greater than \377
6164    
6165  /\s*,\s*/IS  /\s*,\s*/IS
6166  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6167  No options  No options
6168  No first char  No first char
6169  Need char = ','  Need char = ','
# Line 6443  Unknown newline type at: <bad> Line 6293  Unknown newline type at: <bad>
6293    
6294  /.*/I<lf>  /.*/I<lf>
6295  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6296  Options:  Options:
6297  Forced newline sequence: LF  Forced newline sequence: LF
6298  First char at start or follows newline  First char at start or follows newline
# Line 6469  No need char Line 6318  No need char
6318    
6319  /\w+(.)(.)?def/Is  /\w+(.)(.)?def/Is
6320  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
6321  Options: dotall  Options: dotall
6322  No first char  No first char
6323  Need char = 'f'  Need char = 'f'
# Line 6486  Need char = 'f' Line 6334  Need char = 'f'
6334    
6335  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6336  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6337  No options  No options
6338  No first char  No first char
6339  No need char  No need char
# Line 6621  No need char Line 6468  No need char
6468    
6469  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
6470  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6471  No options  No options
6472  No first char  No first char
6473  No need char  No need char
# Line 6680  Starting byte set: a b c d Line 6526  Starting byte set: a b c d
6526          End          End
6527  ------------------------------------------------------------------  ------------------------------------------------------------------
6528  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6529  Options: anchored  Options: anchored
6530  No first char  No first char
6531  Need char = 'b'  Need char = 'b'
# Line 6696  Need char = 'b' Line 6541  Need char = 'b'
6541          End          End
6542  ------------------------------------------------------------------  ------------------------------------------------------------------
6543  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6544  Options: anchored  Options: anchored
6545  No first char  No first char
6546  Need char = 'b'  Need char = 'b'
# Line 6712  Need char = 'b' Line 6556  Need char = 'b'
6556          End          End
6557  ------------------------------------------------------------------  ------------------------------------------------------------------
6558  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6559  Options: anchored  Options: anchored
6560  No first char  No first char
6561  Need char = 'b'  Need char = 'b'
# Line 6728  Need char = 'b' Line 6571  Need char = 'b'
6571          End          End
6572  ------------------------------------------------------------------  ------------------------------------------------------------------
6573  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6574  Options: anchored  Options: anchored
6575  No first char  No first char
6576  Need char = 'A'  Need char = 'A'
# Line 6750  No match Line 6592  No match
6592          End          End
6593  ------------------------------------------------------------------  ------------------------------------------------------------------
6594  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
6595  Options: anchored caseless  Options: anchored caseless
6596  No first char  No first char
6597  Need char = 'A' (caseless)  Need char = 'A' (caseless)
# Line 6761  Need char = 'A' (caseless) Line 6602  Need char = 'A' (caseless)
6602    
6603  /(a*|b*)[cd]/IS  /(a*|b*)[cd]/IS
6604  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6605  No options  No options
6606  No first char  No first char
6607  No need char  No need char
# Line 6769  Starting byte set: a b c d Line 6609  Starting byte set: a b c d
6609    
6610  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
6611  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6612  No options  No options
6613  No first char  No first char
6614  No need char  No need char
# Line 6777  Starting byte set: a b c d Line 6616  Starting byte set: a b c d
6616    
6617  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
6618  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6619  No options  No options
6620  No first char  No first char
6621  No need char  No need char
# Line 6785  Starting byte set: a b c d Line 6623  Starting byte set: a b c d
6623    
6624  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
6625  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
6626  No options  No options
6627  No first char  No first char
6628  No need char  No need char
# Line 7660  Named capturing subpatterns: Line 7497  Named capturing subpatterns:
7497    one     1    one     1
7498    three   3    three   3
7499    two     2    two     2
 Partial matching not supported  
7500  Options: anchored caseless  Options: anchored caseless
7501  No first char  No first char
7502  No need char  No need char
# Line 7694  No match Line 7530  No match
7530  /(?=(\w+))\1:/I  /(?=(\w+))\1:/I
7531  Capturing subpattern count = 1  Capturing subpattern count = 1
7532  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
7533  No options  No options
7534  No first char  No first char
7535  Need char = ':'  Need char = ':'
# Line 7707  Capturing subpattern count = 1 Line 7542  Capturing subpattern count = 1
7542  Max back reference = 1  Max back reference = 1
7543  Named capturing subpatterns:  Named capturing subpatterns:
7544    abc   1    abc   1
 Partial matching not supported  
7545  No options  No options
7546  No first char  No first char
7547  Need char = ':'  Need char = ':'
# Line 7715  Need char = ':' Line 7549  Need char = ':'
7549   0: abcd:   0: abcd:
7550   1: abcd   1: abcd
7551    
 /(?'abc'\w+):\k<abc>{2}/  
     a:aaxyz  
  0: a:aa  
  1: a  
     ab:ababxyz  
  0: ab:abab  
  1: ab  
     ** Failers  
 No match  
     a:axyz  
 No match  
     ab:abxyz  
 No match  
   
7552  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7553      adaa      adaa
7554   0: adaa   0: adaa
# Line 7755  No match Line 7575  No match
7575      bddd      bddd
7576  No match  No match
7577    
 /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x  
     abd  
  0: abd  
  1: a  
     ce  
  0: ce  
   
7578  /(?(<bc))/  /(?(<bc))/
7579  Failed: malformed number or name after (?( at offset 6  Failed: malformed number or name after (?( at offset 6
7580    
# Line 7792  Failed: reference to non-existent subpat Line 7605  Failed: reference to non-existent subpat
7605   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7606   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7607    
 /^(?(DEFINE) (?<A> a) (?<B> b) )  (?&A) (?&B) /x  
     abcd  
  0: ab  
  1: <unset>  
  2: <unset>  
   
 /(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT))  
   (?(DEFINE)  
   (?<NAME_PAT>[a-z]+)  
   (?<ADDRESS_PAT>\d+)  
   )/x  
     metcalfe 33  
  0: metcalfe 33  
  1: metcalfe  
  2: 33  
  3: <unset>  
  4: <unset>  
   
7608  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7609  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7610    
# Line 7987  Need char = 'P' Line 7782  Need char = 'P'
7782   0: PXP   0: PXP
7783   1: P   1: P
7784    
 /(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/  
     1.2.3.4  
  0: 1.2.3.4  
  1: <unset>  
  2: .4  
     131.111.10.206  
  0: 131.111.10.206  
  1: <unset>  
  2: .206  
     10.0.0.0  
  0: 10.0.0.0  
  1: <unset>  
  2: .0  
     ** Failers  
 No match  
     10.6  
 No match  
     455.3.4.5  
 No match  
   
 /\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/  
     1.2.3.4  
  0: 1.2.3.4  
  1: .4  
  2: <unset>  
     131.111.10.206  
  0: 131.111.10.206  
  1: .206  
  2: <unset>  
     10.0.0.0  
  0: 10.0.0.0  
  1: .0  
  2: <unset>  
     ** Failers  
 No match  
     10.6  
 No match  
     455.3.4.5  
 No match  
   
7785  /(?:a(?&abc)b)*(?<abc>x)/  /(?:a(?&abc)b)*(?<abc>x)/
7786      123axbaxbaxbx456      123axbaxbaxbx456
7787   0: axbaxbaxbx   0: axbaxbaxbx
# Line 8064  No match Line 7819  No match
7819     DEFabcABCXYZ     DEFabcABCXYZ
7820  No match  No match
7821    
 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/  
     ababababbbabZXXXX  
  0: ababababbbabZ  
  1: ab  
  2: b  
   
7822  /^(a)\g-2/  /^(a)\g-2/
7823  Failed: reference to non-existent subpattern at offset 7  Failed: reference to non-existent subpattern at offset 7
7824    
# Line 8325  Failed: reference to non-existent subpat Line 8074  Failed: reference to non-existent subpat
8074   0: Y!   0: Y!
8075   1: !   1: !
8076    
 /(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  
   
8077  /(?<A>tom|bon)-\k{A}/  /(?<A>tom|bon)-\k{A}/
8078      tom-tom      tom-tom
8079   0: tom-tom   0: tom-tom
# Line 8357  No match Line 8086  No match
8086      tom-bon      tom-bon
8087  No match  No match
8088    
 /(?<A>tom|bon)-\g{A}/  
     tom-tom  
  0: tom-tom  
  1: tom  
     bon-bon  
  0: bon-bon  
  1: bon  
   
8089  /\g{A/  /\g{A/
8090  Failed: syntax error in subpattern name (missing terminator) at offset 4  Failed: syntax error in subpattern name (missing terminator) at offset 4
8091    
# Line 8459  Failed: syntax error in subpattern name Line 8180  Failed: syntax error in subpattern name
8180   3: <unset>   3: <unset>
8181   4: x   4: x
8182    
 /(?|(abc)|(xyz))\1/  
     abcabc  
  0: abcabc  
  1: abc  
     xyzxyz  
  0: xyzxyz  
  1: xyz  
     ** Failers  
 No match  
     abcxyz  
 No match  
     xyzabc  
 No match  
   
 /(?|(abc)|(xyz))(?1)/  
     abcabc  
  0: abcabc  
  1: abc  
     xyzabc  
  0: xyzabc  
  1: xyz  
     ** Failers  
 No match  
     xyzxyz  
 No match  
   
 /\H\h\V\v/  
     X X\x0a  
  0: X X\x0a  
     X\x09X\x0b  
  0: X\x09X\x0b  
     ** Failers  
 No match  
     \xa0 X\x0a  
 No match  
   
 /\H*\h+\V?\v{3,4}/  
     \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a  
  0: \x09 \xa0X\x0a\x0b\x0c\x0d  
     \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a  
  0: \x09 \xa0\x0a\x0b\x0c\x0d  
     \x09\x20\xa0\x0a\x0b\x0c  
  0: \x09 \xa0\x0a\x0b\x0c  
     ** Failers  
 No match  
     \x09\x20\xa0\x0a\x0b  
 No match  
   
 /\H{3,4}/  
     XY  ABCDE  
  0: ABCD  
     XY  PQR ST  
  0: PQR  
   
 /.\h{3,4}./  
     XY  AB    PQRS  
  0: B    P  
   
 /\h*X\h?\H+Y\H?Z/  
     >XNNNYZ  
  0: XNNNYZ  
     >  X NYQZ  
  0:   X NYQZ  
     ** Failers  
 No match  
     >XYZ  
 No match  
     >  X NY Z  
 No match  
   
 /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/  
     >XY\x0aZ\x0aA\x0bNN\x0c  
  0: XY\x0aZ\x0aA\x0bNN\x0c  
     >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c  
  0: \x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c  
   
8183  /[\h]/BZ  /[\h]/BZ
8184  ------------------------------------------------------------------  ------------------------------------------------------------------
8185          Bra          Bra
# Line 8831  Failed: missing terminating ] for charac Line 8476  Failed: missing terminating ] for charac
8476          End          End
8477  ------------------------------------------------------------------  ------------------------------------------------------------------
8478    
 /^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  
   
8479  /^a+(*FAIL)/C  /^a+(*FAIL)/C
8480      aaaaaa      aaaaaa
8481  --->aaaaaa  --->aaaaaa
# Line 9216  No match Line 8780  No match
8780    
8781  /a\R{2,4}b/I<bsr_anycrlf>  /a\R{2,4}b/I<bsr_anycrlf>
8782  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
8783  Options: bsr_anycrlf  Options: bsr_anycrlf
8784  First char = 'a'  First char = 'a'
8785  Need char = 'b'  Need char = 'b'
# Line 9235  No match Line 8798  No match
8798    
8799  /a\R{2,4}b/I<bsr_unicode>  /a\R{2,4}b/I<bsr_unicode>
8800  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
8801  Options: bsr_unicode  Options: bsr_unicode
8802  First char = 'a'  First char = 'a'
8803  Need char = 'b'  Need char = 'b'
# Line 9385  Failed: unknown POSIX class name at offs Line 8947  Failed: unknown POSIX class name at offs
8947  /[[:a\dz:]]/  /[[:a\dz:]]/
8948  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
8949    
8950  /^(?<name>a|b\g<name>c)/  /(^(a|b\g<-1'c))/
8951      aaaa  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
   
 /^(?<name>a|b\g'name'c)/  
     aaaa  
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
8952    
8953  /^(a|b\g<1>c)/  /^(?+1)(?<a>x|y){0}z/
8954      aaaa      xzxx
8955   0: a   0: xz
8956   1: a      yzyy
8957      bacxxx   0: yz
8958   0: bac      ** Failers
8959   1: bac  No match
8960      bbaccxxx      xxz
8961   0: bbacc  No match
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
8962    
8963  /^(a|b\g'1'c)/  /(\3)(\1)(a)/
8964      aaaa      cat
8965   0: a  No match
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
8966    
8967  /^(a|b\g'-1'c)/  /(\3)(\1)(a)/<JS>
8968      aaaa      cat
8969   0: a   0: a
8970   1: a   1:
8971      bacxxx   2:
8972   0: bac   3: a
8973   1: bac  
8974      bbaccxxx  /TA]/
8975   0: bbacc      The ACTA] comes
8976   1: bbacc   0: TA]
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
8977    
8978  /(^(a|b\g<-1>c))/  /TA]/<JS>
8979      aaaa  Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
  0: a  
  1: a  
  2: a  
     bacxxx  
  0: bac  
  1: bac  
  2: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
  2: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
  2: bbbaccc  
8980    
8981  /(^(a|b\g<-1'c))/  /(?2)[]a()b](abc)/
8982  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15  Failed: reference to non-existent subpattern at offset 3
8983    
8984  /(^(a|b\g{-1}))/  /(?2)[^]a()b](abc)/
8985      bacxxx  Failed: reference to non-existent subpattern at offset 3
 No match  
   
 /(?-i:\g<name>)(?i:(?<name>a))/  
     XaaX  
  0: aa  
  1: a  
     XAAX  
  0: AA  
  1: A  
   
 /(?i:\g<name>)(?-i:(?<name>a))/  
     XaaX  
  0: aa  
  1: a  
     ** Failers  
 No match  
     XAAX  
 No match  
   
 /(?-i:\g<+1>)(?i:(a))/  
     XaaX  
  0: aa  
  1: a  
     XAAX  
  0: AA  
  1: A  
   
 /(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/  
   
 /(?<n>a|b|c)\g<n>*/  
    abc  
  0: abc  
  1: a  
    accccbbb  
  0: accccbbb  
  1: a  
   
 /^(?+1)(?<a>x|y){0}z/  
     xzxx  
  0: xz  
  1: <unset>  
     yzyy  
  0: yz  
  1: <unset>  
     ** Failers  
 No match  
     xxz  
 No match  
   
 /(\3)(\1)(a)/  
     cat  
 No match  
   
 /(\3)(\1)(a)/<JS>  
     cat  
  0: a  
  1:  
  2:  
  3: a  
   
 /TA]/  
     The ACTA] comes  
  0: TA]  
   
 /TA]/<JS>  
 Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2  
   
 /(?2)[]a()b](abc)/  
 Failed: reference to non-existent subpattern at offset 3  
   
 /(?2)[^]a()b](abc)/  
 Failed: reference to non-existent subpattern at offset 3  
8986    
8987  /(?1)[]a()b](abc)/  /(?1)[]a()b](abc)/
8988      abcbabc      abcbabc
# Line 9638  No first char Line 9071  No first char
9071  No need char  No need char
9072  Starting byte set: x y z  Starting byte set: x y z
9073    
9074  / End of testinput2 /  /(?(?=.*b)b|^)/CI
9075    Capturing subpattern count = 0
9076    Options:
9077    No first char
9078    No need char
9079       adc
9080    --->adc
9081     +0 ^       (?(?=.*b)b|^)
9082     +2 ^       (?=.*b)
9083     +5 ^       .*
9084     +7 ^  ^    b
9085     +7 ^ ^     b
9086     +7 ^^      b
9087     +7 ^       b
9088    +12 ^       )
9089    +13 ^
9090     0:
9091       abc
9092    --->abc
9093     +0 ^       (?(?=.*b)b|^)
9094     +2 ^       (?=.*b)
9095     +5 ^       .*
9096     +7 ^  ^    b
9097     +7 ^ ^     b
9098     +7 ^^      b
9099     +8 ^ ^     )
9100     +9 ^       b
9101     +0  ^      (?(?=.*b)b|^)
9102     +2  ^      (?=.*b)
9103     +5  ^      .*
9104     +7  ^ ^    b
9105     +7  ^^     b
9106     +7  ^      b
9107     +8  ^^     )
9108     +9  ^      b
9109    +10  ^^     |
9110    +13  ^^
9111     0: b
9112    
9113    /(?(?=b).*b|^d)/I
9114    Capturing subpattern count = 0
9115    No options
9116    No first char
9117    No need char
9118    
9119    /(?(?=.*b).*b|^d)/I
9120    Capturing subpattern count = 0
9121    No options
9122    First char at start or follows newline
9123    No need char
9124    
9125    /a?|b?/P
9126        abc
9127     0: a
9128        ** Failers
9129     0:
9130        ddd\N
9131    No match: POSIX code 17: match failed
9132    
9133    /xyz/C
9134      xyz
9135    --->xyz
9136     +0 ^       x
9137     +1 ^^      y
9138     +2 ^ ^     z
9139     +3 ^  ^
9140     0: xyz
9141      abcxyz
9142    --->abcxyz
9143     +0    ^       x
9144     +1    ^^      y
9145     +2    ^ ^     z
9146     +3    ^  ^
9147     0: xyz
9148      abcxyz\Y
9149    --->abcxyz
9150     +0 ^          x
9151     +0  ^         x
9152     +0   ^        x
9153     +0    ^       x
9154     +1    ^^      y
9155     +2    ^ ^     z
9156     +3    ^  ^
9157     0: xyz
9158      ** Failers
9159    No match
9160      abc
9161    No match
9162      abc\Y
9163    --->abc
9164     +0 ^       x
9165     +0  ^      x
9166     +0   ^     x
9167     +0    ^    x
9168    No match
9169      abcxypqr
9170    No match
9171      abcxypqr\Y
9172    --->abcxypqr
9173     +0 ^            x
9174     +0  ^           x
9175     +0   ^          x
9176     +0    ^         x
9177     +1    ^^        y
9178     +2    ^ ^       z
9179     +0     ^        x
9180     +0      ^       x
9181     +0       ^      x
9182     +0        ^     x
9183     +0         ^    x
9184    No match
9185    
9186    /^"((?(?=[a])[^"])|b)*"$/C
9187        "ab"
9188    --->"ab"
9189     +0 ^        ^
9190     +1 ^        "
9191     +2 ^^       ((?(?=[a])[^"])|b)*
9192     +3 ^^       (?(?=[a])[^"])
9193     +5 ^^       (?=[a])
9194     +8 ^^       [a]
9195    +11 ^ ^      )
9196    +12 ^^       [^"]
9197    +16 ^ ^      )
9198    +17 ^ ^      |
9199     +3 ^ ^      (?(?=[a])[^"])
9200     +5 ^ ^      (?=[a])
9201     +8 ^ ^      [a]
9202    +21 ^ ^      "
9203    +18 ^ ^      b
9204    +19 ^  ^     )
9205     +3 ^  ^     (?(?=[a])[^"])
9206     +5 ^  ^     (?=[a])
9207     +8 ^  ^     [a]
9208    +21 ^  ^     "
9209    +22 ^   ^    $
9210    +23 ^   ^
9211     0: "ab"
9212     1:
9213    
9214    /^"((?(?=[a])[^"])|b)*"$/
9215        "ab"
9216     0: "ab"
9217     1:
9218    
9219    /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9220    Failed: reference to non-existent subpattern at offset 5
9221    
9222    /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9223        XYabcdY
9224     0: XYabcdY
9225     1: a
9226     2: b
9227     3: c
9228     4: d
9229     5: Y
9230    
9231    /Xa{2,4}b/
9232        X\P
9233    Partial match: X
9234        Xa\P
9235    Partial match: Xa
9236        Xaa\P
9237    Partial match: Xaa
9238        Xaaa\P
9239    Partial match: Xaaa
9240        Xaaaa\P
9241    Partial match: Xaaaa
9242    
9243    /Xa{2,4}?b/
9244        X\P
9245    Partial match: X
9246        Xa\P
9247    Partial match: Xa
9248        Xaa\P
9249    Partial match: Xaa
9250        Xaaa\P
9251    Partial match: Xaaa
9252        Xaaaa\P
9253    Partial match: Xaaaa
9254    
9255    /Xa{2,4}+b/
9256        X\P
9257    Partial match: X
9258        Xa\P
9259    Partial match: Xa
9260        Xaa\P
9261    Partial match: Xaa
9262        Xaaa\P
9263    Partial match: Xaaa
9264        Xaaaa\P
9265    Partial match: Xaaaa
9266    
9267    /X\d{2,4}b/
9268        X\P
9269    Partial match: X
9270        X3\P
9271    Partial match: X3
9272        X33\P
9273    Partial match: X33
9274        X333\P
9275    Partial match: X333
9276        X3333\P
9277    Partial match: X3333
9278    
9279    /X\d{2,4}?b/
9280        X\P
9281    Partial match: X
9282        X3\P
9283    Partial match: X3
9284        X33\P
9285    Partial match: X33
9286        X333\P
9287    Partial match: X333
9288        X3333\P
9289    Partial match: X3333
9290    
9291    /X\d{2,4}+b/
9292        X\P
9293    Partial match: X
9294        X3\P
9295    Partial match: X3
9296        X33\P
9297    Partial match: X33
9298        X333\P
9299    Partial match: X333
9300        X3333\P
9301    Partial match: X3333
9302    
9303    /X\D{2,4}b/
9304        X\P
9305    Partial match: X
9306        Xa\P
9307    Partial match: Xa
9308        Xaa\P
9309    Partial match: Xaa
9310        Xaaa\P
9311    Partial match: Xaaa
9312        Xaaaa\P
9313    Partial match: Xaaaa
9314    
9315    /X\D{2,4}?b/
9316        X\P
9317    Partial match: X
9318        Xa\P
9319    Partial match: Xa
9320        Xaa\P
9321    Partial match: Xaa
9322        Xaaa\P
9323    Partial match: Xaaa
9324        Xaaaa\P
9325    Partial match: Xaaaa
9326    
9327    /X\D{2,4}+b/
9328        X\P
9329    Partial match: X
9330        Xa\P
9331    Partial match: Xa
9332        Xaa\P
9333    Partial match: Xaa
9334        Xaaa\P
9335    Partial match: Xaaa
9336        Xaaaa\P
9337    Partial match: Xaaaa
9338    
9339    /X[abc]{2,4}b/
9340        X\P
9341    Partial match: X
9342        Xa\P
9343    Partial match: Xa
9344        Xaa\P
9345    Partial match: Xaa
9346        Xaaa\P
9347    Partial match: Xaaa
9348        Xaaaa\P
9349    Partial match: Xaaaa
9350    
9351    /X[abc]{2,4}?b/
9352        X\P
9353    Partial match: X
9354        Xa\P
9355    Partial match: Xa
9356        Xaa\P
9357    Partial match: Xaa
9358        Xaaa\P
9359    Partial match: Xaaa
9360        Xaaaa\P
9361    Partial match: Xaaaa
9362    
9363    /X[abc]{2,4}+b/
9364        X\P
9365    Partial match: X
9366        Xa\P
9367    Partial match: Xa
9368        Xaa\P
9369    Partial match: Xaa
9370        Xaaa\P
9371    Partial match: Xaaa
9372        Xaaaa\P
9373    Partial match: Xaaaa
9374    
9375    /X[^a]{2,4}b/
9376        X\P
9377    Partial match: X
9378        Xz\P
9379    Partial match: Xz
9380        Xzz\P
9381    Partial match: Xzz
9382        Xzzz\P
9383    Partial match: Xzzz
9384        Xzzzz\P
9385    Partial match: Xzzzz
9386    
9387    /X[^a]{2,4}?b/
9388        X\P
9389    Partial match: X
9390        Xz\P
9391    Partial match: Xz
9392        Xzz\P
9393    Partial match: Xzz
9394        Xzzz\P
9395    Partial match: Xzzz
9396        Xzzzz\P
9397    Partial match: Xzzzz
9398    
9399    /X[^a]{2,4}+b/
9400        X\P
9401    Partial match: X
9402        Xz\P
9403    Partial match: Xz
9404        Xzz\P
9405    Partial match: Xzz
9406        Xzzz\P
9407    Partial match: Xzzz
9408        Xzzzz\P
9409    Partial match: Xzzzz
9410    
9411    /(Y)X\1{2,4}b/
9412        YX\P
9413    Partial match: YX
9414        YXY\P
9415    Partial match: YXY
9416        YXYY\P
9417    Partial match: YXYY
9418        YXYYY\P
9419    Partial match: YXYYY
9420        YXYYYY\P
9421    Partial match: YXYYYY
9422    
9423    /(Y)X\1{2,4}?b/
9424        YX\P
9425    Partial match: YX
9426        YXY\P
9427    Partial match: YXY
9428        YXYY\P
9429    Partial match: YXYY
9430        YXYYY\P
9431    Partial match: YXYYY
9432        YXYYYY\P
9433    Partial match: YXYYYY
9434    
9435    /(Y)X\1{2,4}+b/
9436        YX\P
9437    Partial match: YX
9438        YXY\P
9439    Partial match: YXY
9440        YXYY\P
9441    Partial match: YXYY
9442        YXYYY\P
9443    Partial match: YXYYY
9444        YXYYYY\P
9445    Partial match: YXYYYY
9446    
9447    /\++\KZ|\d+X|9+Y/
9448        ++++123999\P
9449    Partial match: 123999
9450        ++++123999Y\P
9451     0: 999Y
9452        ++++Z1234\P
9453     0: Z
9454    
9455    /Z(*F)/
9456        Z\P
9457    No match
9458        ZA\P
9459    No match
9460    
9461    /Z(?!)/
9462        Z\P
9463    No match
9464        ZA\P
9465    No match
9466    
9467    /dog(sbody)?/
9468        dogs\P
9469     0: dog
9470        dogs\P\P
9471    Partial match: dogs
9472    
9473    /dog(sbody)??/
9474        dogs\P
9475     0: dog
9476        dogs\P\P
9477     0: dog
9478    
9479    /dog|dogsbody/
9480        dogs\P
9481     0: dog
9482        dogs\P\P
9483     0: dog
9484    
9485    /dogsbody|dog/
9486        dogs\P
9487     0: dog
9488        dogs\P\P
9489    Partial match: dogs
9490    
9491    /\bthe cat\b/
9492        the cat\P
9493     0: the cat
9494        the cat\P\P
9495    Partial match: the cat
9496    
9497    /abc/
9498       abc\P
9499     0: abc
9500       abc\P\P
9501     0: abc
9502    
9503    /\w+A/P
9504       CDAAAAB
9505     0: CDAAAA
9506    
9507    /\w+A/PU
9508       CDAAAAB
9509     0: CDA
9510    
9511    /abc\K123/
9512        xyzabc123pqr
9513     0: 123
9514        xyzabc12\P
9515    Partial match: abc12
9516        xyzabc12\P\P
9517    Partial match: abc12
9518    
9519    /(?<=abc)123/
9520        xyzabc123pqr
9521     0: 123
9522        xyzabc12\P
9523    Partial match: abc12
9524        xyzabc12\P\P
9525    Partial match: abc12
9526    
9527    /\babc\b/
9528        +++abc+++
9529     0: abc
9530        +++ab\P
9531    Partial match: +ab
9532        +++ab\P\P
9533    Partial match: +ab
9534    
9535    /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9536    ------------------------------------------------------------------
9537            Bra
9538            Once
9539            Recurse
9540            Ket
9541            Once
9542            Recurse
9543            Ket
9544            Cond
9545            Cond def
9546            CBra 1
9547            <
9548            [^m]
9549            [^>]
9550            >
9551            [^<]
9552            Ket
9553            CBra 2
9554            \w*+
9555            Ket
9556            Ket
9557            Ket
9558            End
9559    ------------------------------------------------------------------
9560    
9561    /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9562    ------------------------------------------------------------------
9563            Bra
9564            Once
9565            Recurse
9566            Ket
9567            Once
9568            Recurse
9569            Ket
9570            Cond
9571            Cond def
9572            CBra 1
9573            <
9574            [\x00-/:-\xff] (neg)
9575            [^>]
9576            >
9577            [^<]
9578            Ket
9579            CBra 2
9580            \w*+
9581            Ket
9582            Ket
9583            Ket
9584            End
9585    ------------------------------------------------------------------
9586    
9587    /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9588    ------------------------------------------------------------------
9589            Bra
9590            CBra 1
9591            ab
9592            Ket
9593            CBra 2
9594            x
9595            CBra 3
9596            y
9597            Ket
9598            z
9599            CBra 4
9600            cd
9601            Close 4
9602            Close 2
9603            *ACCEPT
9604            Ket
9605            Ket
9606            pq
9607            Ket
9608            End
9609    ------------------------------------------------------------------
9610    
9611    /abc\K/+
9612        abcdef
9613     0:
9614     0+ def
9615        abcdef\N\N
9616     0:
9617     0+ def
9618        xyzabcdef\N\N
9619     0:
9620     0+ def
9621        ** Failers
9622    No match
9623        abcdef\N
9624    No match
9625        xyzabcdef\N
9626    No match
9627    
9628    /^(?:(?=abc)|abc\K)/+
9629        abcdef
9630     0:
9631     0+ abcdef
9632        abcdef\N\N
9633     0:
9634     0+ def
9635        ** Failers
9636    No match
9637        abcdef\N
9638    No match
9639    
9640    /a?b?/+
9641        xyz
9642     0:
9643     0+ xyz
9644        xyzabc
9645     0:
9646     0+ xyzabc
9647        xyzabc\N
9648     0: ab
9649     0+ c
9650        xyzabc\N\N
9651     0:
9652     0+ yzabc
9653        xyz\N\N
9654     0:
9655     0+ yz
9656        ** Failers
9657     0:
9658     0+ ** Failers
9659        xyz\N
9660    No match
9661    
9662    /^a?b?/+
9663        xyz
9664     0:
9665     0+ xyz
9666        xyzabc
9667     0:
9668     0+ xyzabc
9669        ** Failers
9670     0:
9671     0+ ** Failers
9672        xyzabc\N
9673    No match
9674        xyzabc\N\N
9675    No match
9676        xyz\N\N
9677    No match
9678        xyz\N
9679    No match
9680    
9681    /^(?<name>a|b\g<name>c)/
9682        aaaa
9683     0: a
9684     1: a
9685        bacxxx
9686     0: bac
9687     1: bac
9688        bbaccxxx
9689     0: bbacc
9690     1: bbacc
9691        bbbacccxx
9692     0: bbbaccc
9693     1: bbbaccc
9694    
9695    /^(?<name>a|b\g'name'c)/
9696        aaaa
9697     0: a
9698     1: a
9699        bacxxx
9700     0: bac
9701     1: bac
9702        bbaccxxx
9703     0: bbacc
9704     1: bbacc
9705        bbbacccxx
9706     0: bbbaccc
9707     1: bbbaccc
9708    
9709    /^(a|b\g<1>c)/
9710        aaaa
9711     0: a
9712     1: a
9713        bacxxx
9714     0: bac
9715     1: bac
9716        bbaccxxx
9717     0: bbacc
9718     1: bbacc
9719        bbbacccxx
9720     0: bbbaccc
9721     1: bbbaccc
9722    
9723    /^(a|b\g'1'c)/
9724        aaaa
9725     0: a
9726     1: a
9727        bacxxx
9728     0: bac
9729     1: bac
9730        bbaccxxx
9731     0: bbacc
9732     1: bbacc
9733        bbbacccxx
9734     0: bbbaccc
9735     1: bbbaccc
9736    
9737    /^(a|b\g'-1'c)/
9738        aaaa
9739     0: a
9740     1: a
9741        bacxxx
9742     0: bac
9743     1: bac
9744        bbaccxxx
9745     0: bbacc
9746     1: bbacc
9747        bbbacccxx
9748     0: bbbaccc
9749     1: bbbaccc
9750    
9751    /(^(a|b\g<-1>c))/
9752        aaaa
9753     0: a
9754     1: a
9755     2: a
9756        bacxxx
9757     0: bac
9758     1: bac
9759     2: bac
9760        bbaccxxx
9761     0: bbacc
9762     1: bbacc
9763     2: bbacc
9764        bbbacccxx
9765     0: bbbaccc
9766     1: bbbaccc
9767     2: bbbaccc
9768    
9769    /(?-i:\g<name>)(?i:(?<name>a))/
9770        XaaX
9771     0: aa
9772     1: a
9773        XAAX
9774     0: AA
9775     1: A
9776    
9777    /(?i:\g<name>)(?-i:(?<name>a))/
9778        XaaX
9779     0: aa
9780     1: a
9781        ** Failers
9782    No match
9783        XAAX
9784    No match
9785    
9786    /(?-i:\g<+1>)(?i:(a))/
9787        XaaX
9788     0: aa
9789     1: a
9790        XAAX
9791     0: AA
9792     1: A
9793    
9794    /(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/
9795    
9796    /(?<n>a|b|c)\g<n>*/
9797       abc
9798     0: abc
9799     1: a
9800       accccbbb
9801     0: accccbbb
9802     1: a
9803    
9804    /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
9805        XYabcdY
9806     0: XYabcdY
9807     1: a
9808     2: b
9809     3: <unset>
9810     4: <unset>
9811     5: c
9812     6: d
9813     7: Y
9814    
9815    /(?<=b(?1)|zzz)(a)/
9816        xbaax
9817     0: a
9818     1: a
9819        xzzzax
9820     0: a
9821     1: a
9822    
9823    /(a)(?<=b\1)/
9824    Failed: lookbehind assertion is not fixed length at offset 10
9825    
9826    /(a)(?<=b+(?1))/
9827    Failed: lookbehind assertion is not fixed length at offset 13
9828    
9829    /(a+)(?<=b(?1))/
9830    Failed: lookbehind assertion is not fixed length at offset 14
9831    
9832    /(a(?<=b(?1)))/
9833    Failed: lookbehind assertion is not fixed length at offset 13
9834    
9835    /(?<=b(?1))xyz/
9836    Failed: reference to non-existent subpattern at offset 8
9837    
9838    /(?<=b(?1))xyz(b+)pqrstuvew/
9839    Failed: lookbehind assertion is not fixed length at offset 26
9840    
9841    /-- End of testinput2 --/

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

  ViewVC Help
Powered by ViewVC 1.1.5