/[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 1304 by ph10, Fri Mar 29 14:25:40 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 869  No match Line 824  No match
824      fooabar      fooabar
825  No match  No match
826    
 /This one is here because Perl 5.005_02 doesn't fail it/I  
 Capturing subpattern count = 0  
 No options  
 First char = 'T'  
 Need char = 't'  
   
 /^(a)?(?(1)a|b)+$/I  
 Capturing subpattern count = 1  
 Options: anchored  
 No first char  
 No need char  
     *** Failers  
 No match  
     a  
 No match  
   
827  /This one is here because Perl behaves differently; see also the following/I  /This one is here because Perl behaves differently; see also the following/I
828  Capturing subpattern count = 0  Capturing subpattern count = 0
829  No options  No options
# Line 1031  Failed: numbers out of order in {} quant Line 970  Failed: numbers out of order in {} quant
970  /abc/\  /abc/\
971  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
972    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
973  /abc/\i  /abc/\i
974  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
975    
# Line 1149  No first char Line 1085  No first char
1085  No need char  No need char
1086      abc\00def\L\C0      abc\00def\L\C0
1087   0: abc\x00def   0: abc\x00def
1088   0C abc (7)   0C abc\x00def (7)
1089   0L abc   0L abc
1090    
1091  /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 1200  Capturing subpattern count = 0
1200  No options  No options
1201  First char = 'i'  First char = 'i'
1202  Need char = 's'  Need char = 's'
1203      Mississippi  Max lookbehind = 1
  0: iss  
  0+ issippi  
   
 /\Biss\B/I+P  
1204      Mississippi      Mississippi
1205   0: iss   0: iss
1206   0+ issippi   0+ issippi
# Line 1289  Capturing subpattern count = 0 Line 1221  Capturing subpattern count = 0
1221  No options  No options
1222  First char = 'i'  First char = 'i'
1223  Need char = 's'  Need char = 's'
1224    Max lookbehind = 1
1225      Mississippi      Mississippi
1226   0: iss   0: iss
1227   0+ issippi   0+ issippi
# Line 1298  Capturing subpattern count = 0 Line 1231  Capturing subpattern count = 0
1231  No options  No options
1232  First char = 'i'  First char = 'i'
1233  Need char = 's'  Need char = 's'
1234    Max lookbehind = 1
1235      Mississippi      Mississippi
1236   0: iss   0: iss
1237   0+ issippi   0+ issippi
# Line 1313  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 1324  Capturing subpattern count = 0 Line 1259  Capturing subpattern count = 0
1259  No options  No options
1260  First char = 'i'  First char = 'i'
1261  Need char = 's'  Need char = 's'
1262    Max lookbehind = 1
1263      Mississippi      Mississippi
1264   0: iss   0: iss
1265   0+ issippi   0+ issippi
# Line 1402  Capturing subpattern count = 0 Line 1338  Capturing subpattern count = 0
1338  Contains explicit CR or LF match  Contains explicit CR or LF match
1339  Options: multiline  Options: multiline
1340  First char at start or follows newline  First char at start or follows newline
1341  Need char = 10  Need char = \x0a
1342      ab\nab\ncd      ab\nab\ncd
1343   0: ab\x0a   0: ab\x0a
1344   0+ ab\x0acd   0+ ab\x0acd
# Line 1504  Capturing subpattern count = 0 Line 1440  Capturing subpattern count = 0
1440  No options  No options
1441  No first char  No first char
1442  No need char  No need char
1443    Max lookbehind = 3
1444    
1445  /abc(?!pqr)/I  /abc(?!pqr)/I
1446  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 1689  No need char Line 1626  No need char
1626      \Nabc      \Nabc
1627  No match  No match
1628    
 /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  
   
1629  /^.?abcd/IS  /^.?abcd/IS
1630  Capturing subpattern count = 0  Capturing subpattern count = 0
1631  Options: anchored  Options: anchored
# Line 3311  Capturing subpattern count = 0 Line 3221  Capturing subpattern count = 0
3221  No options  No options
3222  First char = '8'  First char = '8'
3223  Need char = 'X'  Need char = 'X'
3224    Max lookbehind = 1
3225    
3226  |\$\<\.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
3227  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3324  Capturing subpattern count = 0 Line 3235  Capturing subpattern count = 0
3235  No options  No options
3236  First char = '$'  First char = '$'
3237  Need char = 'X'  Need char = 'X'
3238    Max lookbehind = 1
3239    
3240  /(.*)\d+\1/I  /(.*)\d+\1/I
3241  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 3839  Capturing subpattern count = 1 Line 3751  Capturing subpattern count = 1
3751  No options  No options
3752  First char = 'x'  First char = 'x'
3753  Need char = 'z'  Need char = 'z'
3754    Max lookbehind = 3
3755     abcxyz\C+     abcxyz\C+
3756  Callout 0: last capture = 1  Callout 0: last capture = 1
3757   0: <unset>   0: <unset>
# Line 4430  No first char Line 4343  No first char
4343  Need char = 'z'  Need char = 'z'
4344    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4345  Minimum match() limit = 8  Minimum match() limit = 8
4346  Minimum match() recursion limit = 7  Minimum match() recursion limit = 6
4347   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4348   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4349    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4350  Minimum match() limit = 32768  Minimum match() limit = 32768
4351  Minimum match() recursion limit = 43  Minimum match() recursion limit = 42
4352  No match  No match
4353    
4354  /(aaa(?C1)bbb|ab)/I  /(aaa(?C1)bbb|ab)/I
# Line 5486  Capturing subpattern count = 0 Line 5399  Capturing subpattern count = 0
5399  No options  No options
5400  No first char  No first char
5401  No need char  No need char
5402    Max lookbehind = 1
5403    ab cd\>1    ab cd\>1
5404   0:  cd   0:  cd
5405    
# Line 5494  Capturing subpattern count = 0 Line 5408  Capturing subpattern count = 0
5408  Options: dotall  Options: dotall
5409  No first char  No first char
5410  No need char  No need char
5411    Max lookbehind = 1
5412    ab cd\>1    ab cd\>1
5413   0:  cd   0:  cd
5414    
# Line 5802  Max back reference = 1 Line 5717  Max back reference = 1
5717  Options: multiline dotall  Options: multiline dotall
5718  First char = '<'  First char = '<'
5719  Need char = '>'  Need char = '>'
5720      <!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>
5721   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>
5722   1: seite   1: seite
5723   2: \x0a   2: \x0a
# Line 5851  No match Line 5766  No match
5766      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5767  No match  No match
5768    
 /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  
   
5769  /(?i)(?-i)AbCd/I  /(?i)(?-i)AbCd/I
5770  Capturing subpattern count = 0  Capturing subpattern count = 0
5771  No options  No options
# Line 6161  No need char Line 6058  No need char
6058      ((this))      ((this))
6059   0: ((this))   0: ((this))
6060    
 /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  
   
6061  /\x{0000ff}/I  /\x{0000ff}/I
6062  Capturing subpattern count = 0  Capturing subpattern count = 0
6063  No options  No options
6064  First char = 255  First char = \xff
6065  No need char  No need char
6066    
6067  /^((?P<A>a1)|(?P<A>a2)b)/I  /^((?P<A>a1)|(?P<A>a2)b)/I
# Line 6285  no parentheses with name "Z" Line 6171  no parentheses with name "Z"
6171   0: a1   0: a1
6172   1: a1   1: a1
6173   2: a1   2: a1
6174  copy substring Z failed -7  get substring Z failed -7
6175    G a1 (2) A    G a1 (2) A
6176    
6177  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
# Line 6317  No need char Line 6203  No need char
6203    G a (1) A    G a (1) A
6204      cd\GA      cd\GA
6205   0: cd   0: cd
6206  copy substring A failed -7  get substring A failed -7
6207    
6208  /^(?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
6209  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 6485  No need char Line 6371  No need char
6371   9:   9:
6372  10: Y  10: Y
6373    
 /\777/I  
 Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3  
   
6374  /\s*,\s*/IS  /\s*,\s*/IS
6375  Capturing subpattern count = 0  Capturing subpattern count = 0
6376  No options  No options
# Line 6666  No first char Line 6549  No first char
6549  No need char  No need char
6550     /* this is a C style comment */\M     /* this is a C style comment */\M
6551  Minimum match() limit = 120  Minimum match() limit = 120
6552  Minimum match() recursion limit = 35  Minimum match() recursion limit = 6
6553   0: /* this is a C style comment */   0: /* this is a C style comment */
6554   1: /* this is a C style comment */   1: /* this is a C style comment */
6555    
# Line 7548  Matched, but too many substrings Line 7431  Matched, but too many substrings
7431  /[^a]+a/BZi  /[^a]+a/BZi
7432  ------------------------------------------------------------------  ------------------------------------------------------------------
7433          Bra          Bra
7434       /i [^A]++       /i [^a]++
7435       /i a       /i a
7436          Ket          Ket
7437          End          End
# Line 7557  Matched, but too many substrings Line 7440  Matched, but too many substrings
7440  /[^a]+A/BZi  /[^a]+A/BZi
7441  ------------------------------------------------------------------  ------------------------------------------------------------------
7442          Bra          Bra
7443       /i [^A]++       /i [^a]++
7444       /i A       /i A
7445          Ket          Ket
7446          End          End
# Line 7944  Options: extended Line 7827  Options: extended
7827  First char = 'x'  First char = 'x'
7828  Need char = 'z'  Need char = 'z'
7829    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7830  /(a|)*\d/  /(a|)*\d/
7831    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7832  No match  No match
# Line 8506  Failed: syntax error in subpattern name Line 8386  Failed: syntax error in subpattern name
8386   3: <unset>   3: <unset>
8387   4: x   4: x
8388    
 /[\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  
 ------------------------------------------------------------------  
   
8389  /\H++X/BZ  /\H++X/BZ
8390  ------------------------------------------------------------------  ------------------------------------------------------------------
8391          Bra          Bra
# Line 8757  No match Line 8577  No match
8577  ------------------------------------------------------------------  ------------------------------------------------------------------
8578    
8579  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8580  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8581   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8582    
8583  /[\E]AAA/  /[\E]AAA/
# Line 8939  Failed: number is too big at offset 19 Line 8759  Failed: number is too big at offset 19
8759  /\g6666666666/  /\g6666666666/
8760  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8761    
8762  /[\g6666666666]/  /[\g6666666666]/BZ
8763  Failed: number is too big at offset 12  ------------------------------------------------------------------
8764            Bra
8765            [6g]
8766            Ket
8767            End
8768    ------------------------------------------------------------------
8769    
8770  /(?1)\c[/  /(?1)\c[/
8771  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 9071  Failed: subpattern name expected at offs
9071  /\k{}/  /\k{}/
9072  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9073    
9074    /\k/
9075    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9076    
9077    /\kabc/
9078    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9079    
9080  /(?P=)/  /(?P=)/
9081  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9082    
# Line 9430  No need char Line 9261  No need char
9261   +7 ^ ^     b   +7 ^ ^     b
9262   +7 ^^      b   +7 ^^      b
9263   +7 ^       b   +7 ^       b
9264    +11 ^       ^
9265  +12 ^       )  +12 ^       )
9266  +13 ^  +13 ^
9267   0:   0:
# Line 9467  No options Line 9299  No options
9299  First char at start or follows newline  First char at start or follows newline
9300  No need char  No need char
9301    
 /a?|b?/P  
     abc  
  0: a  
     ** Failers  
  0:  
     ddd\N  
 No match: POSIX code 17: match failed  
   
9302  /xyz/C  /xyz/C
9303    xyz    xyz
9304  --->xyz  --->xyz
# Line 9568  No match Line 9392  No match
9392   +3 ^ ^      (?(?=[a])[^"])   +3 ^ ^      (?(?=[a])[^"])
9393   +5 ^ ^      (?=[a])   +5 ^ ^      (?=[a])
9394   +8 ^ ^      [a]   +8 ^ ^      [a]
9395    +17 ^ ^      |
9396  +21 ^ ^      "  +21 ^ ^      "
9397  +18 ^ ^      b  +18 ^ ^      b
9398  +19 ^  ^     )  +19 ^  ^     )
9399   +3 ^  ^     (?(?=[a])[^"])   +3 ^  ^     (?(?=[a])[^"])
9400   +5 ^  ^     (?=[a])   +5 ^  ^     (?=[a])
9401   +8 ^  ^     [a]   +8 ^  ^     [a]
9402    +17 ^  ^     |
9403  +21 ^  ^     "  +21 ^  ^     "
9404  +22 ^   ^    $  +22 ^   ^    $
9405  +23 ^   ^  +23 ^   ^
# Line 9869  Partial match: the cat Line 9695  Partial match: the cat
9695     abc\P\P     abc\P\P
9696   0: abc   0: abc
9697    
 /\w+A/P  
    CDAAAAB  
  0: CDAAAA  
   
 /\w+A/PU  
    CDAAAAB  
  0: CDA  
   
9698  /abc\K123/  /abc\K123/
9699      xyzabc123pqr      xyzabc123pqr
9700   0: 123   0: 123
# Line 9889  Partial match: abc12 Line 9707  Partial match: abc12
9707      xyzabc123pqr      xyzabc123pqr
9708   0: 123   0: 123
9709      xyzabc12\P      xyzabc12\P
9710  Partial match: abc12  Partial match at offset 6: abc12
9711      xyzabc12\P\P      xyzabc12\P\P
9712  Partial match: abc12  Partial match at offset 6: abc12
9713    
9714  /\babc\b/  /\babc\b/
9715      +++abc+++      +++abc+++
9716   0: abc   0: abc
9717      +++ab\P      +++ab\P
9718  Partial match: +ab  Partial match at offset 3: +ab
9719      +++ab\P\P      +++ab\P\P
9720  Partial match: +ab  Partial match at offset 3: +ab
9721    
9722  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9723  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10269  Need char = ':' Line 10087  Need char = ':'
10087  Subject length lower bound = 22  Subject length lower bound = 22
10088  No set of starting bytes  No set of starting bytes
10089    
 /  (?: [\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  
   
10090  /<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
10091  Capturing subpattern count = 11  Capturing subpattern count = 11
10092  Options: caseless dotall  Options: caseless dotall
# Line 10484  No set of starting bytes Line 10098  No set of starting bytes
10098  "(?>.*/)foo"SI  "(?>.*/)foo"SI
10099  Capturing subpattern count = 0  Capturing subpattern count = 0
10100  No options  No options
10101  First char at start or follows newline  No first char
10102  Need char = 'o'  Need char = 'o'
10103  Subject length lower bound = 4  Subject length lower bound = 4
10104  No set of starting bytes  No set of starting bytes
# Line 10727  Partial match: abca Line 10341  Partial match: abca
10341      xxxxabcde\P\P      xxxxabcde\P\P
10342  Partial match: abcde  Partial match: abcde
10343    
10344  /-- This is not in the Perl >= 5.10 test because Perl seems currently to be  /-- This is not in the Perl-compatible test because Perl seems currently to be
10345      broken and not behaving as specified in that it *does* bumpalong after      broken and not behaving as specified in that it *does* bumpalong after
10346      hitting (*COMMIT). --/      hitting (*COMMIT). --/
10347    
# Line 10923  No match Line 10537  No match
10537          End          End
10538  ------------------------------------------------------------------  ------------------------------------------------------------------
10539    
10540  / -- The first four of these are not in the Perl >= 5.10 test because Perl  / -- This one is here because Perl gives the match as "b" rather than "ab". I
      documents that the use of \K in assertions is "not well defined". The  
      last is here because Perl gives the match as "b" rather than "ab". I  
10541       believe this to be a Perl bug. --/       believe this to be a Perl bug. --/
10542    
 /(?=a\Kb)ab/  
     ab  
  0: b  
   
 /(?!a\Kb)ac/  
     ac  
  0: ac  
   
 /^abc(?<=b\Kc)d/  
     abcd  
  0: cd  
   
 /^abc(?<!b\Kq)d/  
     abcd  
  0: abcd  
   
10543  /(?>a\Kb)z|(ab)/  /(?>a\Kb)z|(ab)/
10544      ab      ab
10545   0: ab   0: ab
10546   1: ab   1: ab
10547    
 /----------------------/  
   
10548  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10549  Failed: recursive call could loop indefinitely at offset 31  Failed: recursive call could loop indefinitely at offset 31
10550    
# Line 10970  Failed: an argument is not allowed for ( Line 10564  Failed: an argument is not allowed for (
10564      ACABX      ACABX
10565  No match  No match
10566    
10567  /--- These should be different, but in Perl 5.11 are not, which I think  /--- These should be different, but in Perl they are not, which I think
10568       is a bug in Perl. ---/       is a bug in Perl. ---/
10569    
10570  /A(*THEN)B|A(*THEN)C/K  /A(*THEN)B|A(*THEN)C/K
# Line 10981  No match Line 10575  No match
10575      AC      AC
10576  No match  No match
10577    
10578  /--- A whole lot of tests of verbs with arguments are here rather than in test  /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10579       11 because Perl doesn't seem to follow its specification entirely  though PCRE does. ---/
      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  
   
 /--- This should fail; the SKIP advances by one, but when we get to AC, the  
      PRUNE kills it. ---/  
   
 /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /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  
   
 /--- Mark names can be duplicated ---/  
10580    
 /A(*:A)B|X(*:A)Y/K  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XY  
 MK: A  
   
10581  /^A(*:A)B|^X(*:A)Y/K  /^A(*:A)B|^X(*:A)Y/K
10582      ** Failers      ** Failers
10583  No match  No match
10584      XAQQ      XAQQ
10585  No match, mark = A  No match, mark = A
10586    
 /--- 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  
   
10587  /--- 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
10588  optimizations defeat this. So does the PCRE optimization unless we disable it  optimizations defeat this. So does the PCRE optimization unless we disable it
10589  with \Y. ---/  with \Y. ---/
# Line 11155  No match Line 10596  No match
10596      DEFGABC\Y      DEFGABC\Y
10597  No match  No match
10598    
10599  /--- Repeat some tests with added studying. ---/  /^(ab (c+(*THEN)cd) | xyz)/x
10600        abcccd
10601    No match
10602    
10603  /A(*COMMIT)B/+KS  /^(ab (c+(*PRUNE)cd) | xyz)/x
10604      ACABX      abcccd
 No match  
   
 /A(*THEN)B|A(*THEN)C/KS  
     AC  
  0: AC  
   
 /A(*PRUNE)B|A(*PRUNE)C/KS  
     AC  
 No match  
   
 /^(A(*THEN:A)B|C(*THEN:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match  
     CB  
 No match, mark = B  
   
 /^(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  
10605  No match  No match
10606    
10607  /^(ab (c+(*FAIL)cd) | xyz)/x  /^(ab (c+(*FAIL)cd) | xyz)/x
10608      abcccd      abcccd
10609  No match  No match
10610    
10611  /--- Perl 5.11 gets some of these wrong ---/  /--- Perl gets some of these wrong ---/
10612    
10613  /(?>.(*ACCEPT))*?5/  /(?>.(*ACCEPT))*?5/
10614      abcde      abcde
# Line 11395  No match Line 10716  No match
10716  /\s*\R/BZ  /\s*\R/BZ
10717  ------------------------------------------------------------------  ------------------------------------------------------------------
10718          Bra          Bra
10719          \s*+          \s*
10720            \R
10721            Ket
10722            End
10723    ------------------------------------------------------------------
10724        \x20\x0a
10725     0:  \x0a
10726        \x20\x0d
10727     0:  \x0d
10728        \x20\x0d\x0a
10729     0:  \x0d\x0a
10730    
10731    /\S*\R/BZ
10732    ------------------------------------------------------------------
10733            Bra
10734            \S*+
10735          \R          \R
10736          Ket          Ket
10737          End          End
10738  ------------------------------------------------------------------  ------------------------------------------------------------------
10739        a\x0a
10740     0: a\x0a
10741    
10742  /-- Perl treats this one differently, not failing the second string. I believe  /X\h*\R/BZ
10743      that is a bug in Perl. --/  ------------------------------------------------------------------
10744            Bra
10745            X
10746            \h*+
10747            \R
10748            Ket
10749            End
10750    ------------------------------------------------------------------
10751        X\x20\x0a
10752     0: X \x0a
10753    
10754  /^((abc|abcx)(*THEN)y|abcd)/  /X\H*\R/BZ
10755      abcd  ------------------------------------------------------------------
10756   0: abcd          Bra
10757   1: abcd          X
10758      *** Failers          \H*
10759  No match          \R
10760      abcxy          Ket
10761            End
10762    ------------------------------------------------------------------
10763        X\x0d\x0a
10764     0: X\x0d\x0a
10765    
10766    /X\H+\R/BZ
10767    ------------------------------------------------------------------
10768            Bra
10769            X
10770            \H+
10771            \R
10772            Ket
10773            End
10774    ------------------------------------------------------------------
10775        X\x0d\x0a
10776     0: X\x0d\x0a
10777    
10778    /X\H++\R/BZ
10779    ------------------------------------------------------------------
10780            Bra
10781            X
10782            \H++
10783            \R
10784            Ket
10785            End
10786    ------------------------------------------------------------------
10787        X\x0d\x0a
10788  No match  No match
10789    
10790  /(?<=abc)def/  /(?<=abc)def/
10791      abc\P\P      abc\P\P
10792  Partial match: abc  Partial match at offset 3: abc
10793    
10794  /abc$/  /abc$/
10795      abc      abc
# Line 11816  No match Line 11190  No match
11190    
11191  /^.*?(?(?=a)a|b(*THEN)c)/  /^.*?(?(?=a)a|b(*THEN)c)/
11192      ba      ba
11193   0: ba  No match
11194    
11195  /^.*?(?(?=a)a|bc)/  /^.*?(?(?=a)a|bc)/
11196      ba      ba
11197   0: ba   0: ba
11198    
11199    /^.*?(?(?=a)a(*THEN)b|c)/
11200        ac
11201    No match
11202    
11203    /^.*?(?(?=a)a(*THEN)b)c/
11204        ac
11205    No match
11206    
11207    /^.*?(a(*THEN)b)c/
11208        aabc
11209    No match
11210    
11211    /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11212        aabc
11213     0: aabc
11214    
11215    /^.*?(a(*THEN)b|z)c/
11216        aabc
11217     0: aabc
11218     1: ab
11219    
11220    /^.*?(z|a(*THEN)b)c/
11221        aabc
11222     0: aabc
11223     1: ab
11224    
11225  /-- --/  /-- --/
11226    
11227  /-- 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 11233  No match
11233   1: C   1: C
11234  MK: A  MK: A
11235      D      D
11236  No match  No match, mark = A
11237    
11238  /(*:A)A+(*SKIP:A)(B|Z)/KS  /(*:A)A+(*SKIP:A)(B|Z)/KS
11239      AAAC      AAAC
11240  No match  No match, mark = A
11241    
11242  /-- --/  /-- --/
11243    
# Line 11866  No match Line 11266  No match
11266   1: a   1: a
11267   1+ a%   1+ a%
11268    
11269  /(a)b|ac/++  /(a)b|ac/++SS
11270      ac\O3      ac\O3
 Matched, but too many substrings  
11271   0: ac   0: ac
11272   0+   0+
11273    
11274    /(a)(b)x|abc/++
11275         abc\O6
11276     0: abc
11277     0+
11278    
11279    /(a)bc|(a)(b)\2/
11280        \O3abc
11281    Matched, but too many substrings
11282     0: abc
11283        \O4abc
11284    Matched, but too many substrings
11285     0: abc
11286    
11287  /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI  /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11288  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 11907  No set of starting bytes Line 11319  No set of starting bytes
11319  /^(?>a)++/  /^(?>a)++/
11320      aa\M      aa\M
11321  Minimum match() limit = 5  Minimum match() limit = 5
11322  Minimum match() recursion limit = 3  Minimum match() recursion limit = 2
11323   0: aa   0: aa
11324      aaaaaaaaa\M      aaaaaaaaa\M
11325  Minimum match() limit = 12  Minimum match() limit = 12
11326  Minimum match() recursion limit = 3  Minimum match() recursion limit = 2
11327   0: aaaaaaaaa   0: aaaaaaaaa
11328    
11329  /(a)(?1)++/  /(a)(?1)++/
11330      aa\M      aa\M
11331  Minimum match() limit = 7  Minimum match() limit = 7
11332  Minimum match() recursion limit = 5  Minimum match() recursion limit = 4
11333   0: aa   0: aa
11334   1: a   1: a
11335      aaaaaaaaa\M      aaaaaaaaa\M
11336  Minimum match() limit = 21  Minimum match() limit = 21
11337  Minimum match() recursion limit = 5  Minimum match() recursion limit = 4
11338   0: aaaaaaaaa   0: aaaaaaaaa
11339   1: a   1: a
11340    
11341    /(?:(foo)|(bar)|(baz))X/SS=
11342        bazfooX
11343     0: fooX
11344     1: foo
11345     2: <unset>
11346     3: <unset>
11347        foobazbarX
11348     0: barX
11349     1: <unset>
11350     2: bar
11351     3: <unset>
11352        barfooX
11353     0: fooX
11354     1: foo
11355     2: <unset>
11356     3: <unset>
11357        bazX
11358     0: bazX
11359     1: <unset>
11360     2: <unset>
11361     3: baz
11362        foobarbazX
11363     0: bazX
11364     1: <unset>
11365     2: <unset>
11366     3: baz
11367        bazfooX\O0
11368    Matched, but too many substrings
11369        bazfooX\O2
11370    Matched, but too many substrings
11371     0: fooX
11372        bazfooX\O4
11373    Matched, but too many substrings
11374     0: fooX
11375     1: <unset>
11376        bazfooX\O6
11377    Matched, but too many substrings
11378     0: fooX
11379     1: foo
11380     2: <unset>
11381        bazfooX\O8
11382    Matched, but too many substrings
11383     0: fooX
11384     1: foo
11385     2: <unset>
11386     3: <unset>
11387        bazfooX\O10
11388     0: fooX
11389     1: foo
11390     2: <unset>
11391     3: <unset>
11392    
11393    /(?=abc){3}abc/BZ
11394    ------------------------------------------------------------------
11395            Bra
11396            Assert
11397            abc
11398            Ket
11399            abc
11400            Ket
11401            End
11402    ------------------------------------------------------------------
11403    
11404    /(?=abc)+abc/BZ
11405    ------------------------------------------------------------------
11406            Bra
11407            Assert
11408            abc
11409            Ket
11410            abc
11411            Ket
11412            End
11413    ------------------------------------------------------------------
11414    
11415    /(?=abc)++abc/BZ
11416    ------------------------------------------------------------------
11417            Bra
11418            Assert
11419            abc
11420            Ket
11421            abc
11422            Ket
11423            End
11424    ------------------------------------------------------------------
11425    
11426    /(?=abc){0}xyz/BZ
11427    ------------------------------------------------------------------
11428            Bra
11429            Skip zero
11430            Assert
11431            abc
11432            Ket
11433            xyz
11434            Ket
11435            End
11436    ------------------------------------------------------------------
11437    
11438    /(?=(a))?./BZ
11439    ------------------------------------------------------------------
11440            Bra
11441            Brazero
11442            Assert
11443            CBra 1
11444            a
11445            Ket
11446            Ket
11447            Any
11448            Ket
11449            End
11450    ------------------------------------------------------------------
11451    
11452    /(?=(a))??./BZ
11453    ------------------------------------------------------------------
11454            Bra
11455            Braminzero
11456            Assert
11457            CBra 1
11458            a
11459            Ket
11460            Ket
11461            Any
11462            Ket
11463            End
11464    ------------------------------------------------------------------
11465    
11466    /^(?=(a)){0}b(?1)/BZ
11467    ------------------------------------------------------------------
11468            Bra
11469            ^
11470            Skip zero
11471            Assert
11472            CBra 1
11473            a
11474            Ket
11475            Ket
11476            b
11477            Recurse
11478            Ket
11479            End
11480    ------------------------------------------------------------------
11481    
11482    /(?(DEFINE)(a))?b(?1)/BZ
11483    ------------------------------------------------------------------
11484            Bra
11485            Cond
11486            Cond def
11487            CBra 1
11488            a
11489            Ket
11490            Ket
11491            b
11492            Recurse
11493            Ket
11494            End
11495    ------------------------------------------------------------------
11496    
11497    /^(?=(?1))?[az]([abc])d/BZ
11498    ------------------------------------------------------------------
11499            Bra
11500            ^
11501            Brazero
11502            Assert
11503            Recurse
11504            Ket
11505            [az]
11506            CBra 1
11507            [a-c]
11508            Ket
11509            d
11510            Ket
11511            End
11512    ------------------------------------------------------------------
11513    
11514    /^(?!a){0}\w+/BZ
11515    ------------------------------------------------------------------
11516            Bra
11517            ^
11518            Skip zero
11519            Assert not
11520            a
11521            Ket
11522            \w+
11523            Ket
11524            End
11525    ------------------------------------------------------------------
11526    
11527    /(?<=(abc))?xyz/BZ
11528    ------------------------------------------------------------------
11529            Bra
11530            Brazero
11531            AssertB
11532            Reverse
11533            CBra 1
11534            abc
11535            Ket
11536            Ket
11537            xyz
11538            Ket
11539            End
11540    ------------------------------------------------------------------
11541    
11542    /[:a[:abc]b:]/BZ
11543    ------------------------------------------------------------------
11544            Bra
11545            [:[a-c]
11546            b:]
11547            Ket
11548            End
11549    ------------------------------------------------------------------
11550    
11551    /((?2))((?1))/SS
11552        abc
11553    Error -26 (nested recursion at the same subject position)
11554    
11555    /((?(R2)a+|(?1)b))/SS
11556        aaaabcde
11557    Error -26 (nested recursion at the same subject position)
11558    
11559    /(?(R)a*(?1)|((?R))b)/SS
11560        aaaabcde
11561    Error -26 (nested recursion at the same subject position)
11562    
11563    /(a+|(?R)b)/
11564    Failed: recursive call could loop indefinitely at offset 7
11565    
11566    /^(a(*:A)(d|e(*:B))z|aeq)/C
11567        adz
11568    --->adz
11569     +0 ^       ^
11570     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11571     +2 ^       a
11572     +3 ^^      (*:A)
11573     +8 ^^      (d|e(*:B))
11574    Latest Mark: A
11575     +9 ^^      d
11576    +10 ^ ^     |
11577    +18 ^ ^     z
11578    +19 ^  ^    |
11579    +24 ^  ^
11580     0: adz
11581     1: adz
11582     2: d
11583        aez
11584    --->aez
11585     +0 ^       ^
11586     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11587     +2 ^       a
11588     +3 ^^      (*:A)
11589     +8 ^^      (d|e(*:B))
11590    Latest Mark: A
11591     +9 ^^      d
11592    +11 ^^      e
11593    +12 ^ ^     (*:B)
11594    +17 ^ ^     )
11595    Latest Mark: B
11596    +18 ^ ^     z
11597    +19 ^  ^    |
11598    +24 ^  ^
11599     0: aez
11600     1: aez
11601     2: e
11602        aeqwerty
11603    --->aeqwerty
11604     +0 ^            ^
11605     +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11606     +2 ^            a
11607     +3 ^^           (*:A)
11608     +8 ^^           (d|e(*:B))
11609    Latest Mark: A
11610     +9 ^^           d
11611    +11 ^^           e
11612    +12 ^ ^          (*:B)
11613    +17 ^ ^          )
11614    Latest Mark: B
11615    +18 ^ ^          z
11616    +20 ^            a
11617    +21 ^^           e
11618    +22 ^ ^          q
11619    +23 ^  ^         )
11620    +24 ^  ^
11621     0: aeq
11622     1: aeq
11623    
11624    /.(*F)/
11625        \P\Pabc
11626    No match
11627    
11628    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11629    Capturing subpattern count = 0
11630    No options
11631    First char = 't'
11632    Need char = 't'
11633    Max lookbehind = 1
11634    Subject length lower bound = 18
11635    No set of starting bytes
11636    
11637    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11638    Capturing subpattern count = 0
11639    No options
11640    No first char
11641    No need char
11642    Max lookbehind = 1
11643    Subject length lower bound = 8
11644    Starting byte set: < o t u
11645    
11646    /a(*SKIP)c|b(*ACCEPT)|/+S!I
11647    Capturing subpattern count = 0
11648    No options
11649    No first char
11650    No need char
11651    Subject length lower bound = -1
11652    No set of starting bytes
11653        a
11654     0:
11655     0+
11656    
11657    /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11658    Capturing subpattern count = 0
11659    No options
11660    No first char
11661    No need char
11662    Subject length lower bound = -1
11663    Starting byte set: a b x
11664        ax
11665     0: x
11666    
11667    'a*(*ACCEPT)b'+
11668        \N\N
11669    No match
11670        abc\N\N
11671     0: a
11672     0+ bc
11673        bbb\N\N
11674     0:
11675     0+ bb
11676    
11677    /(*ACCEPT)a/+I
11678    Capturing subpattern count = 0
11679    No options
11680    No first char
11681    No need char
11682        bax
11683     0:
11684     0+ bax
11685    
11686    /z(*ACCEPT)a/+I
11687    Capturing subpattern count = 0
11688    No options
11689    First char = 'z'
11690    No need char
11691        baxzbx
11692     0: z
11693     0+ bx
11694    
11695    /a(?:.)*?a/ims
11696        \Mabbbbbbbbbbbbbbbbbbbbba
11697    Minimum match() limit = 65
11698    Minimum match() recursion limit = 2
11699     0: abbbbbbbbbbbbbbbbbbbbba
11700    
11701    /a(?:.(*THEN))*?a/ims
11702        \Mabbbbbbbbbbbbbbbbbbbbba
11703    Minimum match() limit = 86
11704    Minimum match() recursion limit = 45
11705     0: abbbbbbbbbbbbbbbbbbbbba
11706    
11707    /a(?:.(*THEN:ABC))*?a/ims
11708        \Mabbbbbbbbbbbbbbbbbbbbba
11709    Minimum match() limit = 86
11710    Minimum match() recursion limit = 45
11711     0: abbbbbbbbbbbbbbbbbbbbba
11712    
11713    /^(?>a+)(?>(z+))\w/BZ
11714    ------------------------------------------------------------------
11715            Bra
11716            ^
11717            Once_NC
11718            a+
11719            Ket
11720            Once
11721            CBra 1
11722            z+
11723            Ket
11724            Ket
11725            \w
11726            Ket
11727            End
11728    ------------------------------------------------------------------
11729        aaaazzzzb
11730     0: aaaazzzzb
11731     1: zzzz
11732        ** Failers
11733    No match
11734        aazz
11735    No match
11736    
11737    /(.)(\1|a(?2))/
11738        bab
11739     0: bab
11740     1: b
11741     2: ab
11742    
11743    /\1|(.)(?R)\1/
11744        cbbbc
11745     0: cbbbc
11746     1: c
11747    
11748    /(.)((?(1)c|a)|a(?2))/
11749        baa
11750    No match
11751    
11752    /(?P<abn>(?P=abn)xxx)/BZ
11753    ------------------------------------------------------------------
11754            Bra
11755            Once
11756            CBra 1
11757            \1
11758            xxx
11759            Ket
11760            Ket
11761            Ket
11762            End
11763    ------------------------------------------------------------------
11764    
11765    /(a\1z)/BZ
11766    ------------------------------------------------------------------
11767            Bra
11768            Once
11769            CBra 1
11770            a
11771            \1
11772            z
11773            Ket
11774            Ket
11775            Ket
11776            End
11777    ------------------------------------------------------------------
11778    
11779    /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11780         \Maabbccddee
11781    Minimum match() limit = 12
11782    Minimum match() recursion limit = 3
11783     0: aabbccddee
11784    
11785    /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11786         \Maabbccddee
11787    Minimum match() limit = 22
11788    Minimum match() recursion limit = 21
11789     0: aabbccddee
11790     1: aa
11791     2: bb
11792     3: cc
11793     4: dd
11794     5: ee
11795    
11796    /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11797         \Maabbccddee
11798    Minimum match() limit = 18
11799    Minimum match() recursion limit = 13
11800     0: aabbccddee
11801     1: aa
11802     2: cc
11803     3: ee
11804    
11805    /^a\x41z/<JS>
11806        aAz
11807     0: aAz
11808        *** Failers
11809    No match
11810        ax41z
11811    No match
11812    
11813    /^a[m\x41]z/<JS>
11814        aAz
11815     0: aAz
11816    
11817    /^a\x1z/<JS>
11818        ax1z
11819     0: ax1z
11820    
11821    /^a\u0041z/<JS>
11822        aAz
11823     0: aAz
11824        *** Failers
11825    No match
11826        au0041z
11827    No match
11828    
11829    /^a[m\u0041]z/<JS>
11830        aAz
11831     0: aAz
11832    
11833    /^a\u041z/<JS>
11834        au041z
11835     0: au041z
11836        *** Failers
11837    No match
11838        aAz
11839    No match
11840    
11841    /^a\U0041z/<JS>
11842        aU0041z
11843     0: aU0041z
11844        *** Failers
11845    No match
11846        aAz
11847    No match
11848    
11849    /(?(?=c)c|d)++Y/BZ
11850    ------------------------------------------------------------------
11851            Bra
11852            BraPos
11853            Cond
11854            Assert
11855            c
11856            Ket
11857            c
11858            Alt
11859            d
11860            Ket
11861            KetRpos
11862            Y
11863            Ket
11864            End
11865    ------------------------------------------------------------------
11866    
11867    /(?(?=c)c|d)*+Y/BZ
11868    ------------------------------------------------------------------
11869            Bra
11870            Braposzero
11871            BraPos
11872            Cond
11873            Assert
11874            c
11875            Ket
11876            c
11877            Alt
11878            d
11879            Ket
11880            KetRpos
11881            Y
11882            Ket
11883            End
11884    ------------------------------------------------------------------
11885    
11886    /a[\NB]c/
11887    Failed: \N is not supported in a class at offset 3
11888    
11889    /a[B-\Nc]/
11890    Failed: \N is not supported in a class at offset 5
11891    
11892    /(a)(?2){0,1999}?(b)/
11893    
11894    /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
11895    
11896    /--- This test, with something more complicated than individual letters, causes
11897    different behaviour in Perl. Perhaps it disables some optimization; no tag is
11898    passed back for the failures, whereas in PCRE there is a tag. ---/
11899    
11900    /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
11901        AABC
11902     0: AB
11903     1: A
11904     2: B
11905    MK: A
11906        XXYZ
11907     0: XXY
11908     1: <unset>
11909     2: <unset>
11910     3: X
11911     4: X
11912     5: Y
11913    MK: B
11914        ** Failers
11915    No match
11916        XAQQ
11917    No match, mark = A
11918        XAQQXZZ
11919    No match, mark = A
11920        AXQQQ
11921    No match, mark = A
11922        AXXQQQ
11923    No match, mark = B
11924    
11925    /-- Perl doesn't give marks for these, though it does if the alternatives are
11926    replaced by single letters. --/
11927    
11928    /(b|q)(*:m)f|a(*:n)w/K
11929        aw
11930     0: aw
11931    MK: n
11932        ** Failers
11933    No match, mark = n
11934        abc
11935    No match, mark = m
11936    
11937    /(q|b)(*:m)f|a(*:n)w/K
11938        aw
11939     0: aw
11940    MK: n
11941        ** Failers
11942    No match, mark = n
11943        abc
11944    No match, mark = m
11945    
11946    /-- After a partial match, the behaviour is as for a failure. --/
11947    
11948    /^a(*:X)bcde/K
11949       abc\P
11950    Partial match, mark=X: abc
11951    
11952    /-- These are here because Perl doesn't return a mark, except for the first --/
11953    
11954    /(?=(*:x))(q|)/K+
11955        abc
11956     0:
11957     0+ abc
11958     1:
11959    MK: x
11960    
11961    /(?=(*:x))((*:y)q|)/K+
11962        abc
11963     0:
11964     0+ abc
11965     1:
11966    MK: x
11967    
11968    /(?=(*:x))(?:(*:y)q|)/K+
11969        abc
11970     0:
11971     0+ abc
11972    MK: x
11973    
11974    /(?=(*:x))(?>(*:y)q|)/K+
11975        abc
11976     0:
11977     0+ abc
11978    MK: x
11979    
11980    /(?=a(*:x))(?!a(*:y)c)/K+
11981        ab
11982     0:
11983     0+ ab
11984    MK: x
11985    
11986    /(?=a(*:x))(?=a(*:y)c|)/K+
11987        ab
11988     0:
11989     0+ ab
11990    MK: x
11991    
11992    /(..)\1/
11993        ab\P
11994    Partial match: ab
11995        aba\P
11996    Partial match: aba
11997        abab\P
11998     0: abab
11999     1: ab
12000    
12001    /(..)\1/i
12002        ab\P
12003    Partial match: ab
12004        abA\P
12005    Partial match: abA
12006        aBAb\P
12007     0: aBAb
12008     1: aB
12009    
12010    /(..)\1{2,}/
12011        ab\P
12012    Partial match: ab
12013        aba\P
12014    Partial match: aba
12015        abab\P
12016    Partial match: abab
12017        ababa\P
12018    Partial match: ababa
12019        ababab\P
12020     0: ababab
12021     1: ab
12022        ababab\P\P
12023    Partial match: ababab
12024        abababa\P
12025     0: ababab
12026     1: ab
12027        abababa\P\P
12028    Partial match: abababa
12029    
12030    /(..)\1{2,}/i
12031        ab\P
12032    Partial match: ab
12033        aBa\P
12034    Partial match: aBa
12035        aBAb\P
12036    Partial match: aBAb
12037        AbaBA\P
12038    Partial match: AbaBA
12039        abABAb\P
12040     0: abABAb
12041     1: ab
12042        aBAbaB\P\P
12043    Partial match: aBAbaB
12044        abABabA\P
12045     0: abABab
12046     1: ab
12047        abaBABa\P\P
12048    Partial match: abaBABa
12049    
12050    /(..)\1{2,}?x/i
12051        ab\P
12052    Partial match: ab
12053        abA\P
12054    Partial match: abA
12055        aBAb\P
12056    Partial match: aBAb
12057        abaBA\P
12058    Partial match: abaBA
12059        abAbaB\P
12060    Partial match: abAbaB
12061        abaBabA\P
12062    Partial match: abaBabA
12063        abAbABaBx\P
12064     0: abAbABaBx
12065     1: ab
12066    
12067    /^(..)\1/
12068        aba\P
12069    Partial match: aba
12070    
12071    /^(..)\1{2,3}x/
12072        aba\P
12073    Partial match: aba
12074        ababa\P
12075    Partial match: ababa
12076        ababa\P\P
12077    Partial match: ababa
12078        abababx
12079     0: abababx
12080     1: ab
12081        ababababx
12082     0: ababababx
12083     1: ab
12084    
12085    /^(..)\1{2,3}?x/
12086        aba\P
12087    Partial match: aba
12088        ababa\P
12089    Partial match: ababa
12090        ababa\P\P
12091    Partial match: ababa
12092        abababx
12093     0: abababx
12094     1: ab
12095        ababababx
12096     0: ababababx
12097     1: ab
12098    
12099    /^(..)(\1{2,3})ab/
12100        abababab
12101     0: abababab
12102     1: ab
12103     2: abab
12104    
12105    /^\R/
12106        \r\P
12107     0: \x0d
12108        \r\P\P
12109    Partial match: \x0d
12110    
12111    /^\R{2,3}x/
12112        \r\P
12113    Partial match: \x0d
12114        \r\P\P
12115    Partial match: \x0d
12116        \r\r\P
12117    Partial match: \x0d\x0d
12118        \r\r\P\P
12119    Partial match: \x0d\x0d
12120        \r\r\r\P
12121    Partial match: \x0d\x0d\x0d
12122        \r\r\r\P\P
12123    Partial match: \x0d\x0d\x0d
12124        \r\rx
12125     0: \x0d\x0dx
12126        \r\r\rx
12127     0: \x0d\x0d\x0dx
12128    
12129    /^\R{2,3}?x/
12130        \r\P
12131    Partial match: \x0d
12132        \r\P\P
12133    Partial match: \x0d
12134        \r\r\P
12135    Partial match: \x0d\x0d
12136        \r\r\P\P
12137    Partial match: \x0d\x0d
12138        \r\r\r\P
12139    Partial match: \x0d\x0d\x0d
12140        \r\r\r\P\P
12141    Partial match: \x0d\x0d\x0d
12142        \r\rx
12143     0: \x0d\x0dx
12144        \r\r\rx
12145     0: \x0d\x0d\x0dx
12146    
12147    /^\R?x/
12148        \r\P
12149    Partial match: \x0d
12150        \r\P\P
12151    Partial match: \x0d
12152        x
12153     0: x
12154        \rx
12155     0: \x0dx
12156    
12157    /^\R+x/
12158        \r\P
12159    Partial match: \x0d
12160        \r\P\P
12161    Partial match: \x0d
12162        \r\n\P
12163    Partial match: \x0d\x0a
12164        \r\n\P\P
12165    Partial match: \x0d\x0a
12166        \rx
12167     0: \x0dx
12168    
12169    /^a$/<CRLF>
12170        a\r\P
12171    Partial match: a\x0d
12172        a\r\P\P
12173    Partial match: a\x0d
12174    
12175    /^a$/m<CRLF>
12176        a\r\P
12177    Partial match: a\x0d
12178        a\r\P\P
12179    Partial match: a\x0d
12180    
12181    /^(a$|a\r)/<CRLF>
12182        a\r\P
12183     0: a\x0d
12184     1: a\x0d
12185        a\r\P\P
12186    Partial match: a\x0d
12187    
12188    /^(a$|a\r)/m<CRLF>
12189        a\r\P
12190     0: a\x0d
12191     1: a\x0d
12192        a\r\P\P
12193    Partial match: a\x0d
12194    
12195    /./<CRLF>
12196        \r\P
12197     0: \x0d
12198        \r\P\P
12199    Partial match: \x0d
12200    
12201    /.{2,3}/<CRLF>
12202        \r\P
12203    Partial match: \x0d
12204        \r\P\P
12205    Partial match: \x0d
12206        \r\r\P
12207     0: \x0d\x0d
12208        \r\r\P\P
12209    Partial match: \x0d\x0d
12210        \r\r\r\P
12211     0: \x0d\x0d\x0d
12212        \r\r\r\P\P
12213    Partial match: \x0d\x0d\x0d
12214    
12215    /.{2,3}?/<CRLF>
12216        \r\P
12217    Partial match: \x0d
12218        \r\P\P
12219    Partial match: \x0d
12220        \r\r\P
12221     0: \x0d\x0d
12222        \r\r\P\P
12223    Partial match: \x0d\x0d
12224        \r\r\r\P
12225     0: \x0d\x0d
12226        \r\r\r\P\P
12227     0: \x0d\x0d
12228    
12229    "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
12230        ABCDGHI\O03
12231    Matched, but too many substrings
12232     0: ABCD
12233    
12234    /-- These are all run as real matches in test 1; here we are just checking the
12235    settings of the anchored and startline bits. --/
12236    
12237    /(?>.*?a)(?<=ba)/I
12238    Capturing subpattern count = 0
12239    No options
12240    No first char
12241    Need char = 'a'
12242    Max lookbehind = 2
12243    
12244    /(?:.*?a)(?<=ba)/I
12245    Capturing subpattern count = 0
12246    No options
12247    First char at start or follows newline
12248    Need char = 'a'
12249    Max lookbehind = 2
12250    
12251    /.*?a(*PRUNE)b/I
12252    Capturing subpattern count = 0
12253    No options
12254    No first char
12255    Need char = 'b'
12256    
12257    /.*?a(*PRUNE)b/sI
12258    Capturing subpattern count = 0
12259    Options: dotall
12260    No first char
12261    Need char = 'b'
12262    
12263    /^a(*PRUNE)b/sI
12264    Capturing subpattern count = 0
12265    Options: anchored dotall
12266    No first char
12267    No need char
12268    
12269    /.*?a(*SKIP)b/I
12270    Capturing subpattern count = 0
12271    No options
12272    No first char
12273    Need char = 'b'
12274    
12275    /(?>.*?a)b/sI
12276    Capturing subpattern count = 0
12277    Options: dotall
12278    No first char
12279    Need char = 'b'
12280    
12281    /(?>.*?a)b/I
12282    Capturing subpattern count = 0
12283    No options
12284    No first char
12285    Need char = 'b'
12286    
12287    /(?>^a)b/sI
12288    Capturing subpattern count = 0
12289    Options: anchored dotall
12290    No first char
12291    No need char
12292    
12293    /(?>.*?)(?<=(abcd)|(wxyz))/I
12294    Capturing subpattern count = 2
12295    No options
12296    No first char
12297    No need char
12298    Max lookbehind = 4
12299    
12300    /(?>.*)(?<=(abcd)|(wxyz))/I
12301    Capturing subpattern count = 2
12302    No options
12303    No first char
12304    No need char
12305    Max lookbehind = 4
12306    
12307    "(?>.*)foo"I
12308    Capturing subpattern count = 0
12309    No options
12310    No first char
12311    Need char = 'o'
12312    
12313    "(?>.*?)foo"I
12314    Capturing subpattern count = 0
12315    No options
12316    No first char
12317    Need char = 'o'
12318    
12319    /(?>^abc)/mI
12320    Capturing subpattern count = 0
12321    Options: multiline
12322    First char at start or follows newline
12323    Need char = 'c'
12324    
12325    /(?>.*abc)/mI
12326    Capturing subpattern count = 0
12327    Options: multiline
12328    No first char
12329    Need char = 'c'
12330    
12331    /(?:.*abc)/mI
12332    Capturing subpattern count = 0
12333    Options: multiline
12334    First char at start or follows newline
12335    Need char = 'c'
12336    
12337    /-- Check PCRE_STUDY_EXTRA_NEEDED --/
12338    
12339    /.?/S-I
12340    Capturing subpattern count = 0
12341    No options
12342    No first char
12343    No need char
12344    Study returned NULL
12345    
12346    /.?/S!I
12347    Capturing subpattern count = 0
12348    No options
12349    No first char
12350    No need char
12351    Subject length lower bound = -1
12352    No set of starting bytes
12353    
12354    /(?:(a)+(?C1)bb|aa(?C2)b)/
12355        aab\C+
12356    Callout 1: last capture = 1
12357     0: <unset>
12358     1: a
12359    --->aab
12360        ^ ^     b
12361    Callout 1: last capture = 1
12362     0: <unset>
12363     1: a
12364    --->aab
12365        ^^      b
12366    Callout 2: last capture = -1
12367     0: <unset>
12368    --->aab
12369        ^ ^     b
12370     0: aab
12371    
12372    /(?:(a)++(?C1)bb|aa(?C2)b)/
12373        aab\C+
12374    Callout 1: last capture = 1
12375     0: <unset>
12376     1: a
12377    --->aab
12378        ^ ^     b
12379    Callout 2: last capture = -1
12380     0: <unset>
12381    --->aab
12382        ^ ^     b
12383     0: aab
12384    
12385    /(?:(?>(a))(?C1)bb|aa(?C2)b)/
12386        aab\C+
12387    Callout 1: last capture = 1
12388     0: <unset>
12389     1: a
12390    --->aab
12391        ^^      b
12392    Callout 2: last capture = -1
12393     0: <unset>
12394    --->aab
12395        ^ ^     b
12396     0: aab
12397    
12398    /(?:(?1)(?C1)x|ab(?C2))((a)){0}/
12399        aab\C+
12400    Callout 1: last capture = -1
12401     0: <unset>
12402    --->aab
12403        ^^      x
12404    Callout 1: last capture = -1
12405     0: <unset>
12406    --->aab
12407         ^^     x
12408    Callout 2: last capture = -1
12409     0: <unset>
12410    --->aab
12411         ^ ^    )
12412     0: ab
12413    
12414    /(?1)(?C1)((a)(?C2)){0}/
12415        aab\C+
12416    Callout 2: last capture = 2
12417     0: <unset>
12418     1: <unset>
12419     2: a
12420    --->aab
12421        ^^      )
12422    Callout 1: last capture = -1
12423     0: <unset>
12424    --->aab
12425        ^^      ((a)(?C2)){0}
12426     0: a
12427    
12428    /(?:(a)+(?C1)bb|aa(?C2)b)++/
12429        aab\C+
12430    Callout 1: last capture = 1
12431     0: <unset>
12432     1: a
12433    --->aab
12434        ^ ^     b
12435    Callout 1: last capture = 1
12436     0: <unset>
12437     1: a
12438    --->aab
12439        ^^      b
12440    Callout 2: last capture = -1
12441     0: <unset>
12442    --->aab
12443        ^ ^     b
12444     0: aab
12445        aab\C+\O2
12446    Callout 1: last capture = 1
12447     0: <unset>
12448    --->aab
12449        ^ ^     b
12450    Callout 1: last capture = 1
12451     0: <unset>
12452    --->aab
12453        ^^      b
12454    Callout 2: last capture = -1
12455     0: <unset>
12456    --->aab
12457        ^ ^     b
12458     0: aab
12459    
12460    /(ab)x|ab/
12461        ab\O3
12462     0: ab
12463        ab\O2
12464     0: ab
12465    
12466    /(ab)/
12467        ab\O3
12468    Matched, but too many substrings
12469     0: ab
12470        ab\O2
12471    Matched, but too many substrings
12472     0: ab
12473    
12474    /(?<=123)(*MARK:xx)abc/K
12475        xxxx123a\P\P
12476    Partial match at offset 7, mark=xx: 123a
12477        xxxx123a\P
12478    Partial match at offset 7, mark=xx: 123a
12479    
12480    /123\Kabc/
12481        xxxx123a\P\P
12482    Partial match: 123a
12483        xxxx123a\P
12484    Partial match: 123a
12485    
12486    /^(?(?=a)aa|bb)/C
12487        bb
12488    --->bb
12489     +0 ^      ^
12490     +1 ^      (?(?=a)aa|bb)
12491     +3 ^      (?=a)
12492     +6 ^      a
12493    +11 ^      b
12494    +12 ^^     b
12495    +13 ^ ^    )
12496    +14 ^ ^
12497     0: bb
12498    
12499    /(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/
12500        bb
12501    --->bb
12502      1 ^      ^
12503      2 ^      (?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))
12504     99 ^      (?=(?C3)a(?C4))
12505      3 ^      a
12506      8 ^      b
12507      9 ^^     b
12508     10 ^ ^    )
12509     11 ^ ^
12510     0: bb
12511    
12512    /-- Perl seems to have a bug with this one --/
12513    
12514    /aaaaa(*COMMIT)(*PRUNE)b|a+c/
12515        aaaaaac
12516     0: aaaac
12517    
12518    /-- Here are some that Perl treats differently because of the way it handles
12519    backtracking verbs. --/
12520    
12521     /(?!a(*COMMIT)b)ac|ad/
12522         ac
12523     0: ac
12524         ad
12525     0: ad
12526    
12527    /^(?!a(*THEN)b|ac)../
12528         ac
12529    No match
12530         ad
12531     0: ad
12532    
12533    /^(?=a(*THEN)b|ac)/
12534        ac
12535     0:
12536    
12537    /\A.*?(?:a|b(*THEN)c)/
12538        ba
12539     0: ba
12540    
12541    /\A.*?(?:a|b(*THEN)c)++/
12542        ba
12543     0: ba
12544    
12545    /\A.*?(?:a|b(*THEN)c|d)/
12546        ba
12547     0: ba
12548    
12549    /(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/
12550        aac
12551     0: aac
12552    
12553    /\A.*?(a|b(*THEN)c)/
12554        ba
12555     0: ba
12556     1: a
12557    
12558    /^(A(*THEN)B|A(*THEN)D)/
12559        AD
12560     0: AD
12561     1: AD
12562    
12563    /(?!b(*THEN)a)bn|bnn/
12564        bnn
12565     0: bn
12566    
12567    /(?(?=b(*SKIP)a)bn|bnn)/
12568        bnn
12569    No match
12570    
12571    /(?=b(*THEN)a|)bn|bnn/
12572        bnn
12573     0: bn
12574    
12575    /-------------------------/
12576    
12577  /-- End of testinput2 --/  /-- End of testinput2 --/

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

  ViewVC Help
Powered by ViewVC 1.1.5