/[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 598 by ph10, Sat May 7 15:37:31 2011 UTC revision 994 by ph10, Tue Jul 10 14:29:26 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 632  Need char = 'h' (caseless) Line 577  Need char = 'h' (caseless)
577  ------------------------------------------------------------------  ------------------------------------------------------------------
578          Bra          Bra
579          CBra 1          CBra 1
580       01 Opt       /i b
      NC b  
581          Ket          Ket
      00 Opt  
582          Ket          Ket
583          End          End
584  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 716  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 724  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 741  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 758  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 799  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 815  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  No first char
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 834  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 862  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 1033  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 1151  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 1247  No need char Line 1196  No need char
1196  ------------------------------------------------------------------  ------------------------------------------------------------------
1197          Bra          Bra
1198          Bra          Bra
      04 Opt  
1199          AllAny*          AllAny*
1200          X          X
1201          Alt          Alt
      04 Opt  
1202          ^          ^
1203          B          B
1204          Ket          Ket
      00 Opt  
1205          Ket          Ket
1206          End          End
1207  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1269  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 1294  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 1303  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 1318  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 1329  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 1407  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 1509  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 1694  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 2764  No need char Line 2684  No need char
2684  ------------------------------------------------------------------  ------------------------------------------------------------------
2685          Bra          Bra
2686          a          a
2687       01 Opt       /i b
      NC b  
2688          Ket          Ket
2689          End          End
2690  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2787  No match Line 2706  No match
2706          Bra          Bra
2707          CBra 1          CBra 1
2708          a          a
2709       01 Opt       /i b
      NC b  
2710          Ket          Ket
      00 Opt  
2711          Ket          Ket
2712          End          End
2713  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2812  No match Line 2729  No match
2729  /   (?i)abc/IxDZ  /   (?i)abc/IxDZ
2730  ------------------------------------------------------------------  ------------------------------------------------------------------
2731          Bra          Bra
2732       NC abc       /i abc
2733          Ket          Ket
2734          End          End
2735  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2825  Need char = 'c' (caseless) Line 2742  Need char = 'c' (caseless)
2742    (?i)abc/IxDZ    (?i)abc/IxDZ
2743  ------------------------------------------------------------------  ------------------------------------------------------------------
2744          Bra          Bra
2745       NC abc       /i abc
2746          Ket          Ket
2747          End          End
2748  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2998  No need char Line 2915  No need char
2915  /(x)*+/DZ  /(x)*+/DZ
2916  ------------------------------------------------------------------  ------------------------------------------------------------------
2917          Bra          Bra
2918          Once          Braposzero
2919          Brazero          CBraPos 1
         CBra 1  
2920          x          x
2921          KetRmax          KetRpos
         Ket  
2922          Ket          Ket
2923          End          End
2924  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3321  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 3334  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 3590  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 3829  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 3994  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 4217  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 4591  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 4613  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 4636  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 4647  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 4788  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 4871  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 4925  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 5025  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 5315  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 5323  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 5477  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 5493  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 5509  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
5619    First char = 'a'
5620    Need char = 'c'
5621    Subject length lower bound = 3
5622    No set of starting bytes
5623    Compiled pattern written to testsavedregex
5624    Study data written to testsavedregex
5625    <testsavedregex
5626    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  No options
5654  No first char  No first char
5655  No need char  No need char
5656  Subject length lower bound = 1  Subject length lower bound = 1
5657  Starting byte set: a b  Starting byte set: a b
5658  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5659  Study data written to testsavedregex  Study data written to testsavedregex
5660  <testsavedregex  <testsavedregex
5661  Compiled regex loaded from testsavedregex  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 5530  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 5537  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 5551  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 5606  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 5916  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 6040  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 6072  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 6240  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 6674  No match Line 6817  No match
6817  ------------------------------------------------------------------  ------------------------------------------------------------------
6818          Bra          Bra
6819          ^          ^
6820          a*       /i a*
6821       NC A       /i A
6822          \d          \d
6823          Ket          Ket
6824          End          End
# Line 7303  Matched, but too many substrings Line 7446  Matched, but too many substrings
7446  /[^a]+a/BZi  /[^a]+a/BZi
7447  ------------------------------------------------------------------  ------------------------------------------------------------------
7448          Bra          Bra
7449          [^A]++       /i [^a]++
7450       NC a       /i a
7451          Ket          Ket
7452          End          End
7453  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7312  Matched, but too many substrings Line 7455  Matched, but too many substrings
7455  /[^a]+A/BZi  /[^a]+A/BZi
7456  ------------------------------------------------------------------  ------------------------------------------------------------------
7457          Bra          Bra
7458          [^A]++       /i [^a]++
7459       NC A       /i A
7460          Ket          Ket
7461          End          End
7462  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7508  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 7544  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 7558  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 7573  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 7707  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 8027  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 8041  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 8273  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 8524  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 8706  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 9013  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 9234  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 9636  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 9671  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 9697  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 10044  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 10259  No set of starting bytes Line 10110  No set of starting bytes
10110  "(?>.*/)foo"SI  "(?>.*/)foo"SI
10111  Capturing subpattern count = 0  Capturing subpattern count = 0
10112  No options  No options
10113  First char at start or follows newline  No first char
10114  Need char = 'o'  Need char = 'o'
10115  Subject length lower bound = 4  Subject length lower bound = 4
10116  No set of starting bytes  No set of starting bytes
# Line 10443  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 10586  Starting byte set: i Line 10435  Starting byte set: i
10435  /(?i)a(?-i)b|c/BZ  /(?i)a(?-i)b|c/BZ
10436  ------------------------------------------------------------------  ------------------------------------------------------------------
10437          Bra          Bra
10438       NC a       /i a
      00 Opt  
10439          b          b
10440          Alt          Alt
      00 Opt  
10441          c          c
10442          Ket          Ket
10443          End          End
# Line 10609  No match Line 10456  No match
10456  /(?i)a(?s)b|c/BZ  /(?i)a(?s)b|c/BZ
10457  ------------------------------------------------------------------  ------------------------------------------------------------------
10458          Bra          Bra
10459       NC a       /i ab
      05 Opt  
      NC b  
10460          Alt          Alt
10461       05 Opt       /i c
      NC c  
10462          Ket          Ket
10463          End          End
10464  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10622  No match Line 10466  No match
10466  /(?i)a(?s-i)b|c/BZ  /(?i)a(?s-i)b|c/BZ
10467  ------------------------------------------------------------------  ------------------------------------------------------------------
10468          Bra          Bra
10469       NC a       /i a
      04 Opt  
10470          b          b
10471          Alt          Alt
      04 Opt  
10472          c          c
10473          Ket          Ket
10474          End          End
# Line 10673  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 10767  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 10925  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
10640    No match
10641    
10642  /A(*COMMIT)B/+KS  /^(ab (c+(*PRUNE)cd) | xyz)/x
10643      ACABX      abcccd
 No match  
   
 /A(*THEN)B|A(*THEN)C/KS  
     AC  
  0: AC  
   
 /A(*PRUNE)B|A(*PRUNE)C/KS  
     AC  
 No match  
   
 /^(A(*THEN:A)B|C(*THEN:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match  
     CB  
 No match, mark = B  
   
 /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match, mark = A  
     CB  
 No match, mark = B  
   
 /^(A(*PRUNE:)B|C(*PRUNE:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
   
 /A(*PRUNE:A)B/KS  
     ACAB  
  0: AB  
   
 /(*MARK:A)(*PRUNE:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /(*MARK:A)(*THEN:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*:A)A+(*SKIP)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xKS  
     AAAC  
 No match  
   
 /A(*:A)B|XX(*:B)Y/KS  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XXY  
 MK: B  
     ** Failers  
 No match  
     XAQQ  
 No match  
     XAQQXZZ  
 No match  
     AXQQQ  
 No match  
     AXXQQQ  
 No match  
   
 /(*COMMIT)ABC/  
     ABCDEFG  
  0: ABC  
     ** Failers  
 No match  
     DEFGABC\Y  
 No match  
   
 /^(ab (c+(*THEN)cd) | xyz)/x  
     abcccd  
 No match  
   
 /^(ab (c+(*PRUNE)cd) | xyz)/x  
     abcccd  
10644  No match  No match
10645    
10646  /^(ab (c+(*FAIL)cd) | xyz)/x  /^(ab (c+(*FAIL)cd) | xyz)/x
# Line 11165  No match Line 10755  No match
10755  /\s*\R/BZ  /\s*\R/BZ
10756  ------------------------------------------------------------------  ------------------------------------------------------------------
10757          Bra          Bra
10758          \s*+          \s*
10759            \R
10760            Ket
10761            End
10762    ------------------------------------------------------------------
10763        \x20\x0a
10764     0:  \x0a
10765        \x20\x0d
10766     0:  \x0d
10767        \x20\x0d\x0a
10768     0:  \x0d\x0a
10769    
10770    /\S*\R/BZ
10771    ------------------------------------------------------------------
10772            Bra
10773            \S*+
10774            \R
10775            Ket
10776            End
10777    ------------------------------------------------------------------
10778        a\x0a
10779     0: a\x0a
10780    
10781    /X\h*\R/BZ
10782    ------------------------------------------------------------------
10783            Bra
10784            X
10785            \h*+
10786            \R
10787            Ket
10788            End
10789    ------------------------------------------------------------------
10790        X\x20\x0a
10791     0: X \x0a
10792    
10793    /X\H*\R/BZ
10794    ------------------------------------------------------------------
10795            Bra
10796            X
10797            \H*
10798            \R
10799            Ket
10800            End
10801    ------------------------------------------------------------------
10802        X\x0d\x0a
10803     0: X\x0d\x0a
10804    
10805    /X\H+\R/BZ
10806    ------------------------------------------------------------------
10807            Bra
10808            X
10809            \H+
10810            \R
10811            Ket
10812            End
10813    ------------------------------------------------------------------
10814        X\x0d\x0a
10815     0: X\x0d\x0a
10816    
10817    /X\H++\R/BZ
10818    ------------------------------------------------------------------
10819            Bra
10820            X
10821            \H++
10822          \R          \R
10823          Ket          Ket
10824          End          End
10825  ------------------------------------------------------------------  ------------------------------------------------------------------
10826        X\x0d\x0a
10827    No match
10828    
10829  /-- Perl treats this one differently, not failing the second string. I believe  /-- Perl treats this one differently, not failing the second string. I believe
10830      that is a bug in Perl. --/      that is a bug in Perl. --/
# Line 11305  Failed: reference to non-existent subpat Line 10960  Failed: reference to non-existent subpat
10960          End          End
10961  ------------------------------------------------------------------  ------------------------------------------------------------------
10962    
10963    /-- These tests are here because Perl gets the first one wrong. --/
10964    
10965    /(\R*)(.)/s
10966        \r\n
10967     0: \x0d
10968     1:
10969     2: \x0d
10970        \r\r\n\n\r
10971     0: \x0d\x0d\x0a\x0a\x0d
10972     1: \x0d\x0d\x0a\x0a
10973     2: \x0d
10974        \r\r\n\n\r\n
10975     0: \x0d\x0d\x0a\x0a\x0d
10976     1: \x0d\x0d\x0a\x0a
10977     2: \x0d
10978    
10979    /(\R)*(.)/s
10980        \r\n
10981     0: \x0d
10982     1: <unset>
10983     2: \x0d
10984        \r\r\n\n\r
10985     0: \x0d\x0d\x0a\x0a\x0d
10986     1: \x0a
10987     2: \x0d
10988        \r\r\n\n\r\n
10989     0: \x0d\x0d\x0a\x0a\x0d
10990     1: \x0a
10991     2: \x0d
10992    
10993    /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
10994        \r\n
10995     0: \x0d
10996     1:
10997     2: \x0d
10998        \r\r\n\n\r
10999     0: \x0d\x0d\x0a\x0a\x0d
11000     1: \x0d\x0d\x0a\x0a
11001     2: \x0d
11002        \r\r\n\n\r\n
11003     0: \x0d\x0d\x0a\x0a\x0d
11004     1: \x0d\x0d\x0a\x0a
11005     2: \x0d
11006    
11007    /-- --/
11008    
11009    /^abc$/BZ
11010    ------------------------------------------------------------------
11011            Bra
11012            ^
11013            abc
11014            $
11015            Ket
11016            End
11017    ------------------------------------------------------------------
11018    
11019    /^abc$/BZm
11020    ------------------------------------------------------------------
11021            Bra
11022         /m ^
11023            abc
11024         /m $
11025            Ket
11026            End
11027    ------------------------------------------------------------------
11028    
11029    /^(a)*+(\w)/S
11030        aaaaX
11031     0: aaaaX
11032     1: a
11033     2: X
11034        ** Failers
11035    No match
11036        aaaa
11037    No match
11038    
11039    /^(?:a)*+(\w)/S
11040        aaaaX
11041     0: aaaaX
11042     1: X
11043        ** Failers
11044    No match
11045        aaaa
11046    No match
11047    
11048    /(a)++1234/SDZ
11049    ------------------------------------------------------------------
11050            Bra
11051            CBraPos 1
11052            a
11053            KetRpos
11054            1234
11055            Ket
11056            End
11057    ------------------------------------------------------------------
11058    Capturing subpattern count = 1
11059    No options
11060    First char = 'a'
11061    Need char = '4'
11062    Subject length lower bound = 5
11063    No set of starting bytes
11064    
11065    /([abc])++1234/SI
11066    Capturing subpattern count = 1
11067    No options
11068    No first char
11069    Need char = '4'
11070    Subject length lower bound = 5
11071    Starting byte set: a b c
11072    
11073    /(?<=(abc)+)X/
11074    Failed: lookbehind assertion is not fixed length at offset 10
11075    
11076    /(^ab)/I
11077    Capturing subpattern count = 1
11078    Options: anchored
11079    No first char
11080    No need char
11081    
11082    /(^ab)++/I
11083    Capturing subpattern count = 1
11084    Options: anchored
11085    No first char
11086    No need char
11087    
11088    /(^ab|^)+/I
11089    Capturing subpattern count = 1
11090    Options: anchored
11091    No first char
11092    No need char
11093    
11094    /(^ab|^)++/I
11095    Capturing subpattern count = 1
11096    Options: anchored
11097    No first char
11098    No need char
11099    
11100    /(?:^ab)/I
11101    Capturing subpattern count = 0
11102    Options: anchored
11103    No first char
11104    No need char
11105    
11106    /(?:^ab)++/I
11107    Capturing subpattern count = 0
11108    Options: anchored
11109    No first char
11110    No need char
11111    
11112    /(?:^ab|^)+/I
11113    Capturing subpattern count = 0
11114    Options: anchored
11115    No first char
11116    No need char
11117    
11118    /(?:^ab|^)++/I
11119    Capturing subpattern count = 0
11120    Options: anchored
11121    No first char
11122    No need char
11123    
11124    /(.*ab)/I
11125    Capturing subpattern count = 1
11126    No options
11127    First char at start or follows newline
11128    Need char = 'b'
11129    
11130    /(.*ab)++/I
11131    Capturing subpattern count = 1
11132    No options
11133    First char at start or follows newline
11134    Need char = 'b'
11135    
11136    /(.*ab|.*)+/I
11137    Capturing subpattern count = 1
11138    No options
11139    First char at start or follows newline
11140    No need char
11141    
11142    /(.*ab|.*)++/I
11143    Capturing subpattern count = 1
11144    No options
11145    First char at start or follows newline
11146    No need char
11147    
11148    /(?:.*ab)/I
11149    Capturing subpattern count = 0
11150    No options
11151    First char at start or follows newline
11152    Need char = 'b'
11153    
11154    /(?:.*ab)++/I
11155    Capturing subpattern count = 0
11156    No options
11157    First char at start or follows newline
11158    Need char = 'b'
11159    
11160    /(?:.*ab|.*)+/I
11161    Capturing subpattern count = 0
11162    No options
11163    First char at start or follows newline
11164    No need char
11165    
11166    /(?:.*ab|.*)++/I
11167    Capturing subpattern count = 0
11168    No options
11169    First char at start or follows newline
11170    No need char
11171    
11172    /(?=a)[bcd]/I
11173    Capturing subpattern count = 0
11174    No options
11175    First char = 'a'
11176    No need char
11177    
11178    /((?=a))[bcd]/I
11179    Capturing subpattern count = 1
11180    No options
11181    First char = 'a'
11182    No need char
11183    
11184    /((?=a))+[bcd]/I
11185    Capturing subpattern count = 1
11186    No options
11187    First char = 'a'
11188    No need char
11189    
11190    /((?=a))++[bcd]/I
11191    Capturing subpattern count = 1
11192    No options
11193    First char = 'a'
11194    No need char
11195    
11196    /(?=a+)[bcd]/iI
11197    Capturing subpattern count = 0
11198    Options: caseless
11199    First char = 'a' (caseless)
11200    No need char
11201    
11202    /(?=a+?)[bcd]/iI
11203    Capturing subpattern count = 0
11204    Options: caseless
11205    First char = 'a' (caseless)
11206    No need char
11207    
11208    /(?=a++)[bcd]/iI
11209    Capturing subpattern count = 0
11210    Options: caseless
11211    First char = 'a' (caseless)
11212    No need char
11213    
11214    /(?=a{3})[bcd]/iI
11215    Capturing subpattern count = 0
11216    Options: caseless
11217    First char = 'a' (caseless)
11218    Need char = 'a' (caseless)
11219    
11220    /(abc)\1+/S
11221    
11222    /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11223    
11224    /(?1)(?:(b(*ACCEPT))){0}/
11225        b
11226     0: b
11227    
11228    /(?1)(?:(b(*ACCEPT))){0}c/
11229        bc
11230     0: bc
11231        ** Failers
11232    No match
11233        b
11234    No match
11235    
11236    /(?1)(?:((*ACCEPT))){0}c/
11237        c
11238     0: c
11239        c\N
11240     0: c
11241    
11242    /^.*?(?(?=a)a|b(*THEN)c)/
11243        ba
11244    No match
11245    
11246    /^.*?(?(?=a)a|bc)/
11247        ba
11248     0: ba
11249    
11250    /^.*?(?(?=a)a(*THEN)b|c)/
11251        ac
11252    No match
11253    
11254    /^.*?(?(?=a)a(*THEN)b)c/
11255        ac
11256    No match
11257    
11258    /^.*?(a(*THEN)b)c/
11259        aabc
11260    No match
11261    
11262    /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11263        aabc
11264     0: aabc
11265    
11266    /^.*?(a(*THEN)b|z)c/
11267        aabc
11268     0: aabc
11269     1: ab
11270    
11271    /^.*?(z|a(*THEN)b)c/
11272        aabc
11273     0: aabc
11274     1: ab
11275    
11276    /-- --/
11277    
11278    /-- These studied versions are here because they are not Perl-compatible; the
11279        studying means the mark is not seen. --/
11280    
11281    /(*MARK:A)(*SKIP:B)(C|X)/KS
11282        C
11283     0: C
11284     1: C
11285    MK: A
11286        D
11287    No match, mark = A
11288    
11289    /(*:A)A+(*SKIP:A)(B|Z)/KS
11290        AAAC
11291    No match, mark = A
11292    
11293    /-- --/
11294    
11295    "(?=a*(*ACCEPT)b)c"
11296        c
11297     0: c
11298        c\N
11299     0: c
11300    
11301    /(?1)c(?(DEFINE)((*ACCEPT)b))/
11302        c
11303     0: c
11304        c\N
11305     0: c
11306    
11307    /(?>(*ACCEPT)b)c/
11308        c
11309     0:
11310        c\N
11311    No match
11312    
11313    /(?:(?>(a)))+a%/++
11314        %aa%
11315     0: aa%
11316     0+
11317     1: a
11318     1+ a%
11319    
11320    /(a)b|ac/++SS
11321        ac\O3
11322    Matched, but too many substrings
11323     0: ac
11324     0+
11325    
11326    /(a)(b)x|abc/++
11327         abc\O6
11328     0: abc
11329     0+
11330    
11331    /(a)bc|(a)(b)\2/
11332        \O3abc
11333    Matched, but too many substrings
11334     0: abc
11335        \O4abc
11336    Matched, but too many substrings
11337     0: abc
11338    
11339    /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11340    Capturing subpattern count = 2
11341    No options
11342    No first char
11343    No need char
11344    Subject length lower bound = 1
11345    No set of starting bytes
11346    
11347    /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11348    Capturing subpattern count = 2
11349    No options
11350    No first char
11351    No need char
11352    Subject length lower bound = 3
11353    Starting byte set: a b
11354    
11355    /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11356    Capturing subpattern count = 2
11357    No options
11358    No first char
11359    No need char
11360    Subject length lower bound = 4
11361    Starting byte set: a b
11362    
11363    /(abc)(?1)/SI
11364    Capturing subpattern count = 1
11365    No options
11366    First char = 'a'
11367    Need char = 'c'
11368    Subject length lower bound = 6
11369    No set of starting bytes
11370    
11371    /^(?>a)++/
11372        aa\M
11373    Minimum match() limit = 5
11374    Minimum match() recursion limit = 2
11375     0: aa
11376        aaaaaaaaa\M
11377    Minimum match() limit = 12
11378    Minimum match() recursion limit = 2
11379     0: aaaaaaaaa
11380    
11381    /(a)(?1)++/
11382        aa\M
11383    Minimum match() limit = 7
11384    Minimum match() recursion limit = 4
11385     0: aa
11386     1: a
11387        aaaaaaaaa\M
11388    Minimum match() limit = 21
11389    Minimum match() recursion limit = 4
11390     0: aaaaaaaaa
11391     1: a
11392    
11393    /(?:(foo)|(bar)|(baz))X/SS=
11394        bazfooX
11395     0: fooX
11396     1: foo
11397     2: <unset>
11398     3: <unset>
11399        foobazbarX
11400     0: barX
11401     1: <unset>
11402     2: bar
11403     3: <unset>
11404        barfooX
11405     0: fooX
11406     1: foo
11407     2: <unset>
11408     3: <unset>
11409        bazX
11410     0: bazX
11411     1: <unset>
11412     2: <unset>
11413     3: baz
11414        foobarbazX
11415     0: bazX
11416     1: <unset>
11417     2: <unset>
11418     3: baz
11419        bazfooX\O0
11420    Matched, but too many substrings
11421        bazfooX\O2
11422    Matched, but too many substrings
11423     0: fooX
11424        bazfooX\O4
11425    Matched, but too many substrings
11426     0: fooX
11427     1: <unset>
11428        bazfooX\O6
11429    Matched, but too many substrings
11430     0: fooX
11431     1: foo
11432     2: <unset>
11433        bazfooX\O8
11434    Matched, but too many substrings
11435     0: fooX
11436     1: foo
11437     2: <unset>
11438     3: <unset>
11439        bazfooX\O10
11440     0: fooX
11441     1: foo
11442     2: <unset>
11443     3: <unset>
11444    
11445    /(?=abc){3}abc/BZ
11446    ------------------------------------------------------------------
11447            Bra
11448            Assert
11449            abc
11450            Ket
11451            abc
11452            Ket
11453            End
11454    ------------------------------------------------------------------
11455    
11456    /(?=abc)+abc/BZ
11457    ------------------------------------------------------------------
11458            Bra
11459            Assert
11460            abc
11461            Ket
11462            abc
11463            Ket
11464            End
11465    ------------------------------------------------------------------
11466    
11467    /(?=abc)++abc/BZ
11468    ------------------------------------------------------------------
11469            Bra
11470            Assert
11471            abc
11472            Ket
11473            abc
11474            Ket
11475            End
11476    ------------------------------------------------------------------
11477    
11478    /(?=abc){0}xyz/BZ
11479    ------------------------------------------------------------------
11480            Bra
11481            Skip zero
11482            Assert
11483            abc
11484            Ket
11485            xyz
11486            Ket
11487            End
11488    ------------------------------------------------------------------
11489    
11490    /(?=(a))?./BZ
11491    ------------------------------------------------------------------
11492            Bra
11493            Brazero
11494            Assert
11495            CBra 1
11496            a
11497            Ket
11498            Ket
11499            Any
11500            Ket
11501            End
11502    ------------------------------------------------------------------
11503    
11504    /(?=(a))??./BZ
11505    ------------------------------------------------------------------
11506            Bra
11507            Braminzero
11508            Assert
11509            CBra 1
11510            a
11511            Ket
11512            Ket
11513            Any
11514            Ket
11515            End
11516    ------------------------------------------------------------------
11517    
11518    /^(?=(a)){0}b(?1)/BZ
11519    ------------------------------------------------------------------
11520            Bra
11521            ^
11522            Skip zero
11523            Assert
11524            CBra 1
11525            a
11526            Ket
11527            Ket
11528            b
11529            Recurse
11530            Ket
11531            End
11532    ------------------------------------------------------------------
11533    
11534    /(?(DEFINE)(a))?b(?1)/BZ
11535    ------------------------------------------------------------------
11536            Bra
11537            Cond
11538            Cond def
11539            CBra 1
11540            a
11541            Ket
11542            Ket
11543            b
11544            Recurse
11545            Ket
11546            End
11547    ------------------------------------------------------------------
11548    
11549    /^(?=(?1))?[az]([abc])d/BZ
11550    ------------------------------------------------------------------
11551            Bra
11552            ^
11553            Brazero
11554            Assert
11555            Recurse
11556            Ket
11557            [az]
11558            CBra 1
11559            [a-c]
11560            Ket
11561            d
11562            Ket
11563            End
11564    ------------------------------------------------------------------
11565    
11566    /^(?!a){0}\w+/BZ
11567    ------------------------------------------------------------------
11568            Bra
11569            ^
11570            Skip zero
11571            Assert not
11572            a
11573            Ket
11574            \w+
11575            Ket
11576            End
11577    ------------------------------------------------------------------
11578    
11579    /(?<=(abc))?xyz/BZ
11580    ------------------------------------------------------------------
11581            Bra
11582            Brazero
11583            AssertB
11584            Reverse
11585            CBra 1
11586            abc
11587            Ket
11588            Ket
11589            xyz
11590            Ket
11591            End
11592    ------------------------------------------------------------------
11593    
11594    /[:a[:abc]b:]/BZ
11595    ------------------------------------------------------------------
11596            Bra
11597            [:[a-c]
11598            b:]
11599            Ket
11600            End
11601    ------------------------------------------------------------------
11602    
11603    /((?2))((?1))/SS
11604        abc
11605    Error -26 (nested recursion at the same subject position)
11606    
11607    /((?(R2)a+|(?1)b))/SS
11608        aaaabcde
11609    Error -26 (nested recursion at the same subject position)
11610    
11611    /(?(R)a*(?1)|((?R))b)/SS
11612        aaaabcde
11613    Error -26 (nested recursion at the same subject position)
11614    
11615    /(a+|(?R)b)/
11616    Failed: recursive call could loop indefinitely at offset 7
11617    
11618    /^(a(*:A)(d|e(*:B))z|aeq)/C
11619        adz
11620    --->adz
11621     +0 ^       ^
11622     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11623     +2 ^       a
11624     +3 ^^      (*:A)
11625     +8 ^^      (d|e(*:B))
11626    Latest Mark: A
11627     +9 ^^      d
11628    +10 ^ ^     |
11629    +18 ^ ^     z
11630    +19 ^  ^    |
11631    +24 ^  ^
11632     0: adz
11633     1: adz
11634     2: d
11635        aez
11636    --->aez
11637     +0 ^       ^
11638     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11639     +2 ^       a
11640     +3 ^^      (*:A)
11641     +8 ^^      (d|e(*:B))
11642    Latest Mark: A
11643     +9 ^^      d
11644    +11 ^^      e
11645    +12 ^ ^     (*:B)
11646    +17 ^ ^     )
11647    Latest Mark: B
11648    +18 ^ ^     z
11649    +19 ^  ^    |
11650    +24 ^  ^
11651     0: aez
11652     1: aez
11653     2: e
11654        aeqwerty
11655    --->aeqwerty
11656     +0 ^            ^
11657     +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11658     +2 ^            a
11659     +3 ^^           (*:A)
11660     +8 ^^           (d|e(*:B))
11661    Latest Mark: A
11662     +9 ^^           d
11663    +11 ^^           e
11664    +12 ^ ^          (*:B)
11665    +17 ^ ^          )
11666    Latest Mark: B
11667    +18 ^ ^          z
11668    +20 ^            a
11669    +21 ^^           e
11670    +22 ^ ^          q
11671    +23 ^  ^         )
11672    +24 ^  ^
11673     0: aeq
11674     1: aeq
11675    
11676    /.(*F)/
11677        \P\Pabc
11678    No match
11679    
11680    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11681    Capturing subpattern count = 0
11682    No options
11683    First char = 't'
11684    Need char = 't'
11685    Max lookbehind = 1
11686    Subject length lower bound = 18
11687    No set of starting bytes
11688    
11689    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11690    Capturing subpattern count = 0
11691    No options
11692    No first char
11693    No need char
11694    Max lookbehind = 1
11695    Subject length lower bound = 8
11696    Starting byte set: < o t u
11697    
11698    /a(*SKIP)c|b(*ACCEPT)|/+SI
11699    Capturing subpattern count = 0
11700    No options
11701    No first char
11702    No need char
11703    Study returned NULL
11704        a
11705     0:
11706     0+
11707    
11708    /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11709    Capturing subpattern count = 0
11710    No options
11711    No first char
11712    No need char
11713    Subject length lower bound = -1
11714    Starting byte set: a b x
11715        ax
11716     0: x
11717    
11718    'a*(*ACCEPT)b'+
11719        \N\N
11720    No match
11721        abc\N\N
11722     0: a
11723     0+ bc
11724        bbb\N\N
11725     0:
11726     0+ bb
11727    
11728    /(*ACCEPT)a/+I
11729    Capturing subpattern count = 0
11730    No options
11731    No first char
11732    No need char
11733        bax
11734     0:
11735     0+ bax
11736    
11737    /z(*ACCEPT)a/+I
11738    Capturing subpattern count = 0
11739    No options
11740    First char = 'z'
11741    No need char
11742        baxzbx
11743     0: z
11744     0+ bx
11745    
11746    /a(?:.)*?a/ims
11747        \Mabbbbbbbbbbbbbbbbbbbbba
11748    Minimum match() limit = 65
11749    Minimum match() recursion limit = 2
11750     0: abbbbbbbbbbbbbbbbbbbbba
11751    
11752    /a(?:.(*THEN))*?a/ims
11753        \Mabbbbbbbbbbbbbbbbbbbbba
11754    Minimum match() limit = 86
11755    Minimum match() recursion limit = 45
11756     0: abbbbbbbbbbbbbbbbbbbbba
11757    
11758    /a(?:.(*THEN:ABC))*?a/ims
11759        \Mabbbbbbbbbbbbbbbbbbbbba
11760    Minimum match() limit = 86
11761    Minimum match() recursion limit = 45
11762     0: abbbbbbbbbbbbbbbbbbbbba
11763    
11764    /-- These tests are in agreement with development Perl 5.015, which has fixed
11765        some things, but they don't all work with 5.012, so they aren't in the
11766        Perl-compatible tests. Those after the first come from Perl's own test
11767        files. --/
11768    
11769    /^((yes|no)(*THEN)(*F))?/
11770      yes
11771    No match
11772    
11773    /(A (.*)   C? (*THEN)  | A D) (*FAIL)/x
11774    AbcdCBefgBhiBqz
11775    No match
11776    
11777    /(A (.*)   C? (*THEN)  | A D) z/x
11778    AbcdCBefgBhiBqz
11779    No match
11780    
11781    /(A (.*)   C? (*THEN)  | A D) \s* (*FAIL)/x
11782    AbcdCBefgBhiBqz
11783    No match
11784    
11785    /(A (.*)   C? (*THEN)  | A D) \s* z/x
11786    AbcdCBefgBhiBqz
11787    No match
11788    
11789    /(A (.*)   (?:C|) (*THEN)  | A D) (*FAIL)/x
11790    AbcdCBefgBhiBqz
11791    No match
11792    
11793    /(A (.*)   (?:C|) (*THEN)  | A D) z/x
11794    AbcdCBefgBhiBqz
11795    No match
11796    
11797    /(A (.*)   C{0,6} (*THEN)  | A D) (*FAIL)/x
11798    AbcdCBefgBhiBqz
11799    No match
11800    
11801    /(A (.*)   C{0,6} (*THEN)  | A D) z/x
11802    AbcdCBefgBhiBqz
11803    No match
11804    
11805    /(A (.*)   (CE){0,6} (*THEN)  | A D) (*FAIL)/x
11806    AbcdCEBefgBhiBqz
11807    No match
11808    
11809    /(A (.*)   (CE){0,6} (*THEN)  | A D) z/x
11810    AbcdCEBefgBhiBqz
11811    No match
11812    
11813    /(A (.*)   (CE*){0,6} (*THEN)  | A D) (*FAIL)/x
11814    AbcdCBefgBhiBqz
11815    No match
11816    
11817    /(A (.*)   (CE*){0,6} (*THEN)  | A D) z/x
11818    AbcdCBefgBhiBqz
11819    No match
11820    
11821    /-----------------------------------------------/
11822    
11823    /^(?>a+)(?>(z+))\w/BZ
11824    ------------------------------------------------------------------
11825            Bra
11826            ^
11827            Once_NC
11828            a+
11829            Ket
11830            Once
11831            CBra 1
11832            z+
11833            Ket
11834            Ket
11835            \w
11836            Ket
11837            End
11838    ------------------------------------------------------------------
11839        aaaazzzzb
11840     0: aaaazzzzb
11841     1: zzzz
11842        ** Failers
11843    No match
11844        aazz
11845    No match
11846    
11847    /(.)(\1|a(?2))/
11848        bab
11849     0: bab
11850     1: b
11851     2: ab
11852    
11853    /\1|(.)(?R)\1/
11854        cbbbc
11855     0: cbbbc
11856     1: c
11857    
11858    /(.)((?(1)c|a)|a(?2))/
11859        baa
11860    No match
11861    
11862    /(?P<abn>(?P=abn)xxx)/BZ
11863    ------------------------------------------------------------------
11864            Bra
11865            Once
11866            CBra 1
11867            \1
11868            xxx
11869            Ket
11870            Ket
11871            Ket
11872            End
11873    ------------------------------------------------------------------
11874    
11875    /(a\1z)/BZ
11876    ------------------------------------------------------------------
11877            Bra
11878            Once
11879            CBra 1
11880            a
11881            \1
11882            z
11883            Ket
11884            Ket
11885            Ket
11886            End
11887    ------------------------------------------------------------------
11888    
11889    /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11890         \Maabbccddee
11891    Minimum match() limit = 12
11892    Minimum match() recursion limit = 3
11893     0: aabbccddee
11894    
11895    /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11896         \Maabbccddee
11897    Minimum match() limit = 22
11898    Minimum match() recursion limit = 21
11899     0: aabbccddee
11900     1: aa
11901     2: bb
11902     3: cc
11903     4: dd
11904     5: ee
11905    
11906    /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11907         \Maabbccddee
11908    Minimum match() limit = 18
11909    Minimum match() recursion limit = 13
11910     0: aabbccddee
11911     1: aa
11912     2: cc
11913     3: ee
11914    
11915    /^a\x41z/<JS>
11916        aAz
11917     0: aAz
11918        *** Failers
11919    No match
11920        ax41z
11921    No match
11922    
11923    /^a[m\x41]z/<JS>
11924        aAz
11925     0: aAz
11926    
11927    /^a\x1z/<JS>
11928        ax1z
11929     0: ax1z
11930    
11931    /^a\u0041z/<JS>
11932        aAz
11933     0: aAz
11934        *** Failers
11935    No match
11936        au0041z
11937    No match
11938    
11939    /^a[m\u0041]z/<JS>
11940        aAz
11941     0: aAz
11942    
11943    /^a\u041z/<JS>
11944        au041z
11945     0: au041z
11946        *** Failers
11947    No match
11948        aAz
11949    No match
11950    
11951    /^a\U0041z/<JS>
11952        aU0041z
11953     0: aU0041z
11954        *** Failers
11955    No match
11956        aAz
11957    No match
11958    
11959    /(?(?=c)c|d)++Y/BZ
11960    ------------------------------------------------------------------
11961            Bra
11962            BraPos
11963            Cond
11964            Assert
11965            c
11966            Ket
11967            c
11968            Alt
11969            d
11970            Ket
11971            KetRpos
11972            Y
11973            Ket
11974            End
11975    ------------------------------------------------------------------
11976    
11977    /(?(?=c)c|d)*+Y/BZ
11978    ------------------------------------------------------------------
11979            Bra
11980            Braposzero
11981            BraPos
11982            Cond
11983            Assert
11984            c
11985            Ket
11986            c
11987            Alt
11988            d
11989            Ket
11990            KetRpos
11991            Y
11992            Ket
11993            End
11994    ------------------------------------------------------------------
11995    
11996    /a[\NB]c/
11997    Failed: \N is not supported in a class at offset 3
11998    
11999    /a[B-\Nc]/
12000    Failed: \N is not supported in a class at offset 5
12001    
12002    /(a)(?2){0,1999}?(b)/
12003    
12004    /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
12005    
12006    /--- This test, with something more complicated than individual letters, causes
12007    different behaviour in Perl. Perhaps it disables some optimization; no tag is
12008    passed back for the failures, whereas in PCRE there is a tag. ---/
12009    
12010    /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
12011        AABC
12012     0: AB
12013     1: A
12014     2: B
12015    MK: A
12016        XXYZ
12017     0: XXY
12018     1: <unset>
12019     2: <unset>
12020     3: X
12021     4: X
12022     5: Y
12023    MK: B
12024        ** Failers
12025    No match
12026        XAQQ
12027    No match, mark = A
12028        XAQQXZZ
12029    No match, mark = A
12030        AXQQQ
12031    No match, mark = A
12032        AXXQQQ
12033    No match, mark = B
12034    
12035    /-- Perl doesn't give marks for these, though it does if the alternatives are
12036    replaced by single letters. --/
12037    
12038    /(b|q)(*:m)f|a(*:n)w/K
12039        aw
12040     0: aw
12041    MK: n
12042        ** Failers
12043    No match, mark = n
12044        abc
12045    No match, mark = m
12046    
12047    /(q|b)(*:m)f|a(*:n)w/K
12048        aw
12049     0: aw
12050    MK: n
12051        ** Failers
12052    No match, mark = n
12053        abc
12054    No match, mark = m
12055    
12056    /-- After a partial match, the behaviour is as for a failure. --/
12057    
12058    /^a(*:X)bcde/K
12059       abc\P
12060    Partial match, mark=X: abc
12061    
12062    /-- These are here because Perl doesn't return a mark, except for the first --/
12063    
12064    /(?=(*:x))(q|)/K+
12065        abc
12066     0:
12067     0+ abc
12068     1:
12069    MK: x
12070    
12071    /(?=(*:x))((*:y)q|)/K+
12072        abc
12073     0:
12074     0+ abc
12075     1:
12076    MK: x
12077    
12078    /(?=(*:x))(?:(*:y)q|)/K+
12079        abc
12080     0:
12081     0+ abc
12082    MK: x
12083    
12084    /(?=(*:x))(?>(*:y)q|)/K+
12085        abc
12086     0:
12087     0+ abc
12088    MK: x
12089    
12090    /(?=a(*:x))(?!a(*:y)c)/K+
12091        ab
12092     0:
12093     0+ ab
12094    MK: x
12095    
12096    /(?=a(*:x))(?=a(*:y)c|)/K+
12097        ab
12098     0:
12099     0+ ab
12100    MK: x
12101    
12102    /(..)\1/
12103        ab\P
12104    Partial match: ab
12105        aba\P
12106    Partial match: aba
12107        abab\P
12108     0: abab
12109     1: ab
12110    
12111    /(..)\1/i
12112        ab\P
12113    Partial match: ab
12114        abA\P
12115    Partial match: abA
12116        aBAb\P
12117     0: aBAb
12118     1: aB
12119    
12120    /(..)\1{2,}/
12121        ab\P
12122    Partial match: ab
12123        aba\P
12124    Partial match: aba
12125        abab\P
12126    Partial match: abab
12127        ababa\P
12128    Partial match: ababa
12129        ababab\P
12130     0: ababab
12131     1: ab
12132        ababab\P\P
12133    Partial match: ababab
12134        abababa\P
12135     0: ababab
12136     1: ab
12137        abababa\P\P
12138    Partial match: abababa
12139    
12140    /(..)\1{2,}/i
12141        ab\P
12142    Partial match: ab
12143        aBa\P
12144    Partial match: aBa
12145        aBAb\P
12146    Partial match: aBAb
12147        AbaBA\P
12148    Partial match: AbaBA
12149        abABAb\P
12150     0: abABAb
12151     1: ab
12152        aBAbaB\P\P
12153    Partial match: aBAbaB
12154        abABabA\P
12155     0: abABab
12156     1: ab
12157        abaBABa\P\P
12158    Partial match: abaBABa
12159    
12160    /(..)\1{2,}?x/i
12161        ab\P
12162    Partial match: ab
12163        abA\P
12164    Partial match: abA
12165        aBAb\P
12166    Partial match: aBAb
12167        abaBA\P
12168    Partial match: abaBA
12169        abAbaB\P
12170    Partial match: abAbaB
12171        abaBabA\P
12172    Partial match: abaBabA
12173        abAbABaBx\P
12174     0: abAbABaBx
12175     1: ab
12176    
12177    /^(..)\1/
12178        aba\P
12179    Partial match: aba
12180    
12181    /^(..)\1{2,3}x/
12182        aba\P
12183    Partial match: aba
12184        ababa\P
12185    Partial match: ababa
12186        ababa\P\P
12187    Partial match: ababa
12188        abababx
12189     0: abababx
12190     1: ab
12191        ababababx
12192     0: ababababx
12193     1: ab
12194    
12195    /^(..)\1{2,3}?x/
12196        aba\P
12197    Partial match: aba
12198        ababa\P
12199    Partial match: ababa
12200        ababa\P\P
12201    Partial match: ababa
12202        abababx
12203     0: abababx
12204     1: ab
12205        ababababx
12206     0: ababababx
12207     1: ab
12208    
12209    /^(..)(\1{2,3})ab/
12210        abababab
12211     0: abababab
12212     1: ab
12213     2: abab
12214    
12215    /^\R/
12216        \r\P
12217     0: \x0d
12218        \r\P\P
12219    Partial match: \x0d
12220    
12221    /^\R{2,3}x/
12222        \r\P
12223    Partial match: \x0d
12224        \r\P\P
12225    Partial match: \x0d
12226        \r\r\P
12227    Partial match: \x0d\x0d
12228        \r\r\P\P
12229    Partial match: \x0d\x0d
12230        \r\r\r\P
12231    Partial match: \x0d\x0d\x0d
12232        \r\r\r\P\P
12233    Partial match: \x0d\x0d\x0d
12234        \r\rx
12235     0: \x0d\x0dx
12236        \r\r\rx
12237     0: \x0d\x0d\x0dx
12238    
12239    /^\R{2,3}?x/
12240        \r\P
12241    Partial match: \x0d
12242        \r\P\P
12243    Partial match: \x0d
12244        \r\r\P
12245    Partial match: \x0d\x0d
12246        \r\r\P\P
12247    Partial match: \x0d\x0d
12248        \r\r\r\P
12249    Partial match: \x0d\x0d\x0d
12250        \r\r\r\P\P
12251    Partial match: \x0d\x0d\x0d
12252        \r\rx
12253     0: \x0d\x0dx
12254        \r\r\rx
12255     0: \x0d\x0d\x0dx
12256    
12257    /^\R?x/
12258        \r\P
12259    Partial match: \x0d
12260        \r\P\P
12261    Partial match: \x0d
12262        x
12263     0: x
12264        \rx
12265     0: \x0dx
12266    
12267    /^\R+x/
12268        \r\P
12269    Partial match: \x0d
12270        \r\P\P
12271    Partial match: \x0d
12272        \r\n\P
12273    Partial match: \x0d\x0a
12274        \r\n\P\P
12275    Partial match: \x0d\x0a
12276        \rx
12277     0: \x0dx
12278    
12279    /^a$/<CRLF>
12280        a\r\P
12281    Partial match: a\x0d
12282        a\r\P\P
12283    Partial match: a\x0d
12284    
12285    /^a$/m<CRLF>
12286        a\r\P
12287    Partial match: a\x0d
12288        a\r\P\P
12289    Partial match: a\x0d
12290    
12291    /^(a$|a\r)/<CRLF>
12292        a\r\P
12293     0: a\x0d
12294     1: a\x0d
12295        a\r\P\P
12296    Partial match: a\x0d
12297    
12298    /^(a$|a\r)/m<CRLF>
12299        a\r\P
12300     0: a\x0d
12301     1: a\x0d
12302        a\r\P\P
12303    Partial match: a\x0d
12304    
12305    /./<CRLF>
12306        \r\P
12307     0: \x0d
12308        \r\P\P
12309    Partial match: \x0d
12310    
12311    /.{2,3}/<CRLF>
12312        \r\P
12313    Partial match: \x0d
12314        \r\P\P
12315    Partial match: \x0d
12316        \r\r\P
12317     0: \x0d\x0d
12318        \r\r\P\P
12319    Partial match: \x0d\x0d
12320        \r\r\r\P
12321     0: \x0d\x0d\x0d
12322        \r\r\r\P\P
12323    Partial match: \x0d\x0d\x0d
12324    
12325    /.{2,3}?/<CRLF>
12326        \r\P
12327    Partial match: \x0d
12328        \r\P\P
12329    Partial match: \x0d
12330        \r\r\P
12331     0: \x0d\x0d
12332        \r\r\P\P
12333    Partial match: \x0d\x0d
12334        \r\r\r\P
12335     0: \x0d\x0d
12336        \r\r\r\P\P
12337     0: \x0d\x0d
12338    
12339    /-- These two are here because Perl does not match: it seems to allow the
12340    COMMIT to escape from the assertion. --/
12341    
12342    /(?=a(*COMMIT)b|ac)ac|ac/
12343        ac
12344     0: ac
12345    
12346    /(?=a(*COMMIT)b|(ac)) ac | (a)c/x
12347        ac
12348     0: ac
12349     1: <unset>
12350     2: a
12351    
12352    "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
12353        ABCDGHI\O03
12354    Matched, but too many substrings
12355     0: ABCD
12356    
12357    /-- This one is here because Perl does not confine the *COMMIT to the
12358    assertion, and therefore fails the entire subroutine call. --/
12359    
12360    /((?=a(*COMMIT)b)ab|ac){0}(?:(?1)|a(c))/
12361        ac
12362     0: ac
12363    
12364    /-- These are all run as real matches in test 1; here we are just checking the
12365    settings of the anchored and startline bits. */
12366    
12367    /(?>.*?a)(?<=ba)/I
12368    Capturing subpattern count = 0
12369    No options
12370    No first char
12371    Need char = 'a'
12372    Max lookbehind = 2
12373    
12374    /(?:.*?a)(?<=ba)/I
12375    Capturing subpattern count = 0
12376    No options
12377    First char at start or follows newline
12378    Need char = 'a'
12379    Max lookbehind = 2
12380    
12381    /.*?a(*PRUNE)b/I
12382    Capturing subpattern count = 0
12383    No options
12384    No first char
12385    Need char = 'b'
12386    
12387    /.*?a(*PRUNE)b/sI
12388    Capturing subpattern count = 0
12389    Options: dotall
12390    No first char
12391    Need char = 'b'
12392    
12393    /^a(*PRUNE)b/sI
12394    Capturing subpattern count = 0
12395    Options: anchored dotall
12396    No first char
12397    No need char
12398    
12399    /.*?a(*SKIP)b/I
12400    Capturing subpattern count = 0
12401    No options
12402    No first char
12403    Need char = 'b'
12404    
12405    /(?>.*?a)b/sI
12406    Capturing subpattern count = 0
12407    Options: dotall
12408    No first char
12409    Need char = 'b'
12410    
12411    /(?>.*?a)b/I
12412    Capturing subpattern count = 0
12413    No options
12414    No first char
12415    Need char = 'b'
12416    
12417    /(?>^a)b/sI
12418    Capturing subpattern count = 0
12419    Options: anchored dotall
12420    No first char
12421    No need char
12422    
12423    /(?>.*?)(?<=(abcd)|(wxyz))/I
12424    Capturing subpattern count = 2
12425    No options
12426    No first char
12427    No need char
12428    Max lookbehind = 4
12429    
12430    /(?>.*)(?<=(abcd)|(wxyz))/I
12431    Capturing subpattern count = 2
12432    No options
12433    No first char
12434    No need char
12435    Max lookbehind = 4
12436    
12437    "(?>.*)foo"I
12438    Capturing subpattern count = 0
12439    No options
12440    No first char
12441    Need char = 'o'
12442    
12443    "(?>.*?)foo"I
12444    Capturing subpattern count = 0
12445    No options
12446    No first char
12447    Need char = 'o'
12448    
12449    /(?>^abc)/mI
12450    Capturing subpattern count = 0
12451    Options: multiline
12452    First char at start or follows newline
12453    Need char = 'c'
12454    
12455    /(?>.*abc)/mI
12456    Capturing subpattern count = 0
12457    Options: multiline
12458    No first char
12459    Need char = 'c'
12460    
12461    /(?:.*abc)/mI
12462    Capturing subpattern count = 0
12463    Options: multiline
12464    First char at start or follows newline
12465    Need char = 'c'
12466    
12467  /-- End of testinput2 --/  /-- End of testinput2 --/

Legend:
Removed from v.598  
changed lines
  Added in v.994

  ViewVC Help
Powered by ViewVC 1.1.5