/[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 609 by ph10, Wed Jun 15 18:09:23 2011 UTC revision 937 by ph10, Sun Feb 26 15:58:56 2012 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 714  Capturing subpattern count = 0 Line 659  Capturing subpattern count = 0
659  No options  No options
660  No first char  No first char
661  No need char  No need char
662    Max lookbehind = 3
663  Subject length lower bound = 1  Subject length lower bound = 1
664  Starting byte set: a b  Starting byte set: a b
665    
# Line 722  Capturing subpattern count = 1 Line 668  Capturing subpattern count = 1
668  No options  No options
669  No first char  No first char
670  Need char = 'a'  Need char = 'a'
671    Max lookbehind = 3
672  Subject length lower bound = 5  Subject length lower bound = 5
673  Starting byte set: a o  Starting byte set: a o
674    
# Line 739  Contains explicit CR or LF match Line 686  Contains explicit CR or LF match
686  Options: multiline  Options: multiline
687  No first char  No first char
688  Need char = 'r'  Need char = 'r'
689    Max lookbehind = 4
690      foo\nbarbar      foo\nbarbar
691   0: bar   0: bar
692      ***Failers      ***Failers
# Line 756  Contains explicit CR or LF match Line 704  Contains explicit CR or LF match
704  Options: multiline  Options: multiline
705  First char at start or follows newline  First char at start or follows newline
706  Need char = 'r'  Need char = 'r'
707    Max lookbehind = 4
708      foo\nbarbar      foo\nbarbar
709   0: bar   0: bar
710      ***Failers      ***Failers
# Line 797  Capturing subpattern count = 0 Line 746  Capturing subpattern count = 0
746  No options  No options
747  First char = '-'  First char = '-'
748  Need char = 't'  Need char = 't'
749    Max lookbehind = 7
750      the bullock-cart      the bullock-cart
751   0: -cart   0: -cart
752      a donkey-cart race      a donkey-cart race
# Line 813  Capturing subpattern count = 0 Line 763  Capturing subpattern count = 0
763  No options  No options
764  No first char  No first char
765  No need char  No need char
766    Max lookbehind = 3
767    
768  /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
769  Capturing subpattern count = 2  Capturing subpattern count = 2
770  No options  No options
771  First char at start or follows newline  First char at start or follows newline
772  No need char  No need char
773    Max lookbehind = 4
774      alphabetabcd      alphabetabcd
775   0: alphabetabcd   0: alphabetabcd
776   1: abcd   1: abcd
# Line 832  Capturing subpattern count = 0 Line 784  Capturing subpattern count = 0
784  No options  No options
785  First char = 'Z'  First char = 'Z'
786  Need char = 'Z'  Need char = 'Z'
787    Max lookbehind = 4
788      abxyZZ      abxyZZ
789   0: ZZ   0: ZZ
790      abXyZZ      abXyZZ
# Line 860  Capturing subpattern count = 1 Line 813  Capturing subpattern count = 1
813  No options  No options
814  First char = 'b'  First char = 'b'
815  Need char = 'r'  Need char = 'r'
816    Max lookbehind = 4
817      bar      bar
818   0: bar   0: bar
819      foobbar      foobbar
# Line 1031  Failed: numbers out of order in {} quant Line 985  Failed: numbers out of order in {} quant
985  /abc/\  /abc/\
986  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
987    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
988  /abc/\i  /abc/\i
989  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
990    
# Line 1149  No first char Line 1100  No first char
1100  No need char  No need char
1101      abc\00def\L\C0      abc\00def\L\C0
1102   0: abc\x00def   0: abc\x00def
1103   0C abc (7)   0C abc\x00def (7)
1104   0L abc   0L abc
1105    
1106  /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 1215  Capturing subpattern count = 0
1215  No options  No options
1216  First char = 'i'  First char = 'i'
1217  Need char = 's'  Need char = 's'
1218      Mississippi  Max lookbehind = 1
  0: iss  
  0+ issippi  
   
 /\Biss\B/I+P  
1219      Mississippi      Mississippi
1220   0: iss   0: iss
1221   0+ issippi   0+ issippi
# Line 1289  Capturing subpattern count = 0 Line 1236  Capturing subpattern count = 0
1236  No options  No options
1237  First char = 'i'  First char = 'i'
1238  Need char = 's'  Need char = 's'
1239    Max lookbehind = 1
1240      Mississippi      Mississippi
1241   0: iss   0: iss
1242   0+ issippi   0+ issippi
# Line 1298  Capturing subpattern count = 0 Line 1246  Capturing subpattern count = 0
1246  No options  No options
1247  First char = 'i'  First char = 'i'
1248  Need char = 's'  Need char = 's'
1249    Max lookbehind = 1
1250      Mississippi      Mississippi
1251   0: iss   0: iss
1252   0+ issippi   0+ issippi
# Line 1313  Capturing subpattern count = 0 Line 1262  Capturing subpattern count = 0
1262  No options  No options
1263  First char = 'i'  First char = 'i'
1264  Need char = 's'  Need char = 's'
1265    Max lookbehind = 1
1266      Mississippi      Mississippi
1267   0: iss   0: iss
1268   0+ issippi   0+ issippi
# Line 1324  Capturing subpattern count = 0 Line 1274  Capturing subpattern count = 0
1274  No options  No options
1275  First char = 'i'  First char = 'i'
1276  Need char = 's'  Need char = 's'
1277    Max lookbehind = 1
1278      Mississippi      Mississippi
1279   0: iss   0: iss
1280   0+ issippi   0+ issippi
# Line 1402  Capturing subpattern count = 0 Line 1353  Capturing subpattern count = 0
1353  Contains explicit CR or LF match  Contains explicit CR or LF match
1354  Options: multiline  Options: multiline
1355  First char at start or follows newline  First char at start or follows newline
1356  Need char = 10  Need char = \x0a
1357      ab\nab\ncd      ab\nab\ncd
1358   0: ab\x0a   0: ab\x0a
1359   0+ ab\x0acd   0+ ab\x0acd
# Line 1504  Capturing subpattern count = 0 Line 1455  Capturing subpattern count = 0
1455  No options  No options
1456  No first char  No first char
1457  No need char  No need char
1458    Max lookbehind = 3
1459    
1460  /abc(?!pqr)/I  /abc(?!pqr)/I
1461  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 1689  No need char Line 1641  No need char
1641      \Nabc      \Nabc
1642  No match  No match
1643    
 /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  
   
1644  /^.?abcd/IS  /^.?abcd/IS
1645  Capturing subpattern count = 0  Capturing subpattern count = 0
1646  Options: anchored  Options: anchored
# Line 3311  Capturing subpattern count = 0 Line 3236  Capturing subpattern count = 0
3236  No options  No options
3237  First char = '8'  First char = '8'
3238  Need char = 'X'  Need char = 'X'
3239    Max lookbehind = 1
3240    
3241  |\$\<\.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
3242  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3324  Capturing subpattern count = 0 Line 3250  Capturing subpattern count = 0
3250  No options  No options
3251  First char = '$'  First char = '$'
3252  Need char = 'X'  Need char = 'X'
3253    Max lookbehind = 1
3254    
3255  /(.*)\d+\1/I  /(.*)\d+\1/I
3256  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 3580  Need char = 'f' Line 3507  Need char = 'f'
3507    1    ^    ^     f    1    ^    ^     f
3508   0: abcdef   0: abcdef
3509    
3510  /(?C1)\dabc(?C2)def/I  /(?C1)\dabc(?C2)def/IS
3511    Capturing subpattern count = 0
3512    No options
3513    No first char
3514    Need char = 'f'
3515    Subject length lower bound = 7
3516    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3517        1234abcdef
3518    --->1234abcdef
3519      1 ^              \d
3520      1  ^             \d
3521      1   ^            \d
3522      1    ^           \d
3523      2    ^   ^       d
3524     0: 4abcdef
3525        *** Failers
3526    No match
3527        abcdef
3528    No match
3529    
3530    /(?C1)\dabc(?C2)def/ISS
3531  Capturing subpattern count = 0  Capturing subpattern count = 0
3532  No options  No options
3533  No first char  No first char
# Line 3819  Capturing subpattern count = 1 Line 3766  Capturing subpattern count = 1
3766  No options  No options
3767  First char = 'x'  First char = 'x'
3768  Need char = 'z'  Need char = 'z'
3769    Max lookbehind = 3
3770     abcxyz\C+     abcxyz\C+
3771  Callout 0: last capture = 1  Callout 0: last capture = 1
3772   0: <unset>   0: <unset>
# Line 3984  Need char = '<' Line 3932  Need char = '<'
3932          Bra          Bra
3933          CBra 1          CBra 1
3934          a          a
         Once  
3935          Recurse          Recurse
         Ket  
3936          b          b
3937          Ket          Ket
3938          Ket          Ket
# Line 4207  Need char = 'a' Line 4153  Need char = 'a'
4153          Any          Any
4154          \1          \1
4155          bbb          bbb
         Once  
4156          Recurse          Recurse
         Ket  
4157          d          d
4158          Ket          Ket
4159          End          End
# Line 4414  No first char Line 4358  No first char
4358  Need char = 'z'  Need char = 'z'
4359    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4360  Minimum match() limit = 8  Minimum match() limit = 8
4361  Minimum match() recursion limit = 7  Minimum match() recursion limit = 6
4362   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4363   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4364    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4365  Minimum match() limit = 32768  Minimum match() limit = 32768
4366  Minimum match() recursion limit = 43  Minimum match() recursion limit = 42
4367  No match  No match
4368    
4369  /(aaa(?C1)bbb|ab)/I  /(aaa(?C1)bbb|ab)/I
# Line 4581  Need char = ']' Line 4525  Need char = ']'
4525          a          a
4526          CBra 2          CBra 2
4527          b          b
         Once  
4528          Recurse          Recurse
         Ket  
4529          c          c
4530          Ket          Ket
4531          Ket          Ket
# Line 4603  No need char Line 4545  No need char
4545          a          a
4546          CBra 2          CBra 2
4547          b          b
         Once  
4548          Recurse          Recurse
         Ket  
4549          c          c
4550          Ket          Ket
4551          KetRmax          KetRmax
# Line 4626  No need char Line 4566  No need char
4566          a          a
4567          CBra 2          CBra 2
4568          b          b
         Once  
4569          Recurse          Recurse
         Ket  
4570          c          c
4571          Ket          Ket
4572          Ket          Ket
# Line 4637  No need char Line 4575  No need char
4575          a          a
4576          CBra 2          CBra 2
4577          b          b
         Once  
4578          Recurse          Recurse
         Ket  
4579          c          c
4580          Ket          Ket
4581          Ket          Ket
# Line 4778  Need char = 'e' Line 4714  Need char = 'e'
4714   +4 ^   ^      e   +4 ^   ^      e
4715  No match  No match
4716    
4717  /a*b/ICDZ  /a*b/ICDZS
4718    ------------------------------------------------------------------
4719            Bra
4720            Callout 255 0 2
4721            a*+
4722            Callout 255 2 1
4723            b
4724            Callout 255 3 0
4725            Ket
4726            End
4727    ------------------------------------------------------------------
4728    Capturing subpattern count = 0
4729    Options:
4730    No first char
4731    Need char = 'b'
4732    Subject length lower bound = 1
4733    Starting byte set: a b
4734      ab
4735    --->ab
4736     +0 ^      a*
4737     +2 ^^     b
4738     +3 ^ ^
4739     0: ab
4740      aaaab
4741    --->aaaab
4742     +0 ^         a*
4743     +2 ^   ^     b
4744     +3 ^    ^
4745     0: aaaab
4746      aaaacb
4747    --->aaaacb
4748     +0 ^          a*
4749     +2 ^   ^      b
4750     +0  ^         a*
4751     +2  ^  ^      b
4752     +0   ^        a*
4753     +2   ^ ^      b
4754     +0    ^       a*
4755     +2    ^^      b
4756     +0      ^     a*
4757     +2      ^     b
4758     +3      ^^
4759     0: b
4760    
4761    /a*b/ICDZSS
4762  ------------------------------------------------------------------  ------------------------------------------------------------------
4763          Bra          Bra
4764          Callout 255 0 2          Callout 255 0 2
# Line 4861  Need char = 'b' Line 4841  Need char = 'b'
4841   +2    ^^      b   +2    ^^      b
4842  No match  No match
4843    
4844  /(abc|def)x/ICDZ  /(abc|def)x/ICDZS
4845    ------------------------------------------------------------------
4846            Bra
4847            Callout 255 0 9
4848            CBra 1
4849            Callout 255 1 1
4850            a
4851            Callout 255 2 1
4852            b
4853            Callout 255 3 1
4854            c
4855            Callout 255 4 0
4856            Alt
4857            Callout 255 5 1
4858            d
4859            Callout 255 6 1
4860            e
4861            Callout 255 7 1
4862            f
4863            Callout 255 8 0
4864            Ket
4865            Callout 255 9 1
4866            x
4867            Callout 255 10 0
4868            Ket
4869            End
4870    ------------------------------------------------------------------
4871    Capturing subpattern count = 1
4872    Options:
4873    No first char
4874    Need char = 'x'
4875    Subject length lower bound = 4
4876    Starting byte set: a d
4877      abcx
4878    --->abcx
4879     +0 ^        (abc|def)
4880     +1 ^        a
4881     +2 ^^       b
4882     +3 ^ ^      c
4883     +4 ^  ^     |
4884     +9 ^  ^     x
4885    +10 ^   ^
4886     0: abcx
4887     1: abc
4888      defx
4889    --->defx
4890     +0 ^        (abc|def)
4891     +1 ^        a
4892     +5 ^        d
4893     +6 ^^       e
4894     +7 ^ ^      f
4895     +8 ^  ^     )
4896     +9 ^  ^     x
4897    +10 ^   ^
4898     0: defx
4899     1: def
4900      ** Failers
4901    No match
4902      abcdefzx
4903    --->abcdefzx
4904     +0 ^            (abc|def)
4905     +1 ^            a
4906     +2 ^^           b
4907     +3 ^ ^          c
4908     +4 ^  ^         |
4909     +9 ^  ^         x
4910     +5 ^            d
4911     +0    ^         (abc|def)
4912     +1    ^         a
4913     +5    ^         d
4914     +6    ^^        e
4915     +7    ^ ^       f
4916     +8    ^  ^      )
4917     +9    ^  ^      x
4918    No match
4919    
4920    /(abc|def)x/ICDZSS
4921  ------------------------------------------------------------------  ------------------------------------------------------------------
4922          Bra          Bra
4923          Callout 255 0 9          Callout 255 0 9
# Line 4915  Need char = 'x' Line 4971  Need char = 'x'
4971  +10 ^   ^  +10 ^   ^
4972   0: defx   0: defx
4973   1: def   1: def
4974      ** Failers
4975    No match
4976    abcdefzx    abcdefzx
4977  --->abcdefzx  --->abcdefzx
4978   +0 ^            (abc|def)   +0 ^            (abc|def)
# Line 5015  No need char Line 5073  No need char
5073   0: abcdcdcd   0: abcdcdcd
5074   1: cd   1: cd
5075    
5076  /([ab]{,4}c|xy)/ICDZ  /([ab]{,4}c|xy)/ICDZS
5077    ------------------------------------------------------------------
5078            Bra
5079            Callout 255 0 14
5080            CBra 1
5081            Callout 255 1 4
5082            [ab]
5083            Callout 255 5 1
5084            {
5085            Callout 255 6 1
5086            ,
5087            Callout 255 7 1
5088            4
5089            Callout 255 8 1
5090            }
5091            Callout 255 9 1
5092            c
5093            Callout 255 10 0
5094            Alt
5095            Callout 255 11 1
5096            x
5097            Callout 255 12 1
5098            y
5099            Callout 255 13 0
5100            Ket
5101            Callout 255 14 0
5102            Ket
5103            End
5104    ------------------------------------------------------------------
5105    Capturing subpattern count = 1
5106    Options:
5107    No first char
5108    No need char
5109    Subject length lower bound = 2
5110    Starting byte set: a b x
5111        Note: that { does NOT introduce a quantifier
5112    --->Note: that { does NOT introduce a quantifier
5113     +0         ^                                        ([ab]{,4}c|xy)
5114     +1         ^                                        [ab]
5115     +5         ^^                                       {
5116    +11         ^                                        x
5117     +0                                 ^                ([ab]{,4}c|xy)
5118     +1                                 ^                [ab]
5119     +5                                 ^^               {
5120    +11                                 ^                x
5121     +0                                     ^            ([ab]{,4}c|xy)
5122     +1                                     ^            [ab]
5123     +5                                     ^^           {
5124    +11                                     ^            x
5125    No match
5126    
5127    /([ab]{,4}c|xy)/ICDZSS
5128  ------------------------------------------------------------------  ------------------------------------------------------------------
5129          Bra          Bra
5130          Callout 255 0 14          Callout 255 0 14
# Line 5305  Capturing subpattern count = 0 Line 5414  Capturing subpattern count = 0
5414  No options  No options
5415  No first char  No first char
5416  No need char  No need char
5417    Max lookbehind = 1
5418    ab cd\>1    ab cd\>1
5419   0:  cd   0:  cd
5420    
# Line 5313  Capturing subpattern count = 0 Line 5423  Capturing subpattern count = 0
5423  Options: dotall  Options: dotall
5424  No first char  No first char
5425  No need char  No need char
5426    Max lookbehind = 1
5427    ab cd\>1    ab cd\>1
5428   0:  cd   0:  cd
5429    
# Line 5467  No match Line 5578  No match
5578      123456\P      123456\P
5579  No match  No match
5580    
5581  /abc/I>testsavedregex  /abc/IS>testsavedregex
5582  Capturing subpattern count = 0  Capturing subpattern count = 0
5583  No options  No options
5584  First char = 'a'  First char = 'a'
5585  Need char = 'c'  Need char = 'c'
5586  Compiled regex written to testsavedregex  Subject length lower bound = 3
5587    No set of starting bytes
5588    Compiled pattern written to testsavedregex
5589    Study data written to testsavedregex
5590  <testsavedregex  <testsavedregex
5591  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5592  No study data  Study data loaded from testsavedregex
5593      abc      abc
5594   0: abc   0: abc
5595      ** Failers      ** Failers
# Line 5483  No match Line 5597  No match
5597      bca      bca
5598  No match  No match
5599    
5600  /abc/IF>testsavedregex  /abc/ISS>testsavedregex
5601  Capturing subpattern count = 0  Capturing subpattern count = 0
5602  No options  No options
5603  First char = 'a'  First char = 'a'
5604  Need char = 'c'  Need char = 'c'
5605  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5606  <testsavedregex  <testsavedregex
5607  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5608  No study data  No study data
5609      abc      abc
5610   0: abc   0: abc
# Line 5499  No match Line 5613  No match
5613      bca      bca
5614  No match  No match
5615    
5616  /(a|b)/IS>testsavedregex  /abc/IFS>testsavedregex
5617  Capturing subpattern count = 1  Capturing subpattern count = 0
5618  No options  No options
5619  No first char  First char = 'a'
5620  No need char  Need char = 'c'
5621  Subject length lower bound = 1  Subject length lower bound = 3
5622  Starting byte set: a b  No set of starting bytes
5623  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5624  Study data written to testsavedregex  Study data written to testsavedregex
5625  <testsavedregex  <testsavedregex
5626  Compiled regex loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5627    Study data loaded from testsavedregex
5628        abc
5629     0: abc
5630        ** Failers
5631    No match
5632        bca
5633    No match
5634    
5635    /abc/IFSS>testsavedregex
5636    Capturing subpattern count = 0
5637    No options
5638    First char = 'a'
5639    Need char = 'c'
5640    Compiled pattern written to testsavedregex
5641    <testsavedregex
5642    Compiled pattern (byte-inverted) loaded from testsavedregex
5643    No study data
5644        abc
5645     0: abc
5646        ** Failers
5647    No match
5648        bca
5649    No match
5650    
5651    /(a|b)/IS>testsavedregex
5652    Capturing subpattern count = 1
5653    No options
5654    No first char
5655    No need char
5656    Subject length lower bound = 1
5657    Starting byte set: a b
5658    Compiled pattern written to testsavedregex
5659    Study data written to testsavedregex
5660    <testsavedregex
5661    Compiled pattern loaded from testsavedregex
5662  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5663      abc      abc
5664   0: a   0: a
# Line 5520  Study data loaded from testsavedregex Line 5669  Study data loaded from testsavedregex
5669      def      def
5670  No match  No match
5671    
5672    /(a|b)/ISS>testsavedregex
5673    Capturing subpattern count = 1
5674    No options
5675    No first char
5676    No need char
5677    Compiled pattern written to testsavedregex
5678    <testsavedregex
5679    Compiled pattern loaded from testsavedregex
5680    No study data
5681        abc
5682     0: a
5683     1: a
5684        ** Failers
5685     0: a
5686     1: a
5687        def
5688    No match
5689    
5690  /(a|b)/ISF>testsavedregex  /(a|b)/ISF>testsavedregex
5691  Capturing subpattern count = 1  Capturing subpattern count = 1
5692  No options  No options
# Line 5527  No first char Line 5694  No first char
5694  No need char  No need char
5695  Subject length lower bound = 1  Subject length lower bound = 1
5696  Starting byte set: a b  Starting byte set: a b
5697  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5698  Study data written to testsavedregex  Study data written to testsavedregex
5699  <testsavedregex  <testsavedregex
5700  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5701  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5702      abc      abc
5703   0: a   0: a
# Line 5541  Study data loaded from testsavedregex Line 5708  Study data loaded from testsavedregex
5708      def      def
5709  No match  No match
5710    
5711    /(a|b)/ISSF>testsavedregex
5712    Capturing subpattern count = 1
5713    No options
5714    No first char
5715    No need char
5716    Compiled pattern written to testsavedregex
5717    <testsavedregex
5718    Compiled pattern (byte-inverted) loaded from testsavedregex
5719    No study data
5720        abc
5721     0: a
5722     1: a
5723        ** Failers
5724     0: a
5725     1: a
5726        def
5727    No match
5728    
5729  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5730  Capturing subpattern count = 3  Capturing subpattern count = 3
5731  Max back reference = 1  Max back reference = 1
5732  Options: multiline dotall  Options: multiline dotall
5733  First char = '<'  First char = '<'
5734  Need char = '>'  Need char = '>'
5735      <!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>
5736   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>
5737   1: seite   1: seite
5738   2: \x0a   2: \x0a
# Line 5596  No match Line 5781  No match
5781      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5782  No match  No match
5783    
 /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  
   
5784  /(?i)(?-i)AbCd/I  /(?i)(?-i)AbCd/I
5785  Capturing subpattern count = 0  Capturing subpattern count = 0
5786  No options  No options
# Line 5906  No need char Line 6073  No need char
6073      ((this))      ((this))
6074   0: ((this))   0: ((this))
6075    
 /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  
   
6076  /\x{0000ff}/I  /\x{0000ff}/I
6077  Capturing subpattern count = 0  Capturing subpattern count = 0
6078  No options  No options
6079  First char = 255  First char = \xff
6080  No need char  No need char
6081    
6082  /^((?P<A>a1)|(?P<A>a2)b)/I  /^((?P<A>a1)|(?P<A>a2)b)/I
# Line 6030  no parentheses with name "Z" Line 6186  no parentheses with name "Z"
6186   0: a1   0: a1
6187   1: a1   1: a1
6188   2: a1   2: a1
6189  copy substring Z failed -7  get substring Z failed -7
6190    G a1 (2) A    G a1 (2) A
6191    
6192  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
# Line 6062  No need char Line 6218  No need char
6218    G a (1) A    G a (1) A
6219      cd\GA      cd\GA
6220   0: cd   0: cd
6221  copy substring A failed -7  get substring A failed -7
6222    
6223  /^(?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
6224  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 6230  No need char Line 6386  No need char
6386   9:   9:
6387  10: Y  10: Y
6388    
 /\777/I  
 Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3  
   
6389  /\s*,\s*/IS  /\s*,\s*/IS
6390  Capturing subpattern count = 0  Capturing subpattern count = 0
6391  No options  No options
# Line 6411  No first char Line 6564  No first char
6564  No need char  No need char
6565     /* this is a C style comment */\M     /* this is a C style comment */\M
6566  Minimum match() limit = 120  Minimum match() limit = 120
6567  Minimum match() recursion limit = 35  Minimum match() recursion limit = 6
6568   0: /* this is a C style comment */   0: /* this is a C style comment */
6569   1: /* this is a C style comment */   1: /* this is a C style comment */
6570    
# Line 7293  Matched, but too many substrings Line 7446  Matched, but too many substrings
7446  /[^a]+a/BZi  /[^a]+a/BZi
7447  ------------------------------------------------------------------  ------------------------------------------------------------------
7448          Bra          Bra
7449       /i [^A]++       /i [^a]++
7450       /i a       /i a
7451          Ket          Ket
7452          End          End
# Line 7302  Matched, but too many substrings Line 7455  Matched, but too many substrings
7455  /[^a]+A/BZi  /[^a]+A/BZi
7456  ------------------------------------------------------------------  ------------------------------------------------------------------
7457          Bra          Bra
7458       /i [^A]++       /i [^a]++
7459       /i A       /i A
7460          Ket          Ket
7461          End          End
# Line 7498  No match Line 7651  No match
7651  ------------------------------------------------------------------  ------------------------------------------------------------------
7652          Bra          Bra
7653          ^          ^
         Once  
7654          Recurse          Recurse
         Ket  
7655          [()]          [()]
7656          CBra 1          CBra 1
7657          Ket          Ket
# Line 7534  No match Line 7685  No match
7685  ------------------------------------------------------------------  ------------------------------------------------------------------
7686          Bra          Bra
7687          ^          ^
         Once  
7688          Recurse          Recurse
         Ket  
7689          ()          ()
7690          CBra 1          CBra 1
7691          Ket          Ket
# Line 7548  No match Line 7697  No match
7697  ------------------------------------------------------------------  ------------------------------------------------------------------
7698          Bra          Bra
7699          ^          ^
         Once  
7700          Recurse          Recurse
         Ket  
7701          [(\]a]          [(\]a]
7702          CBra 1          CBra 1
7703          Ket          Ket
# Line 7563  No match Line 7710  No match
7710  ------------------------------------------------------------------  ------------------------------------------------------------------
7711          Bra          Bra
7712          ^          ^
         Once  
7713          Recurse          Recurse
         Ket  
7714          CBra 1          CBra 1
7715          Ket          Ket
7716          Ket          Ket
# Line 7697  Options: extended Line 7842  Options: extended
7842  First char = 'x'  First char = 'x'
7843  Need char = 'z'  Need char = 'z'
7844    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7845  /(a|)*\d/  /(a|)*\d/
7846    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7847  No match  No match
# Line 8017  No match Line 8159  No match
8159          Alt          Alt
8160          c          c
8161          Ket          Ket
         Once  
8162          Recurse          Recurse
8163          Ket          Ket
         Ket  
8164          End          End
8165  ------------------------------------------------------------------  ------------------------------------------------------------------
8166      abc      abc
# Line 8031  No match Line 8171  No match
8171  ------------------------------------------------------------------  ------------------------------------------------------------------
8172          Bra          Bra
8173          xy          xy
         Once  
8174          Recurse          Recurse
         Ket  
8175          CBra 1          CBra 1
8176          abc          abc
8177          Ket          Ket
# Line 8263  Failed: syntax error in subpattern name Line 8401  Failed: syntax error in subpattern name
8401   3: <unset>   3: <unset>
8402   4: x   4: x
8403    
 /[\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  
 ------------------------------------------------------------------  
   
8404  /\H++X/BZ  /\H++X/BZ
8405  ------------------------------------------------------------------  ------------------------------------------------------------------
8406          Bra          Bra
# Line 8514  No match Line 8592  No match
8592  ------------------------------------------------------------------  ------------------------------------------------------------------
8593    
8594  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8595  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8596   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8597    
8598  /[\E]AAA/  /[\E]AAA/
# Line 8696  Failed: number is too big at offset 19 Line 8774  Failed: number is too big at offset 19
8774  /\g6666666666/  /\g6666666666/
8775  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8776    
8777  /[\g6666666666]/  /[\g6666666666]/BZ
8778  Failed: number is too big at offset 12  ------------------------------------------------------------------
8779            Bra
8780            [6g]
8781            Ket
8782            End
8783    ------------------------------------------------------------------
8784    
8785  /(?1)\c[/  /(?1)\c[/
8786  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 9003  Failed: subpattern name expected at offs Line 9086  Failed: subpattern name expected at offs
9086  /\k{}/  /\k{}/
9087  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9088    
9089    /\k/
9090    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9091    
9092    /\kabc/
9093    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9094    
9095  /(?P=)/  /(?P=)/
9096  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9097    
# Line 9224  No options Line 9313  No options
9313  First char at start or follows newline  First char at start or follows newline
9314  No need char  No need char
9315    
 /a?|b?/P  
     abc  
  0: a  
     ** Failers  
  0:  
     ddd\N  
 No match: POSIX code 17: match failed  
   
9316  /xyz/C  /xyz/C
9317    xyz    xyz
9318  --->xyz  --->xyz
# Line 9626  Partial match: the cat Line 9707  Partial match: the cat
9707     abc\P\P     abc\P\P
9708   0: abc   0: abc
9709    
 /\w+A/P  
    CDAAAAB  
  0: CDAAAA  
   
 /\w+A/PU  
    CDAAAAB  
  0: CDA  
   
9710  /abc\K123/  /abc\K123/
9711      xyzabc123pqr      xyzabc123pqr
9712   0: 123   0: 123
# Line 9661  Partial match: +ab Line 9734  Partial match: +ab
9734  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9735  ------------------------------------------------------------------  ------------------------------------------------------------------
9736          Bra          Bra
         Once  
9737          Recurse          Recurse
         Ket  
         Once  
9738          Recurse          Recurse
         Ket  
9739          Cond          Cond
9740          Cond def          Cond def
9741          CBra 1          CBra 1
# Line 9687  Partial match: +ab Line 9756  Partial match: +ab
9756  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9757  ------------------------------------------------------------------  ------------------------------------------------------------------
9758          Bra          Bra
         Once  
9759          Recurse          Recurse
         Ket  
         Once  
9760          Recurse          Recurse
         Ket  
9761          Cond          Cond
9762          Cond def          Cond def
9763          CBra 1          CBra 1
# Line 10034  Need char = ':' Line 10099  Need char = ':'
10099  Subject length lower bound = 22  Subject length lower bound = 22
10100  No set of starting bytes  No set of starting bytes
10101    
 /  (?: [\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  
   
10102  /<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
10103  Capturing subpattern count = 11  Capturing subpattern count = 11
10104  Options: caseless dotall  Options: caseless dotall
# Line 10433  No match Line 10294  No match
10294          Cond nrecurse 1          Cond nrecurse 1
10295          $          $
10296          Alt          Alt
         Once  
10297          Recurse          Recurse
10298          Ket          Ket
10299          Ket          Ket
10300          Ket          Ket
         Ket  
10301          End          End
10302  ------------------------------------------------------------------  ------------------------------------------------------------------
10303  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 10656  No match Line 10515  No match
10515  ------------------------------------------------------------------  ------------------------------------------------------------------
10516          Bra          Bra
10517          ^          ^
10518          Once          Braposzero
10519          Brazero          SBraPos
         Once  
10520          Recurse          Recurse
10521          KetRmax          KetRpos
         Ket  
10522          Cond          Cond
10523          Cond def          Cond def
10524          CBra 1          CBra 1
# Line 10750  No match Line 10607  No match
10607      AC      AC
10608  No match  No match
10609    
 /--- A whole lot of tests of verbs with arguments are here rather than in test  
      11 because Perl doesn't seem to follow its specification entirely  
      correctly. ---/  
   
 /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is  
      not clear how Perl defines "involved in the failure of the match". ---/  
   
 /^(A(*THEN:A)B|C(*THEN:B)D)/K  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match  
     CB  
 No match, mark = B  
   
 /--- Check the use of names for success and failure. PCRE doesn't show these  
 names for success, though Perl does, contrary to its spec. ---/  
   
 /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match, mark = A  
     CB  
 No match, mark = B  
   
 /--- An empty name does not pass back an empty string. It is the same as if no  
 name were given. ---/  
   
 /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
   
 /--- PRUNE goes to next bumpalong; COMMIT does not. ---/  
   
 /A(*PRUNE:A)B/K  
     ACAB  
  0: AB  
   
 /(*MARK:A)(*PRUNE:B)(C|X)/K  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match, mark = B  
   
 /(*MARK:A)(*THEN:B)(C|X)/K  
     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  
   
10610  /--- This should fail; the SKIP advances by one, but when we get to AC, the  /--- This should fail; the SKIP advances by one, but when we get to AC, the
10611       PRUNE kills it. ---/       PRUNE kills it. Perl behaves differently. ---/
10612    
10613  /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK  /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
10614      AAAC      AAAC
10615  No match  No match, mark = A
   
 /A(*:A)A+(*SKIP)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- This should fail, as a null name is the same as no name ---/  
   
 /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- This fails in PCRE, and I think that is in accordance with Perl's  
      documentation, though in Perl it succeeds. ---/  
   
 /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK  
     AAAC  
 No match  
10616    
10617  /--- Mark names can be duplicated ---/  /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10618    though PCRE does. ---/
10619    
 /A(*:A)B|X(*:A)Y/K  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XY  
 MK: A  
   
10620  /^A(*:A)B|^X(*:A)Y/K  /^A(*:A)B|^X(*:A)Y/K
10621      ** Failers      ** Failers
10622  No match  No match
10623      XAQQ      XAQQ
10624  No match, mark = A  No match, mark = A
10625    
 /--- 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  
   
10626  /--- 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
10627  optimizations defeat this. So does the PCRE optimization unless we disable it  optimizations defeat this. So does the PCRE optimization unless we disable it
10628  with \Y. ---/  with \Y. ---/
# Line 10908  No match Line 10635  No match
10635      DEFGABC\Y      DEFGABC\Y
10636  No match  No match
10637    
10638  /--- Repeat some tests with added studying. ---/  /^(ab (c+(*THEN)cd) | xyz)/x
10639        abcccd
 /A(*COMMIT)B/+KS  
     ACABX  
 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  
10640  No match  No match
10641    
10642  /^(ab (c+(*PRUNE)cd) | xyz)/x  /^(ab (c+(*PRUNE)cd) | xyz)/x
# Line 11569  No match Line 11176  No match
11176    
11177  /^.*?(?(?=a)a|b(*THEN)c)/  /^.*?(?(?=a)a|b(*THEN)c)/
11178      ba      ba
11179   0: ba  No match
11180    
11181  /^.*?(?(?=a)a|bc)/  /^.*?(?(?=a)a|bc)/
11182      ba      ba
11183   0: ba   0: ba
11184    
11185    /^.*?(?(?=a)a(*THEN)b|c)/
11186        ac
11187    No match
11188    
11189    /^.*?(?(?=a)a(*THEN)b)c/
11190        ac
11191    No match
11192    
11193    /^.*?(a(*THEN)b)c/
11194        aabc
11195    No match
11196    
11197    /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11198        aabc
11199     0: aabc
11200    
11201    /^.*?(a(*THEN)b|z)c/
11202        aabc
11203     0: aabc
11204     1: ab
11205    
11206    /^.*?(z|a(*THEN)b)c/
11207        aabc
11208     0: aabc
11209     1: ab
11210    
11211    /-- --/
11212    
11213    /-- These studied versions are here because they are not Perl-compatible; the
11214        studying means the mark is not seen. --/
11215    
11216    /(*MARK:A)(*SKIP:B)(C|X)/KS
11217        C
11218     0: C
11219     1: C
11220    MK: A
11221        D
11222    No match, mark = A
11223    
11224    /(*:A)A+(*SKIP:A)(B|Z)/KS
11225        AAAC
11226    No match, mark = A
11227    
11228  /-- --/  /-- --/
11229    
11230    "(?=a*(*ACCEPT)b)c"
11231        c
11232     0: c
11233        c\N
11234     0: c
11235    
11236    /(?1)c(?(DEFINE)((*ACCEPT)b))/
11237        c
11238     0: c
11239        c\N
11240     0: c
11241    
11242    /(?>(*ACCEPT)b)c/
11243        c
11244     0:
11245        c\N
11246    No match
11247    
11248    /(?:(?>(a)))+a%/++
11249        %aa%
11250     0: aa%
11251     0+
11252     1: a
11253     1+ a%
11254    
11255    /(a)b|ac/++SS
11256        ac\O3
11257    Matched, but too many substrings
11258     0: ac
11259     0+
11260    
11261    /(a)(b)x|abc/++
11262         abc\O6
11263     0: abc
11264     0+
11265    
11266    /(a)bc|(a)(b)\2/
11267        \O3abc
11268    Matched, but too many substrings
11269     0: abc
11270        \O4abc
11271    Matched, but too many substrings
11272     0: abc
11273    
11274    /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11275    Capturing subpattern count = 2
11276    No options
11277    No first char
11278    No need char
11279    Subject length lower bound = 1
11280    No set of starting bytes
11281    
11282    /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11283    Capturing subpattern count = 2
11284    No options
11285    No first char
11286    No need char
11287    Subject length lower bound = 3
11288    Starting byte set: a b
11289    
11290    /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11291    Capturing subpattern count = 2
11292    No options
11293    No first char
11294    No need char
11295    Subject length lower bound = 4
11296    Starting byte set: a b
11297    
11298    /(abc)(?1)/SI
11299    Capturing subpattern count = 1
11300    No options
11301    First char = 'a'
11302    Need char = 'c'
11303    Subject length lower bound = 6
11304    No set of starting bytes
11305    
11306    /^(?>a)++/
11307        aa\M
11308    Minimum match() limit = 5
11309    Minimum match() recursion limit = 2
11310     0: aa
11311        aaaaaaaaa\M
11312    Minimum match() limit = 12
11313    Minimum match() recursion limit = 2
11314     0: aaaaaaaaa
11315    
11316    /(a)(?1)++/
11317        aa\M
11318    Minimum match() limit = 7
11319    Minimum match() recursion limit = 4
11320     0: aa
11321     1: a
11322        aaaaaaaaa\M
11323    Minimum match() limit = 21
11324    Minimum match() recursion limit = 4
11325     0: aaaaaaaaa
11326     1: a
11327    
11328    /(?:(foo)|(bar)|(baz))X/SS=
11329        bazfooX
11330     0: fooX
11331     1: foo
11332     2: <unset>
11333     3: <unset>
11334        foobazbarX
11335     0: barX
11336     1: <unset>
11337     2: bar
11338     3: <unset>
11339        barfooX
11340     0: fooX
11341     1: foo
11342     2: <unset>
11343     3: <unset>
11344        bazX
11345     0: bazX
11346     1: <unset>
11347     2: <unset>
11348     3: baz
11349        foobarbazX
11350     0: bazX
11351     1: <unset>
11352     2: <unset>
11353     3: baz
11354        bazfooX\O0
11355    Matched, but too many substrings
11356        bazfooX\O2
11357    Matched, but too many substrings
11358     0: fooX
11359        bazfooX\O4
11360    Matched, but too many substrings
11361     0: fooX
11362     1: <unset>
11363        bazfooX\O6
11364    Matched, but too many substrings
11365     0: fooX
11366     1: foo
11367     2: <unset>
11368        bazfooX\O8
11369    Matched, but too many substrings
11370     0: fooX
11371     1: foo
11372     2: <unset>
11373     3: <unset>
11374        bazfooX\O10
11375     0: fooX
11376     1: foo
11377     2: <unset>
11378     3: <unset>
11379    
11380    /(?=abc){3}abc/BZ
11381    ------------------------------------------------------------------
11382            Bra
11383            Assert
11384            abc
11385            Ket
11386            abc
11387            Ket
11388            End
11389    ------------------------------------------------------------------
11390    
11391    /(?=abc)+abc/BZ
11392    ------------------------------------------------------------------
11393            Bra
11394            Assert
11395            abc
11396            Ket
11397            abc
11398            Ket
11399            End
11400    ------------------------------------------------------------------
11401    
11402    /(?=abc)++abc/BZ
11403    ------------------------------------------------------------------
11404            Bra
11405            Assert
11406            abc
11407            Ket
11408            abc
11409            Ket
11410            End
11411    ------------------------------------------------------------------
11412    
11413    /(?=abc){0}xyz/BZ
11414    ------------------------------------------------------------------
11415            Bra
11416            Skip zero
11417            Assert
11418            abc
11419            Ket
11420            xyz
11421            Ket
11422            End
11423    ------------------------------------------------------------------
11424    
11425    /(?=(a))?./BZ
11426    ------------------------------------------------------------------
11427            Bra
11428            Brazero
11429            Assert
11430            CBra 1
11431            a
11432            Ket
11433            Ket
11434            Any
11435            Ket
11436            End
11437    ------------------------------------------------------------------
11438    
11439    /(?=(a))??./BZ
11440    ------------------------------------------------------------------
11441            Bra
11442            Braminzero
11443            Assert
11444            CBra 1
11445            a
11446            Ket
11447            Ket
11448            Any
11449            Ket
11450            End
11451    ------------------------------------------------------------------
11452    
11453    /^(?=(a)){0}b(?1)/BZ
11454    ------------------------------------------------------------------
11455            Bra
11456            ^
11457            Skip zero
11458            Assert
11459            CBra 1
11460            a
11461            Ket
11462            Ket
11463            b
11464            Recurse
11465            Ket
11466            End
11467    ------------------------------------------------------------------
11468    
11469    /(?(DEFINE)(a))?b(?1)/BZ
11470    ------------------------------------------------------------------
11471            Bra
11472            Cond
11473            Cond def
11474            CBra 1
11475            a
11476            Ket
11477            Ket
11478            b
11479            Recurse
11480            Ket
11481            End
11482    ------------------------------------------------------------------
11483    
11484    /^(?=(?1))?[az]([abc])d/BZ
11485    ------------------------------------------------------------------
11486            Bra
11487            ^
11488            Brazero
11489            Assert
11490            Recurse
11491            Ket
11492            [az]
11493            CBra 1
11494            [a-c]
11495            Ket
11496            d
11497            Ket
11498            End
11499    ------------------------------------------------------------------
11500    
11501    /^(?!a){0}\w+/BZ
11502    ------------------------------------------------------------------
11503            Bra
11504            ^
11505            Skip zero
11506            Assert not
11507            a
11508            Ket
11509            \w+
11510            Ket
11511            End
11512    ------------------------------------------------------------------
11513    
11514    /(?<=(abc))?xyz/BZ
11515    ------------------------------------------------------------------
11516            Bra
11517            Brazero
11518            AssertB
11519            Reverse
11520            CBra 1
11521            abc
11522            Ket
11523            Ket
11524            xyz
11525            Ket
11526            End
11527    ------------------------------------------------------------------
11528    
11529    /[:a[:abc]b:]/BZ
11530    ------------------------------------------------------------------
11531            Bra
11532            [:[a-c]
11533            b:]
11534            Ket
11535            End
11536    ------------------------------------------------------------------
11537    
11538    /((?2))((?1))/SS
11539        abc
11540    Error -26 (nested recursion at the same subject position)
11541    
11542    /((?(R2)a+|(?1)b))/SS
11543        aaaabcde
11544    Error -26 (nested recursion at the same subject position)
11545    
11546    /(?(R)a*(?1)|((?R))b)/SS
11547        aaaabcde
11548    Error -26 (nested recursion at the same subject position)
11549    
11550    /(a+|(?R)b)/
11551    Failed: recursive call could loop indefinitely at offset 7
11552    
11553    /^(a(*:A)(d|e(*:B))z|aeq)/C
11554        adz
11555    --->adz
11556     +0 ^       ^
11557     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11558     +2 ^       a
11559     +3 ^^      (*:A)
11560     +8 ^^      (d|e(*:B))
11561    Latest Mark: A
11562     +9 ^^      d
11563    +10 ^ ^     |
11564    +18 ^ ^     z
11565    +19 ^  ^    |
11566    +24 ^  ^
11567     0: adz
11568     1: adz
11569     2: d
11570        aez
11571    --->aez
11572     +0 ^       ^
11573     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11574     +2 ^       a
11575     +3 ^^      (*:A)
11576     +8 ^^      (d|e(*:B))
11577    Latest Mark: A
11578     +9 ^^      d
11579    +11 ^^      e
11580    +12 ^ ^     (*:B)
11581    +17 ^ ^     )
11582    Latest Mark: B
11583    +18 ^ ^     z
11584    +19 ^  ^    |
11585    +24 ^  ^
11586     0: aez
11587     1: aez
11588     2: e
11589        aeqwerty
11590    --->aeqwerty
11591     +0 ^            ^
11592     +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11593     +2 ^            a
11594     +3 ^^           (*:A)
11595     +8 ^^           (d|e(*:B))
11596    Latest Mark: A
11597     +9 ^^           d
11598    +11 ^^           e
11599    +12 ^ ^          (*:B)
11600    +17 ^ ^          )
11601    Latest Mark: B
11602    +18 ^ ^          z
11603    +20 ^            a
11604    +21 ^^           e
11605    +22 ^ ^          q
11606    +23 ^  ^         )
11607    +24 ^  ^
11608     0: aeq
11609     1: aeq
11610    
11611    /.(*F)/
11612        \P\Pabc
11613    No match
11614    
11615    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11616    Capturing subpattern count = 0
11617    No options
11618    First char = 't'
11619    Need char = 't'
11620    Max lookbehind = 1
11621    Subject length lower bound = 18
11622    No set of starting bytes
11623    
11624    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11625    Capturing subpattern count = 0
11626    No options
11627    No first char
11628    No need char
11629    Max lookbehind = 1
11630    Subject length lower bound = 8
11631    Starting byte set: < o t u
11632    
11633    /a(*SKIP)c|b(*ACCEPT)|/+SI
11634    Capturing subpattern count = 0
11635    No options
11636    No first char
11637    No need char
11638    Study returned NULL
11639        a
11640     0:
11641     0+
11642    
11643    /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11644    Capturing subpattern count = 0
11645    No options
11646    No first char
11647    No need char
11648    Subject length lower bound = -1
11649    Starting byte set: a b x
11650        ax
11651     0: x
11652    
11653    'a*(*ACCEPT)b'+
11654        \N\N
11655    No match
11656        abc\N\N
11657     0: a
11658     0+ bc
11659        bbb\N\N
11660     0:
11661     0+ bb
11662    
11663    /(*ACCEPT)a/+I
11664    Capturing subpattern count = 0
11665    No options
11666    No first char
11667    No need char
11668        bax
11669     0:
11670     0+ bax
11671    
11672    /z(*ACCEPT)a/+I
11673    Capturing subpattern count = 0
11674    No options
11675    First char = 'z'
11676    No need char
11677        baxzbx
11678     0: z
11679     0+ bx
11680    
11681    /a(?:.)*?a/ims
11682        \Mabbbbbbbbbbbbbbbbbbbbba
11683    Minimum match() limit = 65
11684    Minimum match() recursion limit = 2
11685     0: abbbbbbbbbbbbbbbbbbbbba
11686    
11687    /a(?:.(*THEN))*?a/ims
11688        \Mabbbbbbbbbbbbbbbbbbbbba
11689    Minimum match() limit = 86
11690    Minimum match() recursion limit = 45
11691     0: abbbbbbbbbbbbbbbbbbbbba
11692    
11693    /a(?:.(*THEN:ABC))*?a/ims
11694        \Mabbbbbbbbbbbbbbbbbbbbba
11695    Minimum match() limit = 86
11696    Minimum match() recursion limit = 45
11697     0: abbbbbbbbbbbbbbbbbbbbba
11698    
11699    /-- These tests are in agreement with development Perl 5.015, which has fixed
11700        some things, but they don't all work with 5.012, so they aren't in the
11701        Perl-compatible tests. Those after the first come from Perl's own test
11702        files. --/
11703    
11704    /^((yes|no)(*THEN)(*F))?/
11705      yes
11706    No match
11707    
11708    /(A (.*)   C? (*THEN)  | A D) (*FAIL)/x
11709    AbcdCBefgBhiBqz
11710    No match
11711    
11712    /(A (.*)   C? (*THEN)  | A D) z/x
11713    AbcdCBefgBhiBqz
11714    No match
11715    
11716    /(A (.*)   C? (*THEN)  | A D) \s* (*FAIL)/x
11717    AbcdCBefgBhiBqz
11718    No match
11719    
11720    /(A (.*)   C? (*THEN)  | A D) \s* z/x
11721    AbcdCBefgBhiBqz
11722    No match
11723    
11724    /(A (.*)   (?:C|) (*THEN)  | A D) (*FAIL)/x
11725    AbcdCBefgBhiBqz
11726    No match
11727    
11728    /(A (.*)   (?:C|) (*THEN)  | A D) z/x
11729    AbcdCBefgBhiBqz
11730    No match
11731    
11732    /(A (.*)   C{0,6} (*THEN)  | A D) (*FAIL)/x
11733    AbcdCBefgBhiBqz
11734    No match
11735    
11736    /(A (.*)   C{0,6} (*THEN)  | A D) z/x
11737    AbcdCBefgBhiBqz
11738    No match
11739    
11740    /(A (.*)   (CE){0,6} (*THEN)  | A D) (*FAIL)/x
11741    AbcdCEBefgBhiBqz
11742    No match
11743    
11744    /(A (.*)   (CE){0,6} (*THEN)  | A D) z/x
11745    AbcdCEBefgBhiBqz
11746    No match
11747    
11748    /(A (.*)   (CE*){0,6} (*THEN)  | A D) (*FAIL)/x
11749    AbcdCBefgBhiBqz
11750    No match
11751    
11752    /(A (.*)   (CE*){0,6} (*THEN)  | A D) z/x
11753    AbcdCBefgBhiBqz
11754    No match
11755    
11756    /-----------------------------------------------/
11757    
11758    /^(?>a+)(?>(z+))\w/BZ
11759    ------------------------------------------------------------------
11760            Bra
11761            ^
11762            Once_NC
11763            a+
11764            Ket
11765            Once
11766            CBra 1
11767            z+
11768            Ket
11769            Ket
11770            \w
11771            Ket
11772            End
11773    ------------------------------------------------------------------
11774        aaaazzzzb
11775     0: aaaazzzzb
11776     1: zzzz
11777        ** Failers
11778    No match
11779        aazz
11780    No match
11781    
11782    /(.)(\1|a(?2))/
11783        bab
11784     0: bab
11785     1: b
11786     2: ab
11787    
11788    /\1|(.)(?R)\1/
11789        cbbbc
11790     0: cbbbc
11791     1: c
11792    
11793    /(.)((?(1)c|a)|a(?2))/
11794        baa
11795    No match
11796    
11797    /(?P<abn>(?P=abn)xxx)/BZ
11798    ------------------------------------------------------------------
11799            Bra
11800            Once
11801            CBra 1
11802            \1
11803            xxx
11804            Ket
11805            Ket
11806            Ket
11807            End
11808    ------------------------------------------------------------------
11809    
11810    /(a\1z)/BZ
11811    ------------------------------------------------------------------
11812            Bra
11813            Once
11814            CBra 1
11815            a
11816            \1
11817            z
11818            Ket
11819            Ket
11820            Ket
11821            End
11822    ------------------------------------------------------------------
11823    
11824    /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11825         \Maabbccddee
11826    Minimum match() limit = 12
11827    Minimum match() recursion limit = 3
11828     0: aabbccddee
11829    
11830    /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11831         \Maabbccddee
11832    Minimum match() limit = 22
11833    Minimum match() recursion limit = 21
11834     0: aabbccddee
11835     1: aa
11836     2: bb
11837     3: cc
11838     4: dd
11839     5: ee
11840    
11841    /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11842         \Maabbccddee
11843    Minimum match() limit = 18
11844    Minimum match() recursion limit = 13
11845     0: aabbccddee
11846     1: aa
11847     2: cc
11848     3: ee
11849    
11850    /^a\x41z/<JS>
11851        aAz
11852     0: aAz
11853        *** Failers
11854    No match
11855        ax41z
11856    No match
11857    
11858    /^a[m\x41]z/<JS>
11859        aAz
11860     0: aAz
11861    
11862    /^a\x1z/<JS>
11863        ax1z
11864     0: ax1z
11865    
11866    /^a\u0041z/<JS>
11867        aAz
11868     0: aAz
11869        *** Failers
11870    No match
11871        au0041z
11872    No match
11873    
11874    /^a[m\u0041]z/<JS>
11875        aAz
11876     0: aAz
11877    
11878    /^a\u041z/<JS>
11879        au041z
11880     0: au041z
11881        *** Failers
11882    No match
11883        aAz
11884    No match
11885    
11886    /^a\U0041z/<JS>
11887        aU0041z
11888     0: aU0041z
11889        *** Failers
11890    No match
11891        aAz
11892    No match
11893    
11894    /(?(?=c)c|d)++Y/BZ
11895    ------------------------------------------------------------------
11896            Bra
11897            BraPos
11898            Cond
11899            Assert
11900            c
11901            Ket
11902            c
11903            Alt
11904            d
11905            Ket
11906            KetRpos
11907            Y
11908            Ket
11909            End
11910    ------------------------------------------------------------------
11911    
11912    /(?(?=c)c|d)*+Y/BZ
11913    ------------------------------------------------------------------
11914            Bra
11915            Braposzero
11916            BraPos
11917            Cond
11918            Assert
11919            c
11920            Ket
11921            c
11922            Alt
11923            d
11924            Ket
11925            KetRpos
11926            Y
11927            Ket
11928            End
11929    ------------------------------------------------------------------
11930    
11931    /a[\NB]c/
11932    Failed: \N is not supported in a class at offset 3
11933    
11934    /a[B-\Nc]/
11935    Failed: \N is not supported in a class at offset 5
11936    
11937    /(a)(?2){0,1999}?(b)/
11938    
11939    /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
11940    
11941    /--- This test, with something more complicated than individual letters, causes
11942    different behaviour in Perl. Perhaps it disables some optimization; no tag is
11943    passed back for the failures, whereas in PCRE there is a tag. ---/
11944    
11945    /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
11946        AABC
11947     0: AB
11948     1: A
11949     2: B
11950    MK: A
11951        XXYZ
11952     0: XXY
11953     1: <unset>
11954     2: <unset>
11955     3: X
11956     4: X
11957     5: Y
11958    MK: B
11959        ** Failers
11960    No match
11961        XAQQ
11962    No match, mark = A
11963        XAQQXZZ
11964    No match, mark = A
11965        AXQQQ
11966    No match, mark = A
11967        AXXQQQ
11968    No match, mark = B
11969    
11970    /-- Perl doesn't give marks for these, though it does if the alternatives are
11971    replaced by single letters. --/
11972    
11973    /(b|q)(*:m)f|a(*:n)w/K
11974        aw
11975     0: aw
11976    MK: n
11977        ** Failers
11978    No match, mark = n
11979        abc
11980    No match, mark = m
11981    
11982    /(q|b)(*:m)f|a(*:n)w/K
11983        aw
11984     0: aw
11985    MK: n
11986        ** Failers
11987    No match, mark = n
11988        abc
11989    No match, mark = m
11990    
11991    /-- After a partial match, the behaviour is as for a failure. --/
11992    
11993    /^a(*:X)bcde/K
11994       abc\P
11995    Partial match, mark=X: abc
11996    
11997    /-- These are here because Perl doesn't return a mark, except for the first --/
11998    
11999    /(?=(*:x))(q|)/K+
12000        abc
12001     0:
12002     0+ abc
12003     1:
12004    MK: x
12005    
12006    /(?=(*:x))((*:y)q|)/K+
12007        abc
12008     0:
12009     0+ abc
12010     1:
12011    MK: x
12012    
12013    /(?=(*:x))(?:(*:y)q|)/K+
12014        abc
12015     0:
12016     0+ abc
12017    MK: x
12018    
12019    /(?=(*:x))(?>(*:y)q|)/K+
12020        abc
12021     0:
12022     0+ abc
12023    MK: x
12024    
12025    /(?=a(*:x))(?!a(*:y)c)/K+
12026        ab
12027     0:
12028     0+ ab
12029    MK: x
12030    
12031    /(?=a(*:x))(?=a(*:y)c|)/K+
12032        ab
12033     0:
12034     0+ ab
12035    MK: x
12036    
12037    /(..)\1/
12038        ab\P
12039    Partial match: ab
12040        aba\P
12041    Partial match: aba
12042        abab\P
12043     0: abab
12044     1: ab
12045    
12046    /(..)\1/i
12047        ab\P
12048    Partial match: ab
12049        abA\P
12050    Partial match: abA
12051        aBAb\P
12052     0: aBAb
12053     1: aB
12054    
12055    /(..)\1{2,}/
12056        ab\P
12057    Partial match: ab
12058        aba\P
12059    Partial match: aba
12060        abab\P
12061    Partial match: abab
12062        ababa\P
12063    Partial match: ababa
12064        ababab\P
12065     0: ababab
12066     1: ab
12067        ababab\P\P
12068    Partial match: ababab
12069        abababa\P
12070     0: ababab
12071     1: ab
12072        abababa\P\P
12073    Partial match: abababa
12074    
12075    /(..)\1{2,}/i
12076        ab\P
12077    Partial match: ab
12078        aBa\P
12079    Partial match: aBa
12080        aBAb\P
12081    Partial match: aBAb
12082        AbaBA\P
12083    Partial match: AbaBA
12084        abABAb\P
12085     0: abABAb
12086     1: ab
12087        aBAbaB\P\P
12088    Partial match: aBAbaB
12089        abABabA\P
12090     0: abABab
12091     1: ab
12092        abaBABa\P\P
12093    Partial match: abaBABa
12094    
12095    /(..)\1{2,}?x/i
12096        ab\P
12097    Partial match: ab
12098        abA\P
12099    Partial match: abA
12100        aBAb\P
12101    Partial match: aBAb
12102        abaBA\P
12103    Partial match: abaBA
12104        abAbaB\P
12105    Partial match: abAbaB
12106        abaBabA\P
12107    Partial match: abaBabA
12108        abAbABaBx\P
12109     0: abAbABaBx
12110     1: ab
12111    
12112    /^(..)\1/
12113        aba\P
12114    Partial match: aba
12115    
12116    /^(..)\1{2,3}x/
12117        aba\P
12118    Partial match: aba
12119        ababa\P
12120    Partial match: ababa
12121        ababa\P\P
12122    Partial match: ababa
12123        abababx
12124     0: abababx
12125     1: ab
12126        ababababx
12127     0: ababababx
12128     1: ab
12129    
12130    /^(..)\1{2,3}?x/
12131        aba\P
12132    Partial match: aba
12133        ababa\P
12134    Partial match: ababa
12135        ababa\P\P
12136    Partial match: ababa
12137        abababx
12138     0: abababx
12139     1: ab
12140        ababababx
12141     0: ababababx
12142     1: ab
12143    
12144    /^(..)(\1{2,3})ab/
12145        abababab
12146     0: abababab
12147     1: ab
12148     2: abab
12149    
12150    /^\R/
12151        \r\P
12152     0: \x0d
12153        \r\P\P
12154    Partial match: \x0d
12155    
12156    /^\R{2,3}x/
12157        \r\P
12158    Partial match: \x0d
12159        \r\P\P
12160    Partial match: \x0d
12161        \r\r\P
12162    Partial match: \x0d\x0d
12163        \r\r\P\P
12164    Partial match: \x0d\x0d
12165        \r\r\r\P
12166    Partial match: \x0d\x0d\x0d
12167        \r\r\r\P\P
12168    Partial match: \x0d\x0d\x0d
12169        \r\rx
12170     0: \x0d\x0dx
12171        \r\r\rx
12172     0: \x0d\x0d\x0dx
12173    
12174    /^\R{2,3}?x/
12175        \r\P
12176    Partial match: \x0d
12177        \r\P\P
12178    Partial match: \x0d
12179        \r\r\P
12180    Partial match: \x0d\x0d
12181        \r\r\P\P
12182    Partial match: \x0d\x0d
12183        \r\r\r\P
12184    Partial match: \x0d\x0d\x0d
12185        \r\r\r\P\P
12186    Partial match: \x0d\x0d\x0d
12187        \r\rx
12188     0: \x0d\x0dx
12189        \r\r\rx
12190     0: \x0d\x0d\x0dx
12191    
12192    /^\R?x/
12193        \r\P
12194    Partial match: \x0d
12195        \r\P\P
12196    Partial match: \x0d
12197        x
12198     0: x
12199        \rx
12200     0: \x0dx
12201    
12202    /^\R+x/
12203        \r\P
12204    Partial match: \x0d
12205        \r\P\P
12206    Partial match: \x0d
12207        \r\n\P
12208    Partial match: \x0d\x0a
12209        \r\n\P\P
12210    Partial match: \x0d\x0a
12211        \rx
12212     0: \x0dx
12213    
12214    /^a$/<CRLF>
12215        a\r\P
12216    Partial match: a\x0d
12217        a\r\P\P
12218    Partial match: a\x0d
12219    
12220    /^a$/m<CRLF>
12221        a\r\P
12222    Partial match: a\x0d
12223        a\r\P\P
12224    Partial match: a\x0d
12225    
12226    /^(a$|a\r)/<CRLF>
12227        a\r\P
12228     0: a\x0d
12229     1: a\x0d
12230        a\r\P\P
12231    Partial match: a\x0d
12232    
12233    /^(a$|a\r)/m<CRLF>
12234        a\r\P
12235     0: a\x0d
12236     1: a\x0d
12237        a\r\P\P
12238    Partial match: a\x0d
12239    
12240    /./<CRLF>
12241        \r\P
12242     0: \x0d
12243        \r\P\P
12244    Partial match: \x0d
12245    
12246    /.{2,3}/<CRLF>
12247        \r\P
12248    Partial match: \x0d
12249        \r\P\P
12250    Partial match: \x0d
12251        \r\r\P
12252     0: \x0d\x0d
12253        \r\r\P\P
12254    Partial match: \x0d\x0d
12255        \r\r\r\P
12256     0: \x0d\x0d\x0d
12257        \r\r\r\P\P
12258    Partial match: \x0d\x0d\x0d
12259    
12260    /.{2,3}?/<CRLF>
12261        \r\P
12262    Partial match: \x0d
12263        \r\P\P
12264    Partial match: \x0d
12265        \r\r\P
12266     0: \x0d\x0d
12267        \r\r\P\P
12268    Partial match: \x0d\x0d
12269        \r\r\r\P
12270     0: \x0d\x0d
12271        \r\r\r\P\P
12272     0: \x0d\x0d
12273    
12274    /-- This one is here because Perl does not match: it seems to allow the COMMIT
12275    to escape from the assertion. --/
12276    
12277    /(?=a(*COMMIT)b|ac)ac|ac/
12278        ac
12279     0: ac
12280    
12281  /-- End of testinput2 --/  /-- End of testinput2 --/

Legend:
Removed from v.609  
changed lines
  Added in v.937

  ViewVC Help
Powered by ViewVC 1.1.5