/[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 621 by ph10, Mon Jul 18 10:14:09 2011 UTC revision 1298 by ph10, Fri Mar 22 16:13:13 2013 UTC
# Line 3  Line 3 
3      It also checks the non-Perl syntax the PCRE supports (Python, .NET,      It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4      Oniguruma). Finally, there are some tests where PCRE and Perl differ,      Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5      either because PCRE can't be compatible, or there is a possible Perl      either because PCRE can't be compatible, or there is a possible Perl
6      bug. --/      bug.
7    
8        NOTE: This is a non-UTF set of tests. When UTF support is needed, use
9        test 5, and if Unicode Property Support is needed, use test 7. --/
10    
 /-- Originally, the Perl >= 5.10 things were in here too, but now I have  
     separated many (most?) of them out into test 11. However, there may still  
     be some that were overlooked. --/  
   
11  /(a)b|/I  /(a)b|/I
12  Capturing subpattern count = 1  Capturing subpattern count = 1
13  No options  No options
# Line 377  No need char Line 376  No need char
376   2: <unset>   2: <unset>
377   3: def   3: def
378    
 /abc/P  
     abc  
  0: abc  
     *** Failers  
 No match: POSIX code 17: match failed  
   
 /^abc|def/P  
     abcdef  
  0: abc  
     abcdef\B  
  0: def  
   
 /.*((abc)$|(def))/P  
     defabc  
  0: defabc  
  1: abc  
  2: abc  
     \Zdefabc  
  0: def  
  1: def  
  3: def  
   
 /the quick brown fox/P  
     the quick brown fox  
  0: the quick brown fox  
     *** Failers  
 No match: POSIX code 17: match failed  
     The Quick Brown Fox  
 No match: POSIX code 17: match failed  
   
 /the quick brown fox/Pi  
     the quick brown fox  
  0: the quick brown fox  
     The Quick Brown Fox  
  0: The Quick Brown Fox  
   
 /abc.def/P  
     *** Failers  
 No match: POSIX code 17: match failed  
     abc\ndef  
 No match: POSIX code 17: match failed  
   
 /abc$/P  
     abc  
  0: abc  
     abc\n  
  0: abc  
   
 /(abc)\2/P  
 Failed: POSIX code 15: bad back reference at offset 7  
   
 /(abc\1)/P  
     abc  
 No match: POSIX code 17: match failed  
   
379  /)/  /)/
380  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
381    
# Line 507  Capturing subpattern count = 0 Line 451  Capturing subpattern count = 0
451  No options  No options
452  First char = 'f'  First char = 'f'
453  Need char = 'o'  Need char = 'o'
454    Max lookbehind = 6
455      foo      foo
456   0: foo   0: foo
457      catfoo      catfoo
# Line 689  Capturing subpattern count = 0 Line 634  Capturing subpattern count = 0
634  Options: anchored multiline  Options: anchored multiline
635  No first char  No first char
636  No need char  No need char
637    Max lookbehind = 1
638    
639  /^abc/Im  /^abc/Im
640  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 714  Capturing subpattern count = 0 Line 660  Capturing subpattern count = 0
660  No options  No options
661  No first char  No first char
662  No need char  No need char
663    Max lookbehind = 3
664  Subject length lower bound = 1  Subject length lower bound = 1
665  Starting byte set: a b  Starting byte set: a b
666    
# Line 722  Capturing subpattern count = 1 Line 669  Capturing subpattern count = 1
669  No options  No options
670  No first char  No first char
671  Need char = 'a'  Need char = 'a'
672    Max lookbehind = 3
673  Subject length lower bound = 5  Subject length lower bound = 5
674  Starting byte set: a o  Starting byte set: a o
675    
# Line 739  Contains explicit CR or LF match Line 687  Contains explicit CR or LF match
687  Options: multiline  Options: multiline
688  No first char  No first char
689  Need char = 'r'  Need char = 'r'
690    Max lookbehind = 4
691      foo\nbarbar      foo\nbarbar
692   0: bar   0: bar
693      ***Failers      ***Failers
# Line 756  Contains explicit CR or LF match Line 705  Contains explicit CR or LF match
705  Options: multiline  Options: multiline
706  First char at start or follows newline  First char at start or follows newline
707  Need char = 'r'  Need char = 'r'
708    Max lookbehind = 4
709      foo\nbarbar      foo\nbarbar
710   0: bar   0: bar
711      ***Failers      ***Failers
# Line 797  Capturing subpattern count = 0 Line 747  Capturing subpattern count = 0
747  No options  No options
748  First char = '-'  First char = '-'
749  Need char = 't'  Need char = 't'
750    Max lookbehind = 7
751      the bullock-cart      the bullock-cart
752   0: -cart   0: -cart
753      a donkey-cart race      a donkey-cart race
# Line 813  Capturing subpattern count = 0 Line 764  Capturing subpattern count = 0
764  No options  No options
765  No first char  No first char
766  No need char  No need char
767    Max lookbehind = 3
768    
769  /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
770  Capturing subpattern count = 2  Capturing subpattern count = 2
771  No options  No options
772  First char at start or follows newline  No first char
773  No need char  No need char
774    Max lookbehind = 4
775      alphabetabcd      alphabetabcd
776   0: alphabetabcd   0: alphabetabcd
777   1: abcd   1: abcd
# Line 832  Capturing subpattern count = 0 Line 785  Capturing subpattern count = 0
785  No options  No options
786  First char = 'Z'  First char = 'Z'
787  Need char = 'Z'  Need char = 'Z'
788    Max lookbehind = 4
789      abxyZZ      abxyZZ
790   0: ZZ   0: ZZ
791      abXyZZ      abXyZZ
# Line 860  Capturing subpattern count = 1 Line 814  Capturing subpattern count = 1
814  No options  No options
815  First char = 'b'  First char = 'b'
816  Need char = 'r'  Need char = 'r'
817    Max lookbehind = 4
818      bar      bar
819   0: bar   0: bar
820      foobbar      foobbar
# Line 1031  Failed: numbers out of order in {} quant Line 986  Failed: numbers out of order in {} quant
986  /abc/\  /abc/\
987  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
988    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
989  /abc/\i  /abc/\i
990  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
991    
# Line 1149  No first char Line 1101  No first char
1101  No need char  No need char
1102      abc\00def\L\C0      abc\00def\L\C0
1103   0: abc\x00def   0: abc\x00def
1104   0C abc (7)   0C abc\x00def (7)
1105   0L abc   0L abc
1106    
1107  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
# Line 1264  Capturing subpattern count = 0 Line 1216  Capturing subpattern count = 0
1216  No options  No options
1217  First char = 'i'  First char = 'i'
1218  Need char = 's'  Need char = 's'
1219      Mississippi  Max lookbehind = 1
  0: iss  
  0+ issippi  
   
 /\Biss\B/I+P  
1220      Mississippi      Mississippi
1221   0: iss   0: iss
1222   0+ issippi   0+ issippi
# Line 1289  Capturing subpattern count = 0 Line 1237  Capturing subpattern count = 0
1237  No options  No options
1238  First char = 'i'  First char = 'i'
1239  Need char = 's'  Need char = 's'
1240    Max lookbehind = 1
1241      Mississippi      Mississippi
1242   0: iss   0: iss
1243   0+ issippi   0+ issippi
# Line 1298  Capturing subpattern count = 0 Line 1247  Capturing subpattern count = 0
1247  No options  No options
1248  First char = 'i'  First char = 'i'
1249  Need char = 's'  Need char = 's'
1250    Max lookbehind = 1
1251      Mississippi      Mississippi
1252   0: iss   0: iss
1253   0+ issippi   0+ issippi
# Line 1313  Capturing subpattern count = 0 Line 1263  Capturing subpattern count = 0
1263  No options  No options
1264  First char = 'i'  First char = 'i'
1265  Need char = 's'  Need char = 's'
1266    Max lookbehind = 1
1267      Mississippi      Mississippi
1268   0: iss   0: iss
1269   0+ issippi   0+ issippi
# Line 1324  Capturing subpattern count = 0 Line 1275  Capturing subpattern count = 0
1275  No options  No options
1276  First char = 'i'  First char = 'i'
1277  Need char = 's'  Need char = 's'
1278    Max lookbehind = 1
1279      Mississippi      Mississippi
1280   0: iss   0: iss
1281   0+ issippi   0+ issippi
# Line 1402  Capturing subpattern count = 0 Line 1354  Capturing subpattern count = 0
1354  Contains explicit CR or LF match  Contains explicit CR or LF match
1355  Options: multiline  Options: multiline
1356  First char at start or follows newline  First char at start or follows newline
1357  Need char = 10  Need char = \x0a
1358      ab\nab\ncd      ab\nab\ncd
1359   0: ab\x0a   0: ab\x0a
1360   0+ ab\x0acd   0+ ab\x0acd
# Line 1504  Capturing subpattern count = 0 Line 1456  Capturing subpattern count = 0
1456  No options  No options
1457  No first char  No first char
1458  No need char  No need char
1459    Max lookbehind = 3
1460    
1461  /abc(?!pqr)/I  /abc(?!pqr)/I
1462  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 1689  No need char Line 1642  No need char
1642      \Nabc      \Nabc
1643  No match  No match
1644    
 /a*(b+)(z)(z)/P  
     aaaabbbbzzzz  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O0  
     aaaabbbbzzzz\O1  
  0: aaaabbbbzz  
     aaaabbbbzzzz\O2  
  0: aaaabbbbzz  
  1: bbbb  
     aaaabbbbzzzz\O3  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
     aaaabbbbzzzz\O4  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O5  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
   
1645  /^.?abcd/IS  /^.?abcd/IS
1646  Capturing subpattern count = 0  Capturing subpattern count = 0
1647  Options: anchored  Options: anchored
# Line 3311  Capturing subpattern count = 0 Line 3237  Capturing subpattern count = 0
3237  No options  No options
3238  First char = '8'  First char = '8'
3239  Need char = 'X'  Need char = 'X'
3240    Max lookbehind = 1
3241    
3242  |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ  |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
3243  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3324  Capturing subpattern count = 0 Line 3251  Capturing subpattern count = 0
3251  No options  No options
3252  First char = '$'  First char = '$'
3253  Need char = 'X'  Need char = 'X'
3254    Max lookbehind = 1
3255    
3256  /(.*)\d+\1/I  /(.*)\d+\1/I
3257  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 3839  Capturing subpattern count = 1 Line 3767  Capturing subpattern count = 1
3767  No options  No options
3768  First char = 'x'  First char = 'x'
3769  Need char = 'z'  Need char = 'z'
3770    Max lookbehind = 3
3771     abcxyz\C+     abcxyz\C+
3772  Callout 0: last capture = 1  Callout 0: last capture = 1
3773   0: <unset>   0: <unset>
# Line 4430  No first char Line 4359  No first char
4359  Need char = 'z'  Need char = 'z'
4360    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4361  Minimum match() limit = 8  Minimum match() limit = 8
4362  Minimum match() recursion limit = 7  Minimum match() recursion limit = 6
4363   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4364   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4365    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4366  Minimum match() limit = 32768  Minimum match() limit = 32768
4367  Minimum match() recursion limit = 43  Minimum match() recursion limit = 42
4368  No match  No match
4369    
4370  /(aaa(?C1)bbb|ab)/I  /(aaa(?C1)bbb|ab)/I
# Line 5486  Capturing subpattern count = 0 Line 5415  Capturing subpattern count = 0
5415  No options  No options
5416  No first char  No first char
5417  No need char  No need char
5418    Max lookbehind = 1
5419    ab cd\>1    ab cd\>1
5420   0:  cd   0:  cd
5421    
# Line 5494  Capturing subpattern count = 0 Line 5424  Capturing subpattern count = 0
5424  Options: dotall  Options: dotall
5425  No first char  No first char
5426  No need char  No need char
5427    Max lookbehind = 1
5428    ab cd\>1    ab cd\>1
5429   0:  cd   0:  cd
5430    
# Line 5802  Max back reference = 1 Line 5733  Max back reference = 1
5733  Options: multiline dotall  Options: multiline dotall
5734  First char = '<'  First char = '<'
5735  Need char = '>'  Need char = '>'
5736      <!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>      \J1024<!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>
5737   0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>   0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>
5738   1: seite   1: seite
5739   2: \x0a   2: \x0a
# Line 5851  No match Line 5782  No match
5782      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5783  No match  No match
5784    
 /ab.cd/P  
     ab-cd  
  0: ab-cd  
     ab=cd  
  0: ab=cd  
     ** Failers  
 No match: POSIX code 17: match failed  
     ab\ncd  
 No match: POSIX code 17: match failed  
   
 /ab.cd/Ps  
     ab-cd  
  0: ab-cd  
     ab=cd  
  0: ab=cd  
     ab\ncd  
  0: ab\x0acd  
   
5785  /(?i)(?-i)AbCd/I  /(?i)(?-i)AbCd/I
5786  Capturing subpattern count = 0  Capturing subpattern count = 0
5787  No options  No options
# Line 6161  No need char Line 6074  No need char
6074      ((this))      ((this))
6075   0: ((this))   0: ((this))
6076    
 /a(b)c/PN  
     abc  
 Matched with REG_NOSUB  
   
 /a(?P<name>b)c/PN  
     abc  
 Matched with REG_NOSUB  
   
 /\x{100}/I  
 Failed: character value in \x{...} sequence is too large at offset 6  
   
6077  /\x{0000ff}/I  /\x{0000ff}/I
6078  Capturing subpattern count = 0  Capturing subpattern count = 0
6079  No options  No options
6080  First char = 255  First char = \xff
6081  No need char  No need char
6082    
6083  /^((?P<A>a1)|(?P<A>a2)b)/I  /^((?P<A>a1)|(?P<A>a2)b)/I
# Line 6285  no parentheses with name "Z" Line 6187  no parentheses with name "Z"
6187   0: a1   0: a1
6188   1: a1   1: a1
6189   2: a1   2: a1
6190  copy substring Z failed -7  get substring Z failed -7
6191    G a1 (2) A    G a1 (2) A
6192    
6193  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
# Line 6317  No need char Line 6219  No need char
6219    G a (1) A    G a (1) A
6220      cd\GA      cd\GA
6221   0: cd   0: cd
6222  copy substring A failed -7  get substring A failed -7
6223    
6224  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6225  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 6485  No need char Line 6387  No need char
6387   9:   9:
6388  10: Y  10: Y
6389    
 /\777/I  
 Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3  
   
6390  /\s*,\s*/IS  /\s*,\s*/IS
6391  Capturing subpattern count = 0  Capturing subpattern count = 0
6392  No options  No options
# Line 6666  No first char Line 6565  No first char
6565  No need char  No need char
6566     /* this is a C style comment */\M     /* this is a C style comment */\M
6567  Minimum match() limit = 120  Minimum match() limit = 120
6568  Minimum match() recursion limit = 35  Minimum match() recursion limit = 6
6569   0: /* this is a C style comment */   0: /* this is a C style comment */
6570   1: /* this is a C style comment */   1: /* this is a C style comment */
6571    
# Line 7548  Matched, but too many substrings Line 7447  Matched, but too many substrings
7447  /[^a]+a/BZi  /[^a]+a/BZi
7448  ------------------------------------------------------------------  ------------------------------------------------------------------
7449          Bra          Bra
7450       /i [^A]++       /i [^a]++
7451       /i a       /i a
7452          Ket          Ket
7453          End          End
# Line 7557  Matched, but too many substrings Line 7456  Matched, but too many substrings
7456  /[^a]+A/BZi  /[^a]+A/BZi
7457  ------------------------------------------------------------------  ------------------------------------------------------------------
7458          Bra          Bra
7459       /i [^A]++       /i [^a]++
7460       /i A       /i A
7461          Ket          Ket
7462          End          End
# Line 7944  Options: extended Line 7843  Options: extended
7843  First char = 'x'  First char = 'x'
7844  Need char = 'z'  Need char = 'z'
7845    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7846  /(a|)*\d/  /(a|)*\d/
7847    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7848  No match  No match
# Line 8506  Failed: syntax error in subpattern name Line 8402  Failed: syntax error in subpattern name
8402   3: <unset>   3: <unset>
8403   4: x   4: x
8404    
 /[\h]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x09 \xa0]  
         Ket  
         End  
 ------------------------------------------------------------------  
     >\x09<  
  0: \x09  
   
 /[\h]+/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x09 \xa0]+  
         Ket  
         End  
 ------------------------------------------------------------------  
     >\x09\x20\xa0<  
  0: \x09 \xa0  
   
 /[\v]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x0a-\x0d\x85]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[\H]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[^\h]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff] (neg)  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[\V]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x09\x0e-\x84\x86-\xff]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[\x0a\V]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x0a\x0e-\x84\x86-\xff]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
8405  /\H++X/BZ  /\H++X/BZ
8406  ------------------------------------------------------------------  ------------------------------------------------------------------
8407          Bra          Bra
# Line 8757  No match Line 8593  No match
8593  ------------------------------------------------------------------  ------------------------------------------------------------------
8594    
8595  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8596  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)  \J1024(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8597   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8598    
8599  /[\E]AAA/  /[\E]AAA/
# Line 8939  Failed: number is too big at offset 19 Line 8775  Failed: number is too big at offset 19
8775  /\g6666666666/  /\g6666666666/
8776  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8777    
8778  /[\g6666666666]/  /[\g6666666666]/BZ
8779  Failed: number is too big at offset 12  ------------------------------------------------------------------
8780            Bra
8781            [6g]
8782            Ket
8783            End
8784    ------------------------------------------------------------------
8785    
8786  /(?1)\c[/  /(?1)\c[/
8787  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 9246  Failed: subpattern name expected at offs Line 9087  Failed: subpattern name expected at offs
9087  /\k{}/  /\k{}/
9088  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9089    
9090    /\k/
9091    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9092    
9093    /\kabc/
9094    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9095    
9096  /(?P=)/  /(?P=)/
9097  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9098    
# Line 9430  No need char Line 9277  No need char
9277   +7 ^ ^     b   +7 ^ ^     b
9278   +7 ^^      b   +7 ^^      b
9279   +7 ^       b   +7 ^       b
9280    +11 ^       ^
9281  +12 ^       )  +12 ^       )
9282  +13 ^  +13 ^
9283   0:   0:
# Line 9467  No options Line 9315  No options
9315  First char at start or follows newline  First char at start or follows newline
9316  No need char  No need char
9317    
 /a?|b?/P  
     abc  
  0: a  
     ** Failers  
  0:  
     ddd\N  
 No match: POSIX code 17: match failed  
   
9318  /xyz/C  /xyz/C
9319    xyz    xyz
9320  --->xyz  --->xyz
# Line 9568  No match Line 9408  No match
9408   +3 ^ ^      (?(?=[a])[^"])   +3 ^ ^      (?(?=[a])[^"])
9409   +5 ^ ^      (?=[a])   +5 ^ ^      (?=[a])
9410   +8 ^ ^      [a]   +8 ^ ^      [a]
9411    +17 ^ ^      |
9412  +21 ^ ^      "  +21 ^ ^      "
9413  +18 ^ ^      b  +18 ^ ^      b
9414  +19 ^  ^     )  +19 ^  ^     )
9415   +3 ^  ^     (?(?=[a])[^"])   +3 ^  ^     (?(?=[a])[^"])
9416   +5 ^  ^     (?=[a])   +5 ^  ^     (?=[a])
9417   +8 ^  ^     [a]   +8 ^  ^     [a]
9418    +17 ^  ^     |
9419  +21 ^  ^     "  +21 ^  ^     "
9420  +22 ^   ^    $  +22 ^   ^    $
9421  +23 ^   ^  +23 ^   ^
# Line 9869  Partial match: the cat Line 9711  Partial match: the cat
9711     abc\P\P     abc\P\P
9712   0: abc   0: abc
9713    
 /\w+A/P  
    CDAAAAB  
  0: CDAAAA  
   
 /\w+A/PU  
    CDAAAAB  
  0: CDA  
   
9714  /abc\K123/  /abc\K123/
9715      xyzabc123pqr      xyzabc123pqr
9716   0: 123   0: 123
# Line 9889  Partial match: abc12 Line 9723  Partial match: abc12
9723      xyzabc123pqr      xyzabc123pqr
9724   0: 123   0: 123
9725      xyzabc12\P      xyzabc12\P
9726  Partial match: abc12  Partial match at offset 6: abc12
9727      xyzabc12\P\P      xyzabc12\P\P
9728  Partial match: abc12  Partial match at offset 6: abc12
9729    
9730  /\babc\b/  /\babc\b/
9731      +++abc+++      +++abc+++
9732   0: abc   0: abc
9733      +++ab\P      +++ab\P
9734  Partial match: +ab  Partial match at offset 3: +ab
9735      +++ab\P\P      +++ab\P\P
9736  Partial match: +ab  Partial match at offset 3: +ab
9737    
9738  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9739  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10269  Need char = ':' Line 10103  Need char = ':'
10103  Subject length lower bound = 22  Subject length lower bound = 22
10104  No set of starting bytes  No set of starting bytes
10105    
 /  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*                          # optional leading comment  
 (?:    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )                    # initial word  
 (?:  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )  )* # further okay, if led by a period  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
 # address  
 |                     #  or  
 (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )             # one word, optionally followed by....  
 (?:  
 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...  
 \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)       |  # comments, or...  
   
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 # quoted strings  
 )*  
 <  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*                     # leading <  
 (?:  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
   
 (?:  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  ,  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
 )* # further okay, if led by comma  
 :                                # closing colon  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  )? #       optional route  
 (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )                    # initial word  
 (?:  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )  )* # further okay, if led by a period  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
 #       address spec  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  > #                  trailing >  
 # name and address  
 )  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*                       # optional trailing comment  
 /xSI  
 Capturing subpattern count = 0  
 Contains explicit CR or LF match  
 Options: extended  
 No first char  
 No need char  
 Subject length lower bound = 3  
 Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8  
   9 = ? A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ^ _ ` a b c d e  
   f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f  
   
10106  /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS  /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS
10107  Capturing subpattern count = 11  Capturing subpattern count = 11
10108  Options: caseless dotall  Options: caseless dotall
# Line 10484  No set of starting bytes Line 10114  No set of starting bytes
10114  "(?>.*/)foo"SI  "(?>.*/)foo"SI
10115  Capturing subpattern count = 0  Capturing subpattern count = 0
10116  No options  No options
10117  First char at start or follows newline  No first char
10118  Need char = 'o'  Need char = 'o'
10119  Subject length lower bound = 4  Subject length lower bound = 4
10120  No set of starting bytes  No set of starting bytes
# Line 10981  No match Line 10611  No match
10611      AC      AC
10612  No match  No match
10613    
 /--- A whole lot of tests of verbs with arguments are here rather than in test  
      11 because Perl doesn't seem to follow its specification entirely  
      correctly. ---/  
   
 /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is  
      not clear how Perl defines "involved in the failure of the match". ---/  
   
 /^(A(*THEN:A)B|C(*THEN:B)D)/K  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match  
     CB  
 No match, mark = B  
   
 /--- Check the use of names for success and failure. PCRE doesn't show these  
 names for success, though Perl does, contrary to its spec. ---/  
   
 /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match, mark = A  
     CB  
 No match, mark = B  
   
 /--- An empty name does not pass back an empty string. It is the same as if no  
 name were given. ---/  
   
 /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
   
 /--- PRUNE goes to next bumpalong; COMMIT does not. ---/  
   
 /A(*PRUNE:A)B/K  
     ACAB  
  0: AB  
   
 /(*MARK:A)(*PRUNE:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /(*MARK:A)(*PRUNE:B)(C|X)/KSS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match, mark = B  
   
 /(*MARK:A)(*THEN:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /(*MARK:A)(*THEN:B)(C|X)/KSS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match, mark = B  
   
 /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/  
   
 /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- Same --/  
   
 /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK  
     AAAC  
 No match  
   
10614  /--- This should fail; the SKIP advances by one, but when we get to AC, the  /--- This should fail; the SKIP advances by one, but when we get to AC, the
10615       PRUNE kills it. ---/       PRUNE kills it. Perl behaves differently. ---/
10616    
10617  /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK  /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
10618      AAAC      AAAC
10619  No match  No match, mark = A
   
 /A(*:A)A+(*SKIP)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- This should fail, as a null name is the same as no name ---/  
   
 /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- This fails in PCRE, and I think that is in accordance with Perl's  
      documentation, though in Perl it succeeds. ---/  
   
 /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK  
     AAAC  
 No match  
10620    
10621  /--- Mark names can be duplicated ---/  /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10622    though PCRE does. ---/
10623    
 /A(*:A)B|X(*:A)Y/K  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XY  
 MK: A  
   
10624  /^A(*:A)B|^X(*:A)Y/K  /^A(*:A)B|^X(*:A)Y/K
10625      ** Failers      ** Failers
10626  No match  No match
10627      XAQQ      XAQQ
10628  No match, mark = A  No match, mark = A
10629    
 /--- A check on what happens after hitting a mark and them bumping along to  
 something that does not even start. Perl reports tags after the failures here,  
 though it does not when the individual letters are made into something  
 more complicated. ---/  
   
 /A(*:A)B|XX(*:B)Y/K  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XXY  
 MK: B  
     ** Failers  
 No match  
     XAQQ  
 No match  
     XAQQXZZ  
 No match  
     AXQQQ  
 No match  
     AXXQQQ  
 No match  
   
10630  /--- COMMIT at the start of a pattern should be the same as an anchor. Perl  /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10631  optimizations defeat this. So does the PCRE optimization unless we disable it  optimizations defeat this. So does the PCRE optimization unless we disable it
10632  with \Y. ---/  with \Y. ---/
# Line 11155  No match Line 10639  No match
10639      DEFGABC\Y      DEFGABC\Y
10640  No match  No match
10641    
10642  /--- Repeat some tests with added studying. ---/  /^(ab (c+(*THEN)cd) | xyz)/x
10643        abcccd
 /A(*COMMIT)B/+KS  
     ACABX  
10644  No match  No match
   
 /A(*THEN)B|A(*THEN)C/KS  
     AC  
  0: AC  
10645    
10646  /A(*PRUNE)B|A(*PRUNE)C/KS  /^(ab (c+(*PRUNE)cd) | xyz)/x
10647      AC      abcccd
10648  No match  No match
10649    
10650  /^(A(*THEN:A)B|C(*THEN:B)D)/KS  /^(ab (c+(*FAIL)cd) | xyz)/x
10651      AB      abcccd
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
10652  No match  No match
10653      CB  
10654  No match, mark = B  /--- Perl 5.11 gets some of these wrong ---/
   
 /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match, mark = A  
     CB  
 No match, mark = B  
   
 /^(A(*PRUNE:)B|C(*PRUNE:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
   
 /A(*PRUNE:A)B/KS  
     ACAB  
  0: AB  
   
 /(*MARK:A)(*PRUNE:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /(*MARK:A)(*THEN:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*:A)A+(*SKIP)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xKS  
     AAAC  
 No match  
   
 /A(*:A)B|XX(*:B)Y/KS  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XXY  
 MK: B  
     ** Failers  
 No match  
     XAQQ  
 No match  
     XAQQXZZ  
 No match  
     AXQQQ  
 No match  
     AXXQQQ  
 No match  
   
 /(*COMMIT)ABC/  
     ABCDEFG  
  0: ABC  
     ** Failers  
 No match  
     DEFGABC\Y  
 No match  
   
 /^(ab (c+(*THEN)cd) | xyz)/x  
     abcccd  
 No match  
   
 /^(ab (c+(*PRUNE)cd) | xyz)/x  
     abcccd  
 No match  
   
 /^(ab (c+(*FAIL)cd) | xyz)/x  
     abcccd  
 No match  
   
 /--- Perl 5.11 gets some of these wrong ---/  
10655    
10656  /(?>.(*ACCEPT))*?5/  /(?>.(*ACCEPT))*?5/
10657      abcde      abcde
# Line 11395  No match Line 10759  No match
10759  /\s*\R/BZ  /\s*\R/BZ
10760  ------------------------------------------------------------------  ------------------------------------------------------------------
10761          Bra          Bra
10762          \s*+          \s*
10763            \R
10764            Ket
10765            End
10766    ------------------------------------------------------------------
10767        \x20\x0a
10768     0:  \x0a
10769        \x20\x0d
10770     0:  \x0d
10771        \x20\x0d\x0a
10772     0:  \x0d\x0a
10773    
10774    /\S*\R/BZ
10775    ------------------------------------------------------------------
10776            Bra
10777            \S*+
10778            \R
10779            Ket
10780            End
10781    ------------------------------------------------------------------
10782        a\x0a
10783     0: a\x0a
10784    
10785    /X\h*\R/BZ
10786    ------------------------------------------------------------------
10787            Bra
10788            X
10789            \h*+
10790            \R
10791            Ket
10792            End
10793    ------------------------------------------------------------------
10794        X\x20\x0a
10795     0: X \x0a
10796    
10797    /X\H*\R/BZ
10798    ------------------------------------------------------------------
10799            Bra
10800            X
10801            \H*
10802            \R
10803            Ket
10804            End
10805    ------------------------------------------------------------------
10806        X\x0d\x0a
10807     0: X\x0d\x0a
10808    
10809    /X\H+\R/BZ
10810    ------------------------------------------------------------------
10811            Bra
10812            X
10813            \H+
10814          \R          \R
10815          Ket          Ket
10816          End          End
10817  ------------------------------------------------------------------  ------------------------------------------------------------------
10818        X\x0d\x0a
10819     0: X\x0d\x0a
10820    
10821    /X\H++\R/BZ
10822    ------------------------------------------------------------------
10823            Bra
10824            X
10825            \H++
10826            \R
10827            Ket
10828            End
10829    ------------------------------------------------------------------
10830        X\x0d\x0a
10831    No match
10832    
10833  /-- Perl treats this one differently, not failing the second string. I believe  /-- Perl treats this one differently, not failing the second string. I believe
10834      that is a bug in Perl. --/      that is a bug in Perl. --/
# Line 11415  No match Line 10844  No match
10844    
10845  /(?<=abc)def/  /(?<=abc)def/
10846      abc\P\P      abc\P\P
10847  Partial match: abc  Partial match at offset 3: abc
10848    
10849  /abc$/  /abc$/
10850      abc      abc
# Line 11816  No match Line 11245  No match
11245    
11246  /^.*?(?(?=a)a|b(*THEN)c)/  /^.*?(?(?=a)a|b(*THEN)c)/
11247      ba      ba
11248   0: ba  No match
11249    
11250  /^.*?(?(?=a)a|bc)/  /^.*?(?(?=a)a|bc)/
11251      ba      ba
11252   0: ba   0: ba
11253    
11254    /^.*?(?(?=a)a(*THEN)b|c)/
11255        ac
11256    No match
11257    
11258    /^.*?(?(?=a)a(*THEN)b)c/
11259        ac
11260    No match
11261    
11262    /^.*?(a(*THEN)b)c/
11263        aabc
11264    No match
11265    
11266    /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11267        aabc
11268     0: aabc
11269    
11270    /^.*?(a(*THEN)b|z)c/
11271        aabc
11272     0: aabc
11273     1: ab
11274    
11275    /^.*?(z|a(*THEN)b)c/
11276        aabc
11277     0: aabc
11278     1: ab
11279    
11280  /-- --/  /-- --/
11281    
11282  /-- These studied versions are here because they are not Perl-compatible; the  /-- These studied versions are here because they are not Perl-compatible; the
# Line 11833  No match Line 11288  No match
11288   1: C   1: C
11289  MK: A  MK: A
11290      D      D
11291  No match  No match, mark = A
11292    
11293  /(*:A)A+(*SKIP:A)(B|Z)/KS  /(*:A)A+(*SKIP:A)(B|Z)/KS
11294      AAAC      AAAC
11295  No match  No match, mark = A
11296    
11297  /-- --/  /-- --/
11298    
# Line 11866  No match Line 11321  No match
11321   1: a   1: a
11322   1+ a%   1+ a%
11323    
11324  /(a)b|ac/++  /(a)b|ac/++SS
11325      ac\O3      ac\O3
 Matched, but too many substrings  
11326   0: ac   0: ac
11327   0+   0+
11328    
11329    /(a)(b)x|abc/++
11330         abc\O6
11331     0: abc
11332     0+
11333    
11334    /(a)bc|(a)(b)\2/
11335        \O3abc
11336    Matched, but too many substrings
11337     0: abc
11338        \O4abc
11339    Matched, but too many substrings
11340     0: abc
11341    
11342  /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI  /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11343  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 11907  No set of starting bytes Line 11374  No set of starting bytes
11374  /^(?>a)++/  /^(?>a)++/
11375      aa\M      aa\M
11376  Minimum match() limit = 5  Minimum match() limit = 5
11377  Minimum match() recursion limit = 3  Minimum match() recursion limit = 2
11378   0: aa   0: aa
11379      aaaaaaaaa\M      aaaaaaaaa\M
11380  Minimum match() limit = 12  Minimum match() limit = 12
11381  Minimum match() recursion limit = 3  Minimum match() recursion limit = 2
11382   0: aaaaaaaaa   0: aaaaaaaaa
11383    
11384  /(a)(?1)++/  /(a)(?1)++/
11385      aa\M      aa\M
11386  Minimum match() limit = 7  Minimum match() limit = 7
11387  Minimum match() recursion limit = 5  Minimum match() recursion limit = 4
11388   0: aa   0: aa
11389   1: a   1: a
11390      aaaaaaaaa\M      aaaaaaaaa\M
11391  Minimum match() limit = 21  Minimum match() limit = 21
11392  Minimum match() recursion limit = 5  Minimum match() recursion limit = 4
11393   0: aaaaaaaaa   0: aaaaaaaaa
11394   1: a   1: a
11395    
11396    /(?:(foo)|(bar)|(baz))X/SS=
11397        bazfooX
11398     0: fooX
11399     1: foo
11400     2: <unset>
11401     3: <unset>
11402        foobazbarX
11403     0: barX
11404     1: <unset>
11405     2: bar
11406     3: <unset>
11407        barfooX
11408     0: fooX
11409     1: foo
11410     2: <unset>
11411     3: <unset>
11412        bazX
11413     0: bazX
11414     1: <unset>
11415     2: <unset>
11416     3: baz
11417        foobarbazX
11418     0: bazX
11419     1: <unset>
11420     2: <unset>
11421     3: baz
11422        bazfooX\O0
11423    Matched, but too many substrings
11424        bazfooX\O2
11425    Matched, but too many substrings
11426     0: fooX
11427        bazfooX\O4
11428    Matched, but too many substrings
11429     0: fooX
11430     1: <unset>
11431        bazfooX\O6
11432    Matched, but too many substrings
11433     0: fooX
11434     1: foo
11435     2: <unset>
11436        bazfooX\O8
11437    Matched, but too many substrings
11438     0: fooX
11439     1: foo
11440     2: <unset>
11441     3: <unset>
11442        bazfooX\O10
11443     0: fooX
11444     1: foo
11445     2: <unset>
11446     3: <unset>
11447    
11448    /(?=abc){3}abc/BZ
11449    ------------------------------------------------------------------
11450            Bra
11451            Assert
11452            abc
11453            Ket
11454            abc
11455            Ket
11456            End
11457    ------------------------------------------------------------------
11458    
11459    /(?=abc)+abc/BZ
11460    ------------------------------------------------------------------
11461            Bra
11462            Assert
11463            abc
11464            Ket
11465            abc
11466            Ket
11467            End
11468    ------------------------------------------------------------------
11469    
11470    /(?=abc)++abc/BZ
11471    ------------------------------------------------------------------
11472            Bra
11473            Assert
11474            abc
11475            Ket
11476            abc
11477            Ket
11478            End
11479    ------------------------------------------------------------------
11480    
11481    /(?=abc){0}xyz/BZ
11482    ------------------------------------------------------------------
11483            Bra
11484            Skip zero
11485            Assert
11486            abc
11487            Ket
11488            xyz
11489            Ket
11490            End
11491    ------------------------------------------------------------------
11492    
11493    /(?=(a))?./BZ
11494    ------------------------------------------------------------------
11495            Bra
11496            Brazero
11497            Assert
11498            CBra 1
11499            a
11500            Ket
11501            Ket
11502            Any
11503            Ket
11504            End
11505    ------------------------------------------------------------------
11506    
11507    /(?=(a))??./BZ
11508    ------------------------------------------------------------------
11509            Bra
11510            Braminzero
11511            Assert
11512            CBra 1
11513            a
11514            Ket
11515            Ket
11516            Any
11517            Ket
11518            End
11519    ------------------------------------------------------------------
11520    
11521    /^(?=(a)){0}b(?1)/BZ
11522    ------------------------------------------------------------------
11523            Bra
11524            ^
11525            Skip zero
11526            Assert
11527            CBra 1
11528            a
11529            Ket
11530            Ket
11531            b
11532            Recurse
11533            Ket
11534            End
11535    ------------------------------------------------------------------
11536    
11537    /(?(DEFINE)(a))?b(?1)/BZ
11538    ------------------------------------------------------------------
11539            Bra
11540            Cond
11541            Cond def
11542            CBra 1
11543            a
11544            Ket
11545            Ket
11546            b
11547            Recurse
11548            Ket
11549            End
11550    ------------------------------------------------------------------
11551    
11552    /^(?=(?1))?[az]([abc])d/BZ
11553    ------------------------------------------------------------------
11554            Bra
11555            ^
11556            Brazero
11557            Assert
11558            Recurse
11559            Ket
11560            [az]
11561            CBra 1
11562            [a-c]
11563            Ket
11564            d
11565            Ket
11566            End
11567    ------------------------------------------------------------------
11568    
11569    /^(?!a){0}\w+/BZ
11570    ------------------------------------------------------------------
11571            Bra
11572            ^
11573            Skip zero
11574            Assert not
11575            a
11576            Ket
11577            \w+
11578            Ket
11579            End
11580    ------------------------------------------------------------------
11581    
11582    /(?<=(abc))?xyz/BZ
11583    ------------------------------------------------------------------
11584            Bra
11585            Brazero
11586            AssertB
11587            Reverse
11588            CBra 1
11589            abc
11590            Ket
11591            Ket
11592            xyz
11593            Ket
11594            End
11595    ------------------------------------------------------------------
11596    
11597    /[:a[:abc]b:]/BZ
11598    ------------------------------------------------------------------
11599            Bra
11600            [:[a-c]
11601            b:]
11602            Ket
11603            End
11604    ------------------------------------------------------------------
11605    
11606    /((?2))((?1))/SS
11607        abc
11608    Error -26 (nested recursion at the same subject position)
11609    
11610    /((?(R2)a+|(?1)b))/SS
11611        aaaabcde
11612    Error -26 (nested recursion at the same subject position)
11613    
11614    /(?(R)a*(?1)|((?R))b)/SS
11615        aaaabcde
11616    Error -26 (nested recursion at the same subject position)
11617    
11618    /(a+|(?R)b)/
11619    Failed: recursive call could loop indefinitely at offset 7
11620    
11621    /^(a(*:A)(d|e(*:B))z|aeq)/C
11622        adz
11623    --->adz
11624     +0 ^       ^
11625     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11626     +2 ^       a
11627     +3 ^^      (*:A)
11628     +8 ^^      (d|e(*:B))
11629    Latest Mark: A
11630     +9 ^^      d
11631    +10 ^ ^     |
11632    +18 ^ ^     z
11633    +19 ^  ^    |
11634    +24 ^  ^
11635     0: adz
11636     1: adz
11637     2: d
11638        aez
11639    --->aez
11640     +0 ^       ^
11641     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11642     +2 ^       a
11643     +3 ^^      (*:A)
11644     +8 ^^      (d|e(*:B))
11645    Latest Mark: A
11646     +9 ^^      d
11647    +11 ^^      e
11648    +12 ^ ^     (*:B)
11649    +17 ^ ^     )
11650    Latest Mark: B
11651    +18 ^ ^     z
11652    +19 ^  ^    |
11653    +24 ^  ^
11654     0: aez
11655     1: aez
11656     2: e
11657        aeqwerty
11658    --->aeqwerty
11659     +0 ^            ^
11660     +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11661     +2 ^            a
11662     +3 ^^           (*:A)
11663     +8 ^^           (d|e(*:B))
11664    Latest Mark: A
11665     +9 ^^           d
11666    +11 ^^           e
11667    +12 ^ ^          (*:B)
11668    +17 ^ ^          )
11669    Latest Mark: B
11670    +18 ^ ^          z
11671    +20 ^            a
11672    +21 ^^           e
11673    +22 ^ ^          q
11674    +23 ^  ^         )
11675    +24 ^  ^
11676     0: aeq
11677     1: aeq
11678    
11679    /.(*F)/
11680        \P\Pabc
11681    No match
11682    
11683    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11684    Capturing subpattern count = 0
11685    No options
11686    First char = 't'
11687    Need char = 't'
11688    Max lookbehind = 1
11689    Subject length lower bound = 18
11690    No set of starting bytes
11691    
11692    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11693    Capturing subpattern count = 0
11694    No options
11695    No first char
11696    No need char
11697    Max lookbehind = 1
11698    Subject length lower bound = 8
11699    Starting byte set: < o t u
11700    
11701    /a(*SKIP)c|b(*ACCEPT)|/+S!I
11702    Capturing subpattern count = 0
11703    No options
11704    No first char
11705    No need char
11706    Subject length lower bound = -1
11707    No set of starting bytes
11708        a
11709     0:
11710     0+
11711    
11712    /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11713    Capturing subpattern count = 0
11714    No options
11715    No first char
11716    No need char
11717    Subject length lower bound = -1
11718    Starting byte set: a b x
11719        ax
11720     0: x
11721    
11722    'a*(*ACCEPT)b'+
11723        \N\N
11724    No match
11725        abc\N\N
11726     0: a
11727     0+ bc
11728        bbb\N\N
11729     0:
11730     0+ bb
11731    
11732    /(*ACCEPT)a/+I
11733    Capturing subpattern count = 0
11734    No options
11735    No first char
11736    No need char
11737        bax
11738     0:
11739     0+ bax
11740    
11741    /z(*ACCEPT)a/+I
11742    Capturing subpattern count = 0
11743    No options
11744    First char = 'z'
11745    No need char
11746        baxzbx
11747     0: z
11748     0+ bx
11749    
11750    /a(?:.)*?a/ims
11751        \Mabbbbbbbbbbbbbbbbbbbbba
11752    Minimum match() limit = 65
11753    Minimum match() recursion limit = 2
11754     0: abbbbbbbbbbbbbbbbbbbbba
11755    
11756    /a(?:.(*THEN))*?a/ims
11757        \Mabbbbbbbbbbbbbbbbbbbbba
11758    Minimum match() limit = 86
11759    Minimum match() recursion limit = 45
11760     0: abbbbbbbbbbbbbbbbbbbbba
11761    
11762    /a(?:.(*THEN:ABC))*?a/ims
11763        \Mabbbbbbbbbbbbbbbbbbbbba
11764    Minimum match() limit = 86
11765    Minimum match() recursion limit = 45
11766     0: abbbbbbbbbbbbbbbbbbbbba
11767    
11768    /-- These tests are in agreement with development Perl 5.015, which has fixed
11769        some things, but they don't all work with 5.012, so they aren't in the
11770        Perl-compatible tests. Those after the first come from Perl's own test
11771        files. --/
11772    
11773    /^((yes|no)(*THEN)(*F))?/
11774      yes
11775    No match
11776    
11777    /(A (.*)   C? (*THEN)  | A D) (*FAIL)/x
11778    AbcdCBefgBhiBqz
11779    No match
11780    
11781    /(A (.*)   C? (*THEN)  | A D) z/x
11782    AbcdCBefgBhiBqz
11783    No match
11784    
11785    /(A (.*)   C? (*THEN)  | A D) \s* (*FAIL)/x
11786    AbcdCBefgBhiBqz
11787    No match
11788    
11789    /(A (.*)   C? (*THEN)  | A D) \s* z/x
11790    AbcdCBefgBhiBqz
11791    No match
11792    
11793    /(A (.*)   (?:C|) (*THEN)  | A D) (*FAIL)/x
11794    AbcdCBefgBhiBqz
11795    No match
11796    
11797    /(A (.*)   (?:C|) (*THEN)  | A D) z/x
11798    AbcdCBefgBhiBqz
11799    No match
11800    
11801    /(A (.*)   C{0,6} (*THEN)  | A D) (*FAIL)/x
11802    AbcdCBefgBhiBqz
11803    No match
11804    
11805    /(A (.*)   C{0,6} (*THEN)  | A D) z/x
11806    AbcdCBefgBhiBqz
11807    No match
11808    
11809    /(A (.*)   (CE){0,6} (*THEN)  | A D) (*FAIL)/x
11810    AbcdCEBefgBhiBqz
11811    No match
11812    
11813    /(A (.*)   (CE){0,6} (*THEN)  | A D) z/x
11814    AbcdCEBefgBhiBqz
11815    No match
11816    
11817    /(A (.*)   (CE*){0,6} (*THEN)  | A D) (*FAIL)/x
11818    AbcdCBefgBhiBqz
11819    No match
11820    
11821    /(A (.*)   (CE*){0,6} (*THEN)  | A D) z/x
11822    AbcdCBefgBhiBqz
11823    No match
11824    
11825    /-----------------------------------------------/
11826    
11827    /^(?>a+)(?>(z+))\w/BZ
11828    ------------------------------------------------------------------
11829            Bra
11830            ^
11831            Once_NC
11832            a+
11833            Ket
11834            Once
11835            CBra 1
11836            z+
11837            Ket
11838            Ket
11839            \w
11840            Ket
11841            End
11842    ------------------------------------------------------------------
11843        aaaazzzzb
11844     0: aaaazzzzb
11845     1: zzzz
11846        ** Failers
11847    No match
11848        aazz
11849    No match
11850    
11851    /(.)(\1|a(?2))/
11852        bab
11853     0: bab
11854     1: b
11855     2: ab
11856    
11857    /\1|(.)(?R)\1/
11858        cbbbc
11859     0: cbbbc
11860     1: c
11861    
11862    /(.)((?(1)c|a)|a(?2))/
11863        baa
11864    No match
11865    
11866    /(?P<abn>(?P=abn)xxx)/BZ
11867    ------------------------------------------------------------------
11868            Bra
11869            Once
11870            CBra 1
11871            \1
11872            xxx
11873            Ket
11874            Ket
11875            Ket
11876            End
11877    ------------------------------------------------------------------
11878    
11879    /(a\1z)/BZ
11880    ------------------------------------------------------------------
11881            Bra
11882            Once
11883            CBra 1
11884            a
11885            \1
11886            z
11887            Ket
11888            Ket
11889            Ket
11890            End
11891    ------------------------------------------------------------------
11892    
11893    /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11894         \Maabbccddee
11895    Minimum match() limit = 12
11896    Minimum match() recursion limit = 3
11897     0: aabbccddee
11898    
11899    /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11900         \Maabbccddee
11901    Minimum match() limit = 22
11902    Minimum match() recursion limit = 21
11903     0: aabbccddee
11904     1: aa
11905     2: bb
11906     3: cc
11907     4: dd
11908     5: ee
11909    
11910    /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11911         \Maabbccddee
11912    Minimum match() limit = 18
11913    Minimum match() recursion limit = 13
11914     0: aabbccddee
11915     1: aa
11916     2: cc
11917     3: ee
11918    
11919    /^a\x41z/<JS>
11920        aAz
11921     0: aAz
11922        *** Failers
11923    No match
11924        ax41z
11925    No match
11926    
11927    /^a[m\x41]z/<JS>
11928        aAz
11929     0: aAz
11930    
11931    /^a\x1z/<JS>
11932        ax1z
11933     0: ax1z
11934    
11935    /^a\u0041z/<JS>
11936        aAz
11937     0: aAz
11938        *** Failers
11939    No match
11940        au0041z
11941    No match
11942    
11943    /^a[m\u0041]z/<JS>
11944        aAz
11945     0: aAz
11946    
11947    /^a\u041z/<JS>
11948        au041z
11949     0: au041z
11950        *** Failers
11951    No match
11952        aAz
11953    No match
11954    
11955    /^a\U0041z/<JS>
11956        aU0041z
11957     0: aU0041z
11958        *** Failers
11959    No match
11960        aAz
11961    No match
11962    
11963    /(?(?=c)c|d)++Y/BZ
11964    ------------------------------------------------------------------
11965            Bra
11966            BraPos
11967            Cond
11968            Assert
11969            c
11970            Ket
11971            c
11972            Alt
11973            d
11974            Ket
11975            KetRpos
11976            Y
11977            Ket
11978            End
11979    ------------------------------------------------------------------
11980    
11981    /(?(?=c)c|d)*+Y/BZ
11982    ------------------------------------------------------------------
11983            Bra
11984            Braposzero
11985            BraPos
11986            Cond
11987            Assert
11988            c
11989            Ket
11990            c
11991            Alt
11992            d
11993            Ket
11994            KetRpos
11995            Y
11996            Ket
11997            End
11998    ------------------------------------------------------------------
11999    
12000    /a[\NB]c/
12001    Failed: \N is not supported in a class at offset 3
12002    
12003    /a[B-\Nc]/
12004    Failed: \N is not supported in a class at offset 5
12005    
12006    /(a)(?2){0,1999}?(b)/
12007    
12008    /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
12009    
12010    /--- This test, with something more complicated than individual letters, causes
12011    different behaviour in Perl. Perhaps it disables some optimization; no tag is
12012    passed back for the failures, whereas in PCRE there is a tag. ---/
12013    
12014    /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
12015        AABC
12016     0: AB
12017     1: A
12018     2: B
12019    MK: A
12020        XXYZ
12021     0: XXY
12022     1: <unset>
12023     2: <unset>
12024     3: X
12025     4: X
12026     5: Y
12027    MK: B
12028        ** Failers
12029    No match
12030        XAQQ
12031    No match, mark = A
12032        XAQQXZZ
12033    No match, mark = A
12034        AXQQQ
12035    No match, mark = A
12036        AXXQQQ
12037    No match, mark = B
12038    
12039    /-- Perl doesn't give marks for these, though it does if the alternatives are
12040    replaced by single letters. --/
12041    
12042    /(b|q)(*:m)f|a(*:n)w/K
12043        aw
12044     0: aw
12045    MK: n
12046        ** Failers
12047    No match, mark = n
12048        abc
12049    No match, mark = m
12050    
12051    /(q|b)(*:m)f|a(*:n)w/K
12052        aw
12053     0: aw
12054    MK: n
12055        ** Failers
12056    No match, mark = n
12057        abc
12058    No match, mark = m
12059    
12060    /-- After a partial match, the behaviour is as for a failure. --/
12061    
12062    /^a(*:X)bcde/K
12063       abc\P
12064    Partial match, mark=X: abc
12065    
12066    /-- These are here because Perl doesn't return a mark, except for the first --/
12067    
12068    /(?=(*:x))(q|)/K+
12069        abc
12070     0:
12071     0+ abc
12072     1:
12073    MK: x
12074    
12075    /(?=(*:x))((*:y)q|)/K+
12076        abc
12077     0:
12078     0+ abc
12079     1:
12080    MK: x
12081    
12082    /(?=(*:x))(?:(*:y)q|)/K+
12083        abc
12084     0:
12085     0+ abc
12086    MK: x
12087    
12088    /(?=(*:x))(?>(*:y)q|)/K+
12089        abc
12090     0:
12091     0+ abc
12092    MK: x
12093    
12094    /(?=a(*:x))(?!a(*:y)c)/K+
12095        ab
12096     0:
12097     0+ ab
12098    MK: x
12099    
12100    /(?=a(*:x))(?=a(*:y)c|)/K+
12101        ab
12102     0:
12103     0+ ab
12104    MK: x
12105    
12106    /(..)\1/
12107        ab\P
12108    Partial match: ab
12109        aba\P
12110    Partial match: aba
12111        abab\P
12112     0: abab
12113     1: ab
12114    
12115    /(..)\1/i
12116        ab\P
12117    Partial match: ab
12118        abA\P
12119    Partial match: abA
12120        aBAb\P
12121     0: aBAb
12122     1: aB
12123    
12124    /(..)\1{2,}/
12125        ab\P
12126    Partial match: ab
12127        aba\P
12128    Partial match: aba
12129        abab\P
12130    Partial match: abab
12131        ababa\P
12132    Partial match: ababa
12133        ababab\P
12134     0: ababab
12135     1: ab
12136        ababab\P\P
12137    Partial match: ababab
12138        abababa\P
12139     0: ababab
12140     1: ab
12141        abababa\P\P
12142    Partial match: abababa
12143    
12144    /(..)\1{2,}/i
12145        ab\P
12146    Partial match: ab
12147        aBa\P
12148    Partial match: aBa
12149        aBAb\P
12150    Partial match: aBAb
12151        AbaBA\P
12152    Partial match: AbaBA
12153        abABAb\P
12154     0: abABAb
12155     1: ab
12156        aBAbaB\P\P
12157    Partial match: aBAbaB
12158        abABabA\P
12159     0: abABab
12160     1: ab
12161        abaBABa\P\P
12162    Partial match: abaBABa
12163    
12164    /(..)\1{2,}?x/i
12165        ab\P
12166    Partial match: ab
12167        abA\P
12168    Partial match: abA
12169        aBAb\P
12170    Partial match: aBAb
12171        abaBA\P
12172    Partial match: abaBA
12173        abAbaB\P
12174    Partial match: abAbaB
12175        abaBabA\P
12176    Partial match: abaBabA
12177        abAbABaBx\P
12178     0: abAbABaBx
12179     1: ab
12180    
12181    /^(..)\1/
12182        aba\P
12183    Partial match: aba
12184    
12185    /^(..)\1{2,3}x/
12186        aba\P
12187    Partial match: aba
12188        ababa\P
12189    Partial match: ababa
12190        ababa\P\P
12191    Partial match: ababa
12192        abababx
12193     0: abababx
12194     1: ab
12195        ababababx
12196     0: ababababx
12197     1: ab
12198    
12199    /^(..)\1{2,3}?x/
12200        aba\P
12201    Partial match: aba
12202        ababa\P
12203    Partial match: ababa
12204        ababa\P\P
12205    Partial match: ababa
12206        abababx
12207     0: abababx
12208     1: ab
12209        ababababx
12210     0: ababababx
12211     1: ab
12212    
12213    /^(..)(\1{2,3})ab/
12214        abababab
12215     0: abababab
12216     1: ab
12217     2: abab
12218    
12219    /^\R/
12220        \r\P
12221     0: \x0d
12222        \r\P\P
12223    Partial match: \x0d
12224    
12225    /^\R{2,3}x/
12226        \r\P
12227    Partial match: \x0d
12228        \r\P\P
12229    Partial match: \x0d
12230        \r\r\P
12231    Partial match: \x0d\x0d
12232        \r\r\P\P
12233    Partial match: \x0d\x0d
12234        \r\r\r\P
12235    Partial match: \x0d\x0d\x0d
12236        \r\r\r\P\P
12237    Partial match: \x0d\x0d\x0d
12238        \r\rx
12239     0: \x0d\x0dx
12240        \r\r\rx
12241     0: \x0d\x0d\x0dx
12242    
12243    /^\R{2,3}?x/
12244        \r\P
12245    Partial match: \x0d
12246        \r\P\P
12247    Partial match: \x0d
12248        \r\r\P
12249    Partial match: \x0d\x0d
12250        \r\r\P\P
12251    Partial match: \x0d\x0d
12252        \r\r\r\P
12253    Partial match: \x0d\x0d\x0d
12254        \r\r\r\P\P
12255    Partial match: \x0d\x0d\x0d
12256        \r\rx
12257     0: \x0d\x0dx
12258        \r\r\rx
12259     0: \x0d\x0d\x0dx
12260    
12261    /^\R?x/
12262        \r\P
12263    Partial match: \x0d
12264        \r\P\P
12265    Partial match: \x0d
12266        x
12267     0: x
12268        \rx
12269     0: \x0dx
12270    
12271    /^\R+x/
12272        \r\P
12273    Partial match: \x0d
12274        \r\P\P
12275    Partial match: \x0d
12276        \r\n\P
12277    Partial match: \x0d\x0a
12278        \r\n\P\P
12279    Partial match: \x0d\x0a
12280        \rx
12281     0: \x0dx
12282    
12283    /^a$/<CRLF>
12284        a\r\P
12285    Partial match: a\x0d
12286        a\r\P\P
12287    Partial match: a\x0d
12288    
12289    /^a$/m<CRLF>
12290        a\r\P
12291    Partial match: a\x0d
12292        a\r\P\P
12293    Partial match: a\x0d
12294    
12295    /^(a$|a\r)/<CRLF>
12296        a\r\P
12297     0: a\x0d
12298     1: a\x0d
12299        a\r\P\P
12300    Partial match: a\x0d
12301    
12302    /^(a$|a\r)/m<CRLF>
12303        a\r\P
12304     0: a\x0d
12305     1: a\x0d
12306        a\r\P\P
12307    Partial match: a\x0d
12308    
12309    /./<CRLF>
12310        \r\P
12311     0: \x0d
12312        \r\P\P
12313    Partial match: \x0d
12314    
12315    /.{2,3}/<CRLF>
12316        \r\P
12317    Partial match: \x0d
12318        \r\P\P
12319    Partial match: \x0d
12320        \r\r\P
12321     0: \x0d\x0d
12322        \r\r\P\P
12323    Partial match: \x0d\x0d
12324        \r\r\r\P
12325     0: \x0d\x0d\x0d
12326        \r\r\r\P\P
12327    Partial match: \x0d\x0d\x0d
12328    
12329    /.{2,3}?/<CRLF>
12330        \r\P
12331    Partial match: \x0d
12332        \r\P\P
12333    Partial match: \x0d
12334        \r\r\P
12335     0: \x0d\x0d
12336        \r\r\P\P
12337    Partial match: \x0d\x0d
12338        \r\r\r\P
12339     0: \x0d\x0d
12340        \r\r\r\P\P
12341     0: \x0d\x0d
12342    
12343    /-- These two are here because Perl does not match: it seems to allow the
12344    COMMIT to escape from the assertion. --/
12345    
12346    /(?=a(*COMMIT)b|ac)ac|ac/
12347        ac
12348    No match
12349    
12350    /(?=a(*COMMIT)b|(ac)) ac | (a)c/x
12351        ac
12352    No match
12353    
12354    "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
12355        ABCDGHI\O03
12356    Matched, but too many substrings
12357     0: ABCD
12358    
12359    /-- This one is here because Perl does not confine the *COMMIT to the
12360    assertion, and therefore fails the entire subroutine call. --/
12361    
12362    /((?=a(*COMMIT)b)ab|ac){0}(?:(?1)|a(c))/
12363        ac
12364     0: ac
12365     1: <unset>
12366     2: c
12367    
12368    /-- These are all run as real matches in test 1; here we are just checking the
12369    settings of the anchored and startline bits. --/
12370    
12371    /(?>.*?a)(?<=ba)/I
12372    Capturing subpattern count = 0
12373    No options
12374    No first char
12375    Need char = 'a'
12376    Max lookbehind = 2
12377    
12378    /(?:.*?a)(?<=ba)/I
12379    Capturing subpattern count = 0
12380    No options
12381    First char at start or follows newline
12382    Need char = 'a'
12383    Max lookbehind = 2
12384    
12385    /.*?a(*PRUNE)b/I
12386    Capturing subpattern count = 0
12387    No options
12388    No first char
12389    Need char = 'b'
12390    
12391    /.*?a(*PRUNE)b/sI
12392    Capturing subpattern count = 0
12393    Options: dotall
12394    No first char
12395    Need char = 'b'
12396    
12397    /^a(*PRUNE)b/sI
12398    Capturing subpattern count = 0
12399    Options: anchored dotall
12400    No first char
12401    No need char
12402    
12403    /.*?a(*SKIP)b/I
12404    Capturing subpattern count = 0
12405    No options
12406    No first char
12407    Need char = 'b'
12408    
12409    /(?>.*?a)b/sI
12410    Capturing subpattern count = 0
12411    Options: dotall
12412    No first char
12413    Need char = 'b'
12414    
12415    /(?>.*?a)b/I
12416    Capturing subpattern count = 0
12417    No options
12418    No first char
12419    Need char = 'b'
12420    
12421    /(?>^a)b/sI
12422    Capturing subpattern count = 0
12423    Options: anchored dotall
12424    No first char
12425    No need char
12426    
12427    /(?>.*?)(?<=(abcd)|(wxyz))/I
12428    Capturing subpattern count = 2
12429    No options
12430    No first char
12431    No need char
12432    Max lookbehind = 4
12433    
12434    /(?>.*)(?<=(abcd)|(wxyz))/I
12435    Capturing subpattern count = 2
12436    No options
12437    No first char
12438    No need char
12439    Max lookbehind = 4
12440    
12441    "(?>.*)foo"I
12442    Capturing subpattern count = 0
12443    No options
12444    No first char
12445    Need char = 'o'
12446    
12447    "(?>.*?)foo"I
12448    Capturing subpattern count = 0
12449    No options
12450    No first char
12451    Need char = 'o'
12452    
12453    /(?>^abc)/mI
12454    Capturing subpattern count = 0
12455    Options: multiline
12456    First char at start or follows newline
12457    Need char = 'c'
12458    
12459    /(?>.*abc)/mI
12460    Capturing subpattern count = 0
12461    Options: multiline
12462    No first char
12463    Need char = 'c'
12464    
12465    /(?:.*abc)/mI
12466    Capturing subpattern count = 0
12467    Options: multiline
12468    First char at start or follows newline
12469    Need char = 'c'
12470    
12471    /-- Check PCRE_STUDY_EXTRA_NEEDED --/
12472    
12473    /.?/S-I
12474    Capturing subpattern count = 0
12475    No options
12476    No first char
12477    No need char
12478    Study returned NULL
12479    
12480    /.?/S!I
12481    Capturing subpattern count = 0
12482    No options
12483    No first char
12484    No need char
12485    Subject length lower bound = -1
12486    No set of starting bytes
12487    
12488    /(?:(a)+(?C1)bb|aa(?C2)b)/
12489        aab\C+
12490    Callout 1: last capture = 1
12491     0: <unset>
12492     1: a
12493    --->aab
12494        ^ ^     b
12495    Callout 1: last capture = 1
12496     0: <unset>
12497     1: a
12498    --->aab
12499        ^^      b
12500    Callout 2: last capture = -1
12501     0: <unset>
12502    --->aab
12503        ^ ^     b
12504     0: aab
12505    
12506    /(?:(a)++(?C1)bb|aa(?C2)b)/
12507        aab\C+
12508    Callout 1: last capture = 1
12509     0: <unset>
12510     1: a
12511    --->aab
12512        ^ ^     b
12513    Callout 2: last capture = -1
12514     0: <unset>
12515    --->aab
12516        ^ ^     b
12517     0: aab
12518    
12519    /(?:(?>(a))(?C1)bb|aa(?C2)b)/
12520        aab\C+
12521    Callout 1: last capture = 1
12522     0: <unset>
12523     1: a
12524    --->aab
12525        ^^      b
12526    Callout 2: last capture = -1
12527     0: <unset>
12528    --->aab
12529        ^ ^     b
12530     0: aab
12531    
12532    /(?:(?1)(?C1)x|ab(?C2))((a)){0}/
12533        aab\C+
12534    Callout 1: last capture = -1
12535     0: <unset>
12536    --->aab
12537        ^^      x
12538    Callout 1: last capture = -1
12539     0: <unset>
12540    --->aab
12541         ^^     x
12542    Callout 2: last capture = -1
12543     0: <unset>
12544    --->aab
12545         ^ ^    )
12546     0: ab
12547    
12548    /(?1)(?C1)((a)(?C2)){0}/
12549        aab\C+
12550    Callout 2: last capture = 2
12551     0: <unset>
12552     1: <unset>
12553     2: a
12554    --->aab
12555        ^^      )
12556    Callout 1: last capture = -1
12557     0: <unset>
12558    --->aab
12559        ^^      ((a)(?C2)){0}
12560     0: a
12561    
12562    /(?:(a)+(?C1)bb|aa(?C2)b)++/
12563        aab\C+
12564    Callout 1: last capture = 1
12565     0: <unset>
12566     1: a
12567    --->aab
12568        ^ ^     b
12569    Callout 1: last capture = 1
12570     0: <unset>
12571     1: a
12572    --->aab
12573        ^^      b
12574    Callout 2: last capture = -1
12575     0: <unset>
12576    --->aab
12577        ^ ^     b
12578     0: aab
12579        aab\C+\O2
12580    Callout 1: last capture = 1
12581     0: <unset>
12582    --->aab
12583        ^ ^     b
12584    Callout 1: last capture = 1
12585     0: <unset>
12586    --->aab
12587        ^^      b
12588    Callout 2: last capture = -1
12589     0: <unset>
12590    --->aab
12591        ^ ^     b
12592     0: aab
12593    
12594    /(ab)x|ab/
12595        ab\O3
12596     0: ab
12597        ab\O2
12598     0: ab
12599    
12600    /(ab)/
12601        ab\O3
12602    Matched, but too many substrings
12603     0: ab
12604        ab\O2
12605    Matched, but too many substrings
12606     0: ab
12607    
12608    /(?<=123)(*MARK:xx)abc/K
12609        xxxx123a\P\P
12610    Partial match at offset 7, mark=xx: 123a
12611        xxxx123a\P
12612    Partial match at offset 7, mark=xx: 123a
12613    
12614    /123\Kabc/
12615        xxxx123a\P\P
12616    Partial match: 123a
12617        xxxx123a\P
12618    Partial match: 123a
12619    
12620    /^(?(?=a)aa|bb)/C
12621        bb
12622    --->bb
12623     +0 ^      ^
12624     +1 ^      (?(?=a)aa|bb)
12625     +3 ^      (?=a)
12626     +6 ^      a
12627    +11 ^      b
12628    +12 ^^     b
12629    +13 ^ ^    )
12630    +14 ^ ^
12631     0: bb
12632    
12633    /(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/
12634        bb
12635    --->bb
12636      1 ^      ^
12637      2 ^      (?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))
12638     99 ^      (?=(?C3)a(?C4))
12639      3 ^      a
12640      8 ^      b
12641      9 ^^     b
12642     10 ^ ^    )
12643     11 ^ ^
12644     0: bb
12645    
12646    /-- Perl seems to have a bug with this one --/
12647    
12648    /aaaaa(*COMMIT)(*PRUNE)b|a+c/
12649        aaaaaac
12650     0: aaaac
12651    
12652    /-- Here are some that Perl treats differently because of the way it handles
12653    backtracking verbs. --/
12654    
12655     /^(?!a(*SKIP)b)/
12656         ac
12657    No match
12658    
12659     /^(?!a(*SKIP)b)../
12660         acd
12661    No match
12662    
12663    /(?!a(*SKIP)b)../
12664         acd
12665     0: cd
12666    
12667    /^(?(?!a(*SKIP)b))/
12668         ac
12669    No match
12670    
12671    /^(?!a(*PRUNE)b)../
12672         acd
12673    No match
12674    
12675    /(?!a(*PRUNE)b)../
12676         acd
12677     0: cd
12678    
12679     /(?!a(*COMMIT)b)ac|cd/
12680         ac
12681    No match
12682    
12683     /(?!a(*COMMIT)b)ac|ad/
12684         ac
12685    No match
12686         ad
12687    No match
12688    
12689    /^(?!a(*THEN)b|ac)../
12690         ac
12691    No match
12692         ad
12693     0: ad
12694    
12695    /^(?=a(*THEN)b|ac)/
12696        ac
12697     0:
12698    
12699    /\A.*?(?:a|b(*THEN)c)/
12700        ba
12701     0: ba
12702    
12703    /\A.*?(?:a|bc)/
12704        ba
12705     0: ba
12706    
12707    /\A.*?(?:a|b(*THEN)c)++/
12708        ba
12709     0: ba
12710    
12711    /\A.*?(?:a|b(*THEN)c|d)/
12712        ba
12713     0: ba
12714    
12715    /(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/
12716        aac
12717     0: aac
12718    
12719    /\A.*?(a|b(*THEN)c)/
12720        ba
12721     0: ba
12722     1: a
12723    
12724    /^(A(*THEN)B|C(*THEN)D)/
12725        CD
12726     0: CD
12727     1: CD
12728    
12729    /^(A(*THEN)B|A(*THEN)D)/
12730        AD
12731     0: AD
12732     1: AD
12733    
12734    /-- End of Perl diffences --/
12735    
12736  /-- End of testinput2 --/  /-- End of testinput2 --/

Legend:
Removed from v.621  
changed lines
  Added in v.1298

  ViewVC Help
Powered by ViewVC 1.1.5