/[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 500 by ph10, Sat Mar 6 19:00:29 2010 UTC revision 848 by ph10, Wed Jan 4 16:34:01 2012 UTC
# Line 2  Line 2 
2      of PCRE's API, error diagnostics, and the compiled code of some patterns.      of PCRE's API, error diagnostics, and the compiled code of some patterns.
3      It also checks the non-Perl syntax the PCRE supports (Python, .NET,      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 potential 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 103  Failed: missing terminating ] for charac Line 102  Failed: missing terminating ] for charac
102  /(?X)[\B]/  /(?X)[\B]/
103  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
104    
105    /(?X)[\R]/
106    Failed: invalid escape sequence in character class at offset 6
107    
108    /(?X)[\X]/
109    Failed: invalid escape sequence in character class at offset 6
110    
111    /[\B]/BZ
112    ------------------------------------------------------------------
113            Bra
114            B
115            Ket
116            End
117    ------------------------------------------------------------------
118    
119    /[\R]/BZ
120    ------------------------------------------------------------------
121            Bra
122            R
123            Ket
124            End
125    ------------------------------------------------------------------
126    
127    /[\X]/BZ
128    ------------------------------------------------------------------
129            Bra
130            X
131            Ket
132            End
133    ------------------------------------------------------------------
134    
135  /[z-a]/  /[z-a]/
136  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
137    
# Line 347  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 602  Need char = 'h' (caseless) Line 576  Need char = 'h' (caseless)
576  ------------------------------------------------------------------  ------------------------------------------------------------------
577          Bra          Bra
578          CBra 1          CBra 1
579       01 Opt       /i b
      NC b  
580          Ket          Ket
      00 Opt  
581          Ket          Ket
582          End          End
583  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1003  Failed: numbers out of order in {} quant Line 975  Failed: numbers out of order in {} quant
975  /abc/\  /abc/\
976  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
977    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
978  /abc/\i  /abc/\i
979  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
980    
# Line 1121  No first char Line 1090  No first char
1090  No need char  No need char
1091      abc\00def\L\C0      abc\00def\L\C0
1092   0: abc\x00def   0: abc\x00def
1093   0C abc (7)   0C abc\x00def (7)
1094   0L abc   0L abc
1095    
1096  /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 1217  No need char Line 1186  No need char
1186  ------------------------------------------------------------------  ------------------------------------------------------------------
1187          Bra          Bra
1188          Bra          Bra
      04 Opt  
1189          AllAny*          AllAny*
1190          X          X
1191          Alt          Alt
      04 Opt  
1192          ^          ^
1193          B          B
1194          Ket          Ket
      00 Opt  
1195          Ket          Ket
1196          End          End
1197  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1243  Need char = 's' Line 1209  Need char = 's'
1209   0: iss   0: iss
1210   0+ issippi   0+ issippi
1211    
 /\Biss\B/I+P  
     Mississippi  
  0: iss  
  0+ issippi  
   
1212  /iss/IG+  /iss/IG+
1213  Capturing subpattern count = 0  Capturing subpattern count = 0
1214  No options  No options
# Line 1377  Capturing subpattern count = 0 Line 1338  Capturing subpattern count = 0
1338  Contains explicit CR or LF match  Contains explicit CR or LF match
1339  Options: multiline  Options: multiline
1340  First char at start or follows newline  First char at start or follows newline
1341  Need char = 10  Need char = \x0a
1342      ab\nab\ncd      ab\nab\ncd
1343   0: ab\x0a   0: ab\x0a
1344   0+ ab\x0acd   0+ ab\x0acd
# Line 1664  No need char Line 1625  No need char
1625      \Nabc      \Nabc
1626  No match  No match
1627    
 /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  
   
1628  /^.?abcd/IS  /^.?abcd/IS
1629  Capturing subpattern count = 0  Capturing subpattern count = 0
1630  Options: anchored  Options: anchored
# Line 2734  No need char Line 2668  No need char
2668  ------------------------------------------------------------------  ------------------------------------------------------------------
2669          Bra          Bra
2670          a          a
2671       01 Opt       /i b
      NC b  
2672          Ket          Ket
2673          End          End
2674  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2757  No match Line 2690  No match
2690          Bra          Bra
2691          CBra 1          CBra 1
2692          a          a
2693       01 Opt       /i b
      NC b  
2694          Ket          Ket
      00 Opt  
2695          Ket          Ket
2696          End          End
2697  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2782  No match Line 2713  No match
2713  /   (?i)abc/IxDZ  /   (?i)abc/IxDZ
2714  ------------------------------------------------------------------  ------------------------------------------------------------------
2715          Bra          Bra
2716       NC abc       /i abc
2717          Ket          Ket
2718          End          End
2719  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2795  Need char = 'c' (caseless) Line 2726  Need char = 'c' (caseless)
2726    (?i)abc/IxDZ    (?i)abc/IxDZ
2727  ------------------------------------------------------------------  ------------------------------------------------------------------
2728          Bra          Bra
2729       NC abc       /i abc
2730          Ket          Ket
2731          End          End
2732  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2968  No need char Line 2899  No need char
2899  /(x)*+/DZ  /(x)*+/DZ
2900  ------------------------------------------------------------------  ------------------------------------------------------------------
2901          Bra          Bra
2902          Once          Braposzero
2903          Brazero          CBraPos 1
         CBra 1  
2904          x          x
2905          KetRmax          KetRpos
         Ket  
2906          Ket          Ket
2907          End          End
2908  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3198  Failed: POSIX collating elements are not Line 3127  Failed: POSIX collating elements are not
3127  Failed: POSIX named classes are supported only within a class at offset 0  Failed: POSIX named classes are supported only within a class at offset 0
3128    
3129  /\l/I  /\l/I
3130  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3131    
3132  /\L/I  /\L/I
3133  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3134    
3135  /\N{name}/I  /\N{name}/I
3136  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3137    
3138  /\u/I  /\u/I
3139  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3140    
3141  /\U/I  /\U/I
3142  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3143    
3144  /[/I  /[/I
3145  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 3560  Need char = 'f' Line 3489  Need char = 'f'
3489    1    ^    ^     f    1    ^    ^     f
3490   0: abcdef   0: abcdef
3491    
3492  /(?C1)\dabc(?C2)def/I  /(?C1)\dabc(?C2)def/IS
3493    Capturing subpattern count = 0
3494    No options
3495    No first char
3496    Need char = 'f'
3497    Subject length lower bound = 7
3498    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3499        1234abcdef
3500    --->1234abcdef
3501      1 ^              \d
3502      1  ^             \d
3503      1   ^            \d
3504      1    ^           \d
3505      2    ^   ^       d
3506     0: 4abcdef
3507        *** Failers
3508    No match
3509        abcdef
3510    No match
3511    
3512    /(?C1)\dabc(?C2)def/ISS
3513  Capturing subpattern count = 0  Capturing subpattern count = 0
3514  No options  No options
3515  No first char  No first char
# Line 3964  Need char = '<' Line 3913  Need char = '<'
3913          Bra          Bra
3914          CBra 1          CBra 1
3915          a          a
         Once  
3916          Recurse          Recurse
         Ket  
3917          b          b
3918          Ket          Ket
3919          Ket          Ket
# Line 4187  Need char = 'a' Line 4134  Need char = 'a'
4134          Any          Any
4135          \1          \1
4136          bbb          bbb
         Once  
4137          Recurse          Recurse
         Ket  
4138          d          d
4139          Ket          Ket
4140          End          End
# Line 4561  Need char = ']' Line 4506  Need char = ']'
4506          a          a
4507          CBra 2          CBra 2
4508          b          b
         Once  
4509          Recurse          Recurse
         Ket  
4510          c          c
4511          Ket          Ket
4512          Ket          Ket
# Line 4583  No need char Line 4526  No need char
4526          a          a
4527          CBra 2          CBra 2
4528          b          b
         Once  
4529          Recurse          Recurse
         Ket  
4530          c          c
4531          Ket          Ket
4532          KetRmax          KetRmax
# Line 4606  No need char Line 4547  No need char
4547          a          a
4548          CBra 2          CBra 2
4549          b          b
         Once  
4550          Recurse          Recurse
         Ket  
4551          c          c
4552          Ket          Ket
4553          Ket          Ket
# Line 4617  No need char Line 4556  No need char
4556          a          a
4557          CBra 2          CBra 2
4558          b          b
         Once  
4559          Recurse          Recurse
         Ket  
4560          c          c
4561          Ket          Ket
4562          Ket          Ket
# Line 4758  Need char = 'e' Line 4695  Need char = 'e'
4695   +4 ^   ^      e   +4 ^   ^      e
4696  No match  No match
4697    
4698  /a*b/ICDZ  /a*b/ICDZS
4699    ------------------------------------------------------------------
4700            Bra
4701            Callout 255 0 2
4702            a*+
4703            Callout 255 2 1
4704            b
4705            Callout 255 3 0
4706            Ket
4707            End
4708    ------------------------------------------------------------------
4709    Capturing subpattern count = 0
4710    Options:
4711    No first char
4712    Need char = 'b'
4713    Subject length lower bound = 1
4714    Starting byte set: a b
4715      ab
4716    --->ab
4717     +0 ^      a*
4718     +2 ^^     b
4719     +3 ^ ^
4720     0: ab
4721      aaaab
4722    --->aaaab
4723     +0 ^         a*
4724     +2 ^   ^     b
4725     +3 ^    ^
4726     0: aaaab
4727      aaaacb
4728    --->aaaacb
4729     +0 ^          a*
4730     +2 ^   ^      b
4731     +0  ^         a*
4732     +2  ^  ^      b
4733     +0   ^        a*
4734     +2   ^ ^      b
4735     +0    ^       a*
4736     +2    ^^      b
4737     +0      ^     a*
4738     +2      ^     b
4739     +3      ^^
4740     0: b
4741    
4742    /a*b/ICDZSS
4743  ------------------------------------------------------------------  ------------------------------------------------------------------
4744          Bra          Bra
4745          Callout 255 0 2          Callout 255 0 2
# Line 4841  Need char = 'b' Line 4822  Need char = 'b'
4822   +2    ^^      b   +2    ^^      b
4823  No match  No match
4824    
4825  /(abc|def)x/ICDZ  /(abc|def)x/ICDZS
4826    ------------------------------------------------------------------
4827            Bra
4828            Callout 255 0 9
4829            CBra 1
4830            Callout 255 1 1
4831            a
4832            Callout 255 2 1
4833            b
4834            Callout 255 3 1
4835            c
4836            Callout 255 4 0
4837            Alt
4838            Callout 255 5 1
4839            d
4840            Callout 255 6 1
4841            e
4842            Callout 255 7 1
4843            f
4844            Callout 255 8 0
4845            Ket
4846            Callout 255 9 1
4847            x
4848            Callout 255 10 0
4849            Ket
4850            End
4851    ------------------------------------------------------------------
4852    Capturing subpattern count = 1
4853    Options:
4854    No first char
4855    Need char = 'x'
4856    Subject length lower bound = 4
4857    Starting byte set: a d
4858      abcx
4859    --->abcx
4860     +0 ^        (abc|def)
4861     +1 ^        a
4862     +2 ^^       b
4863     +3 ^ ^      c
4864     +4 ^  ^     |
4865     +9 ^  ^     x
4866    +10 ^   ^
4867     0: abcx
4868     1: abc
4869      defx
4870    --->defx
4871     +0 ^        (abc|def)
4872     +1 ^        a
4873     +5 ^        d
4874     +6 ^^       e
4875     +7 ^ ^      f
4876     +8 ^  ^     )
4877     +9 ^  ^     x
4878    +10 ^   ^
4879     0: defx
4880     1: def
4881      ** Failers
4882    No match
4883      abcdefzx
4884    --->abcdefzx
4885     +0 ^            (abc|def)
4886     +1 ^            a
4887     +2 ^^           b
4888     +3 ^ ^          c
4889     +4 ^  ^         |
4890     +9 ^  ^         x
4891     +5 ^            d
4892     +0    ^         (abc|def)
4893     +1    ^         a
4894     +5    ^         d
4895     +6    ^^        e
4896     +7    ^ ^       f
4897     +8    ^  ^      )
4898     +9    ^  ^      x
4899    No match
4900    
4901    /(abc|def)x/ICDZSS
4902  ------------------------------------------------------------------  ------------------------------------------------------------------
4903          Bra          Bra
4904          Callout 255 0 9          Callout 255 0 9
# Line 4895  Need char = 'x' Line 4952  Need char = 'x'
4952  +10 ^   ^  +10 ^   ^
4953   0: defx   0: defx
4954   1: def   1: def
4955      ** Failers
4956    No match
4957    abcdefzx    abcdefzx
4958  --->abcdefzx  --->abcdefzx
4959   +0 ^            (abc|def)   +0 ^            (abc|def)
# Line 4995  No need char Line 5054  No need char
5054   0: abcdcdcd   0: abcdcdcd
5055   1: cd   1: cd
5056    
5057  /([ab]{,4}c|xy)/ICDZ  /([ab]{,4}c|xy)/ICDZS
5058  ------------------------------------------------------------------  ------------------------------------------------------------------
5059          Bra          Bra
5060          Callout 255 0 14          Callout 255 0 14
# Line 5028  Capturing subpattern count = 1 Line 5087  Capturing subpattern count = 1
5087  Options:  Options:
5088  No first char  No first char
5089  No need char  No need char
5090    Subject length lower bound = 2
5091    Starting byte set: a b x
5092      Note: that { does NOT introduce a quantifier      Note: that { does NOT introduce a quantifier
5093  --->Note: that { does NOT introduce a quantifier  --->Note: that { does NOT introduce a quantifier
  +0 ^                                                ([ab]{,4}c|xy)  
  +1 ^                                                [ab]  
 +11 ^                                                x  
  +0  ^                                               ([ab]{,4}c|xy)  
  +1  ^                                               [ab]  
 +11  ^                                               x  
  +0   ^                                              ([ab]{,4}c|xy)  
  +1   ^                                              [ab]  
 +11   ^                                              x  
  +0    ^                                             ([ab]{,4}c|xy)  
  +1    ^                                             [ab]  
 +11    ^                                             x  
  +0     ^                                            ([ab]{,4}c|xy)  
  +1     ^                                            [ab]  
 +11     ^                                            x  
  +0      ^                                           ([ab]{,4}c|xy)  
  +1      ^                                           [ab]  
 +11      ^                                           x  
  +0       ^                                          ([ab]{,4}c|xy)  
  +1       ^                                          [ab]  
 +11       ^                                          x  
  +0        ^                                         ([ab]{,4}c|xy)  
  +1        ^                                         [ab]  
 +11        ^                                         x  
5094   +0         ^                                        ([ab]{,4}c|xy)   +0         ^                                        ([ab]{,4}c|xy)
5095   +1         ^                                        [ab]   +1         ^                                        [ab]
5096   +5         ^^                                       {   +5         ^^                                       {
5097  +11         ^                                        x  +11         ^                                        x
5098   +0          ^                                       ([ab]{,4}c|xy)   +0                                 ^                ([ab]{,4}c|xy)
5099   +1          ^                                       [ab]   +1                                 ^                [ab]
5100  +11          ^                                       x   +5                                 ^^               {
5101   +0           ^                                      ([ab]{,4}c|xy)  +11                                 ^                x
5102   +1           ^                                      [ab]   +0                                     ^            ([ab]{,4}c|xy)
5103  +11           ^                                      x   +1                                     ^            [ab]
5104   +0            ^                                     ([ab]{,4}c|xy)   +5                                     ^^           {
5105   +1            ^                                     [ab]  +11                                     ^            x
5106  +11            ^                                     x  No match
5107    
5108    /([ab]{,4}c|xy)/ICDZSS
5109    ------------------------------------------------------------------
5110            Bra
5111            Callout 255 0 14
5112            CBra 1
5113            Callout 255 1 4
5114            [ab]
5115            Callout 255 5 1
5116            {
5117            Callout 255 6 1
5118            ,
5119            Callout 255 7 1
5120            4
5121            Callout 255 8 1
5122            }
5123            Callout 255 9 1
5124            c
5125            Callout 255 10 0
5126            Alt
5127            Callout 255 11 1
5128            x
5129            Callout 255 12 1
5130            y
5131            Callout 255 13 0
5132            Ket
5133            Callout 255 14 0
5134            Ket
5135            End
5136    ------------------------------------------------------------------
5137    Capturing subpattern count = 1
5138    Options:
5139    No first char
5140    No need char
5141        Note: that { does NOT introduce a quantifier
5142    --->Note: that { does NOT introduce a quantifier
5143     +0 ^                                                ([ab]{,4}c|xy)
5144     +1 ^                                                [ab]
5145    +11 ^                                                x
5146     +0  ^                                               ([ab]{,4}c|xy)
5147     +1  ^                                               [ab]
5148    +11  ^                                               x
5149     +0   ^                                              ([ab]{,4}c|xy)
5150     +1   ^                                              [ab]
5151    +11   ^                                              x
5152     +0    ^                                             ([ab]{,4}c|xy)
5153     +1    ^                                             [ab]
5154    +11    ^                                             x
5155     +0     ^                                            ([ab]{,4}c|xy)
5156     +1     ^                                            [ab]
5157    +11     ^                                            x
5158     +0      ^                                           ([ab]{,4}c|xy)
5159     +1      ^                                           [ab]
5160    +11      ^                                           x
5161     +0       ^                                          ([ab]{,4}c|xy)
5162     +1       ^                                          [ab]
5163    +11       ^                                          x
5164     +0        ^                                         ([ab]{,4}c|xy)
5165     +1        ^                                         [ab]
5166    +11        ^                                         x
5167     +0         ^                                        ([ab]{,4}c|xy)
5168     +1         ^                                        [ab]
5169     +5         ^^                                       {
5170    +11         ^                                        x
5171     +0          ^                                       ([ab]{,4}c|xy)
5172     +1          ^                                       [ab]
5173    +11          ^                                       x
5174     +0           ^                                      ([ab]{,4}c|xy)
5175     +1           ^                                      [ab]
5176    +11           ^                                      x
5177     +0            ^                                     ([ab]{,4}c|xy)
5178     +1            ^                                     [ab]
5179    +11            ^                                     x
5180   +0             ^                                    ([ab]{,4}c|xy)   +0             ^                                    ([ab]{,4}c|xy)
5181   +1             ^                                    [ab]   +1             ^                                    [ab]
5182  +11             ^                                    x  +11             ^                                    x
# Line 5447  No match Line 5557  No match
5557      123456\P      123456\P
5558  No match  No match
5559    
5560  /abc/I>testsavedregex  /abc/IS>testsavedregex
5561    Capturing subpattern count = 0
5562    No options
5563    First char = 'a'
5564    Need char = 'c'
5565    Subject length lower bound = 3
5566    No set of starting bytes
5567    Compiled pattern written to testsavedregex
5568    Study data written to testsavedregex
5569    <testsavedregex
5570    Compiled pattern loaded from testsavedregex
5571    Study data loaded from testsavedregex
5572        abc
5573     0: abc
5574        ** Failers
5575    No match
5576        bca
5577    No match
5578    
5579    /abc/ISS>testsavedregex
5580  Capturing subpattern count = 0  Capturing subpattern count = 0
5581  No options  No options
5582  First char = 'a'  First char = 'a'
5583  Need char = 'c'  Need char = 'c'
5584  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5585  <testsavedregex  <testsavedregex
5586  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5587  No study data  No study data
5588      abc      abc
5589   0: abc   0: abc
# Line 5463  No match Line 5592  No match
5592      bca      bca
5593  No match  No match
5594    
5595  /abc/IF>testsavedregex  /abc/IFS>testsavedregex
5596    Capturing subpattern count = 0
5597    No options
5598    First char = 'a'
5599    Need char = 'c'
5600    Subject length lower bound = 3
5601    No set of starting bytes
5602    Compiled pattern written to testsavedregex
5603    Study data written to testsavedregex
5604    <testsavedregex
5605    Compiled pattern (byte-inverted) loaded from testsavedregex
5606    Study data loaded from testsavedregex
5607        abc
5608     0: abc
5609        ** Failers
5610    No match
5611        bca
5612    No match
5613    
5614    /abc/IFSS>testsavedregex
5615  Capturing subpattern count = 0  Capturing subpattern count = 0
5616  No options  No options
5617  First char = 'a'  First char = 'a'
5618  Need char = 'c'  Need char = 'c'
5619  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5620  <testsavedregex  <testsavedregex
5621  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5622  No study data  No study data
5623      abc      abc
5624   0: abc   0: abc
# Line 5486  No first char Line 5634  No first char
5634  No need char  No need char
5635  Subject length lower bound = 1  Subject length lower bound = 1
5636  Starting byte set: a b  Starting byte set: a b
5637  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5638  Study data written to testsavedregex  Study data written to testsavedregex
5639  <testsavedregex  <testsavedregex
5640  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5641  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5642      abc      abc
5643   0: a   0: a
# Line 5500  Study data loaded from testsavedregex Line 5648  Study data loaded from testsavedregex
5648      def      def
5649  No match  No match
5650    
5651    /(a|b)/ISS>testsavedregex
5652    Capturing subpattern count = 1
5653    No options
5654    No first char
5655    No need char
5656    Compiled pattern written to testsavedregex
5657    <testsavedregex
5658    Compiled pattern loaded from testsavedregex
5659    No study data
5660        abc
5661     0: a
5662     1: a
5663        ** Failers
5664     0: a
5665     1: a
5666        def
5667    No match
5668    
5669  /(a|b)/ISF>testsavedregex  /(a|b)/ISF>testsavedregex
5670  Capturing subpattern count = 1  Capturing subpattern count = 1
5671  No options  No options
# Line 5507  No first char Line 5673  No first char
5673  No need char  No need char
5674  Subject length lower bound = 1  Subject length lower bound = 1
5675  Starting byte set: a b  Starting byte set: a b
5676  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5677  Study data written to testsavedregex  Study data written to testsavedregex
5678  <testsavedregex  <testsavedregex
5679  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5680  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5681      abc      abc
5682   0: a   0: a
# Line 5521  Study data loaded from testsavedregex Line 5687  Study data loaded from testsavedregex
5687      def      def
5688  No match  No match
5689    
5690    /(a|b)/ISSF>testsavedregex
5691    Capturing subpattern count = 1
5692    No options
5693    No first char
5694    No need char
5695    Compiled pattern written to testsavedregex
5696    <testsavedregex
5697    Compiled pattern (byte-inverted) loaded from testsavedregex
5698    No study data
5699        abc
5700     0: a
5701     1: a
5702        ** Failers
5703     0: a
5704     1: a
5705        def
5706    No match
5707    
5708  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5709  Capturing subpattern count = 3  Capturing subpattern count = 3
5710  Max back reference = 1  Max back reference = 1
5711  Options: multiline dotall  Options: multiline dotall
5712  First char = '<'  First char = '<'
5713  Need char = '>'  Need char = '>'
5714      <!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>
5715   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>
5716   1: seite   1: seite
5717   2: \x0a   2: \x0a
# Line 5576  No match Line 5760  No match
5760      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5761  No match  No match
5762    
 /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  
   
5763  /(?i)(?-i)AbCd/I  /(?i)(?-i)AbCd/I
5764  Capturing subpattern count = 0  Capturing subpattern count = 0
5765  No options  No options
# Line 5886  No need char Line 6052  No need char
6052      ((this))      ((this))
6053   0: ((this))   0: ((this))
6054    
 /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  
   
6055  /\x{0000ff}/I  /\x{0000ff}/I
6056  Capturing subpattern count = 0  Capturing subpattern count = 0
6057  No options  No options
6058  First char = 255  First char = \xff
6059  No need char  No need char
6060    
6061  /^((?P<A>a1)|(?P<A>a2)b)/I  /^((?P<A>a1)|(?P<A>a2)b)/I
# Line 6010  no parentheses with name "Z" Line 6165  no parentheses with name "Z"
6165   0: a1   0: a1
6166   1: a1   1: a1
6167   2: a1   2: a1
6168  copy substring Z failed -7  get substring Z failed -7
6169    G a1 (2) A    G a1 (2) A
6170    
6171  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
# Line 6042  No need char Line 6197  No need char
6197    G a (1) A    G a (1) A
6198      cd\GA      cd\GA
6199   0: cd   0: cd
6200  copy substring A failed -7  get substring A failed -7
6201    
6202  /^(?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
6203  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 6211  No need char Line 6366  No need char
6366  10: Y  10: Y
6367    
6368  /\777/I  /\777/I
6369  Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3  Failed: octal value is greater than \377 in 8-bit non-UTF-8 mode at offset 3
6370    
6371  /\s*,\s*/IS  /\s*,\s*/IS
6372  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 6644  No match Line 6799  No match
6799  ------------------------------------------------------------------  ------------------------------------------------------------------
6800          Bra          Bra
6801          ^          ^
6802          a*       /i a*
6803       NC A       /i A
6804          \d          \d
6805          Ket          Ket
6806          End          End
# Line 7273  Matched, but too many substrings Line 7428  Matched, but too many substrings
7428  /[^a]+a/BZi  /[^a]+a/BZi
7429  ------------------------------------------------------------------  ------------------------------------------------------------------
7430          Bra          Bra
7431          [^A]++       /i [^a]++
7432       NC a       /i a
7433          Ket          Ket
7434          End          End
7435  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7282  Matched, but too many substrings Line 7437  Matched, but too many substrings
7437  /[^a]+A/BZi  /[^a]+A/BZi
7438  ------------------------------------------------------------------  ------------------------------------------------------------------
7439          Bra          Bra
7440          [^A]++       /i [^a]++
7441       NC A       /i A
7442          Ket          Ket
7443          End          End
7444  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7478  No match Line 7633  No match
7633  ------------------------------------------------------------------  ------------------------------------------------------------------
7634          Bra          Bra
7635          ^          ^
         Once  
7636          Recurse          Recurse
         Ket  
7637          [()]          [()]
7638          CBra 1          CBra 1
7639          Ket          Ket
# Line 7514  No match Line 7667  No match
7667  ------------------------------------------------------------------  ------------------------------------------------------------------
7668          Bra          Bra
7669          ^          ^
         Once  
7670          Recurse          Recurse
         Ket  
7671          ()          ()
7672          CBra 1          CBra 1
7673          Ket          Ket
# Line 7528  No match Line 7679  No match
7679  ------------------------------------------------------------------  ------------------------------------------------------------------
7680          Bra          Bra
7681          ^          ^
         Once  
7682          Recurse          Recurse
         Ket  
7683          [(\]a]          [(\]a]
7684          CBra 1          CBra 1
7685          Ket          Ket
# Line 7543  No match Line 7692  No match
7692  ------------------------------------------------------------------  ------------------------------------------------------------------
7693          Bra          Bra
7694          ^          ^
         Once  
7695          Recurse          Recurse
         Ket  
7696          CBra 1          CBra 1
7697          Ket          Ket
7698          Ket          Ket
# Line 7677  Options: extended Line 7824  Options: extended
7824  First char = 'x'  First char = 'x'
7825  Need char = 'z'  Need char = 'z'
7826    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7827  /(a|)*\d/  /(a|)*\d/
7828    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7829  No match  No match
# Line 7997  No match Line 8141  No match
8141          Alt          Alt
8142          c          c
8143          Ket          Ket
         Once  
8144          Recurse          Recurse
8145          Ket          Ket
         Ket  
8146          End          End
8147  ------------------------------------------------------------------  ------------------------------------------------------------------
8148      abc      abc
# Line 8011  No match Line 8153  No match
8153  ------------------------------------------------------------------  ------------------------------------------------------------------
8154          Bra          Bra
8155          xy          xy
         Once  
8156          Recurse          Recurse
         Ket  
8157          CBra 1          CBra 1
8158          abc          abc
8159          Ket          Ket
# Line 8243  Failed: syntax error in subpattern name Line 8383  Failed: syntax error in subpattern name
8383   3: <unset>   3: <unset>
8384   4: x   4: x
8385    
 /[\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  
 ------------------------------------------------------------------  
   
8386  /\H++X/BZ  /\H++X/BZ
8387  ------------------------------------------------------------------  ------------------------------------------------------------------
8388          Bra          Bra
# Line 8494  No match Line 8574  No match
8574  ------------------------------------------------------------------  ------------------------------------------------------------------
8575    
8576  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8577  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8578   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8579    
8580  /[\E]AAA/  /[\E]AAA/
# Line 8667  No match Line 8747  No match
8747  +13   ^  ^      (*FAIL)  +13   ^  ^      (*FAIL)
8748  No match  No match
8749    
 /a(*PRUNE:XXX)b/  
 Failed: (*VERB) with an argument is not supported at offset 8  
   
8750  /a(*MARK)b/  /a(*MARK)b/
8751  Failed: (*VERB) not recognized at offset 7  Failed: (*MARK) must have an argument at offset 7
8752    
8753  /(?i:A{1,}\6666666666)/  /(?i:A{1,}\6666666666)/
8754  Failed: number is too big at offset 19  Failed: number is too big at offset 19
# Line 8679  Failed: number is too big at offset 19 Line 8756  Failed: number is too big at offset 19
8756  /\g6666666666/  /\g6666666666/
8757  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8758    
8759  /[\g6666666666]/  /[\g6666666666]/BZ
8760  Failed: number is too big at offset 12  ------------------------------------------------------------------
8761            Bra
8762            [6g]
8763            Ket
8764            End
8765    ------------------------------------------------------------------
8766    
8767  /(?1)\c[/  /(?1)\c[/
8768  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 8760  No match Line 8842  No match
8842  No match  No match
8843      a\x85b      a\x85b
8844  No match  No match
8845    
8846    /(*ANY).*/g
8847        abc\r\ndef
8848     0: abc
8849     0:
8850     0: def
8851     0:
8852    
8853    /(*ANYCRLF).*/g
8854        abc\r\ndef
8855     0: abc
8856     0:
8857     0: def
8858     0:
8859    
8860    /(*CRLF).*/g
8861        abc\r\ndef
8862     0: abc
8863     0:
8864     0: def
8865     0:
8866    
8867  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
8868  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 8965  Failed: subpattern name expected at offs Line 9068  Failed: subpattern name expected at offs
9068  /\k{}/  /\k{}/
9069  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9070    
9071    /\k/
9072    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9073    
9074    /\kabc/
9075    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9076    
9077  /(?P=)/  /(?P=)/
9078  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9079    
# Line 9186  No options Line 9295  No options
9295  First char at start or follows newline  First char at start or follows newline
9296  No need char  No need char
9297    
 /a?|b?/P  
     abc  
  0: a  
     ** Failers  
  0:  
     ddd\N  
 No match: POSIX code 17: match failed  
   
9298  /xyz/C  /xyz/C
9299    xyz    xyz
9300  --->xyz  --->xyz
# Line 9246  No match Line 9347  No match
9347   +0        ^     x   +0        ^     x
9348   +0         ^    x   +0         ^    x
9349  No match  No match
9350    
9351    /(*NO_START_OPT)xyz/C
9352      abcxyz
9353    --->abcxyz
9354    +15 ^          x
9355    +15  ^         x
9356    +15   ^        x
9357    +15    ^       x
9358    +16    ^^      y
9359    +17    ^ ^     z
9360    +18    ^  ^
9361     0: xyz
9362    
9363    /xyz/CY
9364      abcxyz
9365    --->abcxyz
9366     +0 ^          x
9367     +0  ^         x
9368     +0   ^        x
9369     +0    ^       x
9370     +1    ^^      y
9371     +2    ^ ^     z
9372     +3    ^  ^
9373     0: xyz
9374    
9375  /^"((?(?=[a])[^"])|b)*"$/C  /^"((?(?=[a])[^"])|b)*"$/C
9376      "ab"      "ab"
# Line 9564  Partial match: the cat Line 9689  Partial match: the cat
9689     abc\P\P     abc\P\P
9690   0: abc   0: abc
9691    
 /\w+A/P  
    CDAAAAB  
  0: CDAAAA  
   
 /\w+A/PU  
    CDAAAAB  
  0: CDA  
   
9692  /abc\K123/  /abc\K123/
9693      xyzabc123pqr      xyzabc123pqr
9694   0: 123   0: 123
# Line 9599  Partial match: +ab Line 9716  Partial match: +ab
9716  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9717  ------------------------------------------------------------------  ------------------------------------------------------------------
9718          Bra          Bra
         Once  
9719          Recurse          Recurse
         Ket  
         Once  
9720          Recurse          Recurse
         Ket  
9721          Cond          Cond
9722          Cond def          Cond def
9723          CBra 1          CBra 1
# Line 9625  Partial match: +ab Line 9738  Partial match: +ab
9738  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9739  ------------------------------------------------------------------  ------------------------------------------------------------------
9740          Bra          Bra
         Once  
9741          Recurse          Recurse
         Ket  
         Once  
9742          Recurse          Recurse
         Ket  
9743          Cond          Cond
9744          Cond def          Cond def
9745          CBra 1          CBra 1
# Line 9972  Need char = ':' Line 10081  Need char = ':'
10081  Subject length lower bound = 22  Subject length lower bound = 22
10082  No set of starting bytes  No set of starting bytes
10083    
 /  (?: [\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  
   
10084  /<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
10085  Capturing subpattern count = 11  Capturing subpattern count = 11
10086  Options: caseless dotall  Options: caseless dotall
# Line 10371  No match Line 10276  No match
10276          Cond nrecurse 1          Cond nrecurse 1
10277          $          $
10278          Alt          Alt
         Once  
10279          Recurse          Recurse
10280          Ket          Ket
10281          Ket          Ket
10282          Ket          Ket
         Ket  
10283          End          End
10284  ------------------------------------------------------------------  ------------------------------------------------------------------
10285  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 10432  Partial match: abca Line 10335  Partial match: abca
10335      xxxxabcde\P\P      xxxxabcde\P\P
10336  Partial match: abcde  Partial match: abcde
10337    
10338  /-- This is not in the Perl 5.10 test because Perl seems currently to be broken  /-- This is not in the Perl >= 5.10 test because Perl seems currently to be
10339      and not behaving as specified in that it *does* bumpalong after hitting      broken and not behaving as specified in that it *does* bumpalong after
10340      (*COMMIT). --/      hitting (*COMMIT). --/
10341    
10342  /(?1)(A(*COMMIT)|B)D/  /(?1)(A(*COMMIT)|B)D/
10343      ABD      ABD
# Line 10514  Starting byte set: i Line 10417  Starting byte set: i
10417  /(?i)a(?-i)b|c/BZ  /(?i)a(?-i)b|c/BZ
10418  ------------------------------------------------------------------  ------------------------------------------------------------------
10419          Bra          Bra
10420       NC a       /i a
      00 Opt  
10421          b          b
10422          Alt          Alt
      00 Opt  
10423          c          c
10424          Ket          Ket
10425          End          End
# Line 10537  No match Line 10438  No match
10438  /(?i)a(?s)b|c/BZ  /(?i)a(?s)b|c/BZ
10439  ------------------------------------------------------------------  ------------------------------------------------------------------
10440          Bra          Bra
10441       NC a       /i ab
      05 Opt  
      NC b  
10442          Alt          Alt
10443       05 Opt       /i c
      NC c  
10444          Ket          Ket
10445          End          End
10446  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10550  No match Line 10448  No match
10448  /(?i)a(?s-i)b|c/BZ  /(?i)a(?s-i)b|c/BZ
10449  ------------------------------------------------------------------  ------------------------------------------------------------------
10450          Bra          Bra
10451       NC a       /i a
      04 Opt  
10452          b          b
10453          Alt          Alt
      04 Opt  
10454          c          c
10455          Ket          Ket
10456          End          End
# Line 10601  No match Line 10497  No match
10497  ------------------------------------------------------------------  ------------------------------------------------------------------
10498          Bra          Bra
10499          ^          ^
10500          Once          Braposzero
10501          Brazero          SBraPos
         Once  
10502          Recurse          Recurse
10503          KetRmax          KetRpos
         Ket  
10504          Cond          Cond
10505          Cond def          Cond def
10506          CBra 1          CBra 1
# Line 10637  No match Line 10531  No match
10531          End          End
10532  ------------------------------------------------------------------  ------------------------------------------------------------------
10533    
10534  / -- The first four of these are not in the Perl 5.10 test because Perl  / -- The first four of these are not in the Perl >= 5.10 test because Perl
10535       documents that the use of \K in assertions is "not well defined". The       documents that the use of \K in assertions is "not well defined". The
10536       last is here because Perl gives the match as "b" rather than "ab". I       last is here because Perl gives the match as "b" rather than "ab". I
10537       believe this to be a Perl bug. --/       believe this to be a Perl bug. --/
# Line 10665  No match Line 10559  No match
10559    
10560  /----------------------/  /----------------------/
10561    
10562    /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10563    Failed: recursive call could loop indefinitely at offset 31
10564    
10565    /abc(*MARK:)pqr/
10566    Failed: (*MARK) must have an argument at offset 10
10567    
10568    /abc(*:)pqr/
10569    Failed: (*MARK) must have an argument at offset 6
10570    
10571    /abc(*FAIL:123)xyz/
10572    Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10573    
10574    /--- This should, and does, fail. In Perl, it does not, which I think is a
10575         bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10576    
10577    /A(*COMMIT)B/+K
10578        ACABX
10579    No match
10580    
10581    /--- These should be different, but in Perl 5.11 are not, which I think
10582         is a bug in Perl. ---/
10583    
10584    /A(*THEN)B|A(*THEN)C/K
10585        AC
10586     0: AC
10587    
10588    /A(*PRUNE)B|A(*PRUNE)C/K
10589        AC
10590    No match
10591    
10592    /--- This should fail; the SKIP advances by one, but when we get to AC, the
10593         PRUNE kills it. Perl behaves differently. ---/
10594    
10595    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
10596        AAAC
10597    No match, mark = A
10598    
10599    /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10600    though PCRE does. ---/
10601    
10602    /^A(*:A)B|^X(*:A)Y/K
10603        ** Failers
10604    No match
10605        XAQQ
10606    No match, mark = A
10607    
10608    /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10609    optimizations defeat this. So does the PCRE optimization unless we disable it
10610    with \Y. ---/
10611    
10612    /(*COMMIT)ABC/
10613        ABCDEFG
10614     0: ABC
10615        ** Failers
10616    No match
10617        DEFGABC\Y
10618    No match
10619    
10620    /^(ab (c+(*THEN)cd) | xyz)/x
10621        abcccd
10622    No match
10623    
10624    /^(ab (c+(*PRUNE)cd) | xyz)/x
10625        abcccd
10626    No match
10627    
10628    /^(ab (c+(*FAIL)cd) | xyz)/x
10629        abcccd
10630    No match
10631    
10632    /--- Perl 5.11 gets some of these wrong ---/
10633    
10634    /(?>.(*ACCEPT))*?5/
10635        abcde
10636     0: a
10637    
10638    /(.(*ACCEPT))*?5/
10639        abcde
10640     0: a
10641     1: a
10642    
10643    /(.(*ACCEPT))5/
10644        abcde
10645     0: a
10646     1: a
10647    
10648    /(.(*ACCEPT))*5/
10649        abcde
10650     0: a
10651     1: a
10652    
10653    /A\NB./BZ
10654    ------------------------------------------------------------------
10655            Bra
10656            A
10657            Any
10658            B
10659            Any
10660            Ket
10661            End
10662    ------------------------------------------------------------------
10663        ACBD
10664     0: ACBD
10665        *** Failers
10666    No match
10667        A\nB
10668    No match
10669        ACB\n
10670    No match
10671    
10672    /A\NB./sBZ
10673    ------------------------------------------------------------------
10674            Bra
10675            A
10676            Any
10677            B
10678            AllAny
10679            Ket
10680            End
10681    ------------------------------------------------------------------
10682        ACBD
10683     0: ACBD
10684        ACB\n
10685     0: ACB\x0a
10686        *** Failers
10687    No match
10688        A\nB
10689    No match
10690    
10691    /A\NB/<crlf>
10692        A\nB
10693     0: A\x0aB
10694        A\rB
10695     0: A\x0dB
10696        ** Failers
10697    No match
10698        A\r\nB
10699    No match
10700    
10701    /\R+b/BZ
10702    ------------------------------------------------------------------
10703            Bra
10704            \R++
10705            b
10706            Ket
10707            End
10708    ------------------------------------------------------------------
10709    
10710    /\R+\n/BZ
10711    ------------------------------------------------------------------
10712            Bra
10713            \R+
10714            \x0a
10715            Ket
10716            End
10717    ------------------------------------------------------------------
10718    
10719    /\R+\d/BZ
10720    ------------------------------------------------------------------
10721            Bra
10722            \R++
10723            \d
10724            Ket
10725            End
10726    ------------------------------------------------------------------
10727    
10728    /\d*\R/BZ
10729    ------------------------------------------------------------------
10730            Bra
10731            \d*+
10732            \R
10733            Ket
10734            End
10735    ------------------------------------------------------------------
10736    
10737    /\s*\R/BZ
10738    ------------------------------------------------------------------
10739            Bra
10740            \s*+
10741            \R
10742            Ket
10743            End
10744    ------------------------------------------------------------------
10745    
10746    /-- Perl treats this one differently, not failing the second string. I believe
10747        that is a bug in Perl. --/
10748    
10749    /^((abc|abcx)(*THEN)y|abcd)/
10750        abcd
10751     0: abcd
10752     1: abcd
10753        *** Failers
10754    No match
10755        abcxy
10756    No match
10757    
10758    /(?<=abc)def/
10759        abc\P\P
10760    Partial match: abc
10761    
10762    /abc$/
10763        abc
10764     0: abc
10765        abc\P
10766     0: abc
10767        abc\P\P
10768    Partial match: abc
10769    
10770    /abc$/m
10771        abc
10772     0: abc
10773        abc\n
10774     0: abc
10775        abc\P\P
10776    Partial match: abc
10777        abc\n\P\P
10778     0: abc
10779        abc\P
10780     0: abc
10781        abc\n\P
10782     0: abc
10783    
10784    /abc\z/
10785        abc
10786     0: abc
10787        abc\P
10788     0: abc
10789        abc\P\P
10790    Partial match: abc
10791    
10792    /abc\Z/
10793        abc
10794     0: abc
10795        abc\P
10796     0: abc
10797        abc\P\P
10798    Partial match: abc
10799    
10800    /abc\b/
10801        abc
10802     0: abc
10803        abc\P
10804     0: abc
10805        abc\P\P
10806    Partial match: abc
10807    
10808    /abc\B/
10809        abc
10810    No match
10811        abc\P
10812    Partial match: abc
10813        abc\P\P
10814    Partial match: abc
10815    
10816    /.+/
10817        abc\>0
10818     0: abc
10819        abc\>1
10820     0: bc
10821        abc\>2
10822     0: c
10823        abc\>3
10824    No match
10825        abc\>4
10826    Error -24 (bad offset value)
10827        abc\>-4
10828    Error -24 (bad offset value)
10829    
10830    /^\cģ/
10831    Failed: \c must be followed by an ASCII character at offset 3
10832    
10833    /(?P<abn>(?P=abn)xxx)/BZ
10834    ------------------------------------------------------------------
10835            Bra
10836            Once
10837            CBra 1
10838            \1
10839            xxx
10840            Ket
10841            Ket
10842            Ket
10843            End
10844    ------------------------------------------------------------------
10845    
10846    /(a\1z)/BZ
10847    ------------------------------------------------------------------
10848            Bra
10849            Once
10850            CBra 1
10851            a
10852            \1
10853            z
10854            Ket
10855            Ket
10856            Ket
10857            End
10858    ------------------------------------------------------------------
10859    
10860    /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
10861    Failed: syntax error in subpattern name (missing terminator) at offset 29
10862    
10863    /(?P<abn>(?P=axn)xxx)/BZ
10864    Failed: reference to non-existent subpattern at offset 15
10865    
10866    /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
10867    ------------------------------------------------------------------
10868            Bra
10869            CBra 1
10870            \2
10871            xxx
10872            Ket
10873            CBra 2
10874            yy
10875            Ket
10876            Ket
10877            End
10878    ------------------------------------------------------------------
10879    
10880    /-- These tests are here because Perl gets the first one wrong. --/
10881    
10882    /(\R*)(.)/s
10883        \r\n
10884     0: \x0d
10885     1:
10886     2: \x0d
10887        \r\r\n\n\r
10888     0: \x0d\x0d\x0a\x0a\x0d
10889     1: \x0d\x0d\x0a\x0a
10890     2: \x0d
10891        \r\r\n\n\r\n
10892     0: \x0d\x0d\x0a\x0a\x0d
10893     1: \x0d\x0d\x0a\x0a
10894     2: \x0d
10895    
10896    /(\R)*(.)/s
10897        \r\n
10898     0: \x0d
10899     1: <unset>
10900     2: \x0d
10901        \r\r\n\n\r
10902     0: \x0d\x0d\x0a\x0a\x0d
10903     1: \x0a
10904     2: \x0d
10905        \r\r\n\n\r\n
10906     0: \x0d\x0d\x0a\x0a\x0d
10907     1: \x0a
10908     2: \x0d
10909    
10910    /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
10911        \r\n
10912     0: \x0d
10913     1:
10914     2: \x0d
10915        \r\r\n\n\r
10916     0: \x0d\x0d\x0a\x0a\x0d
10917     1: \x0d\x0d\x0a\x0a
10918     2: \x0d
10919        \r\r\n\n\r\n
10920     0: \x0d\x0d\x0a\x0a\x0d
10921     1: \x0d\x0d\x0a\x0a
10922     2: \x0d
10923    
10924    /-- --/
10925    
10926    /^abc$/BZ
10927    ------------------------------------------------------------------
10928            Bra
10929            ^
10930            abc
10931            $
10932            Ket
10933            End
10934    ------------------------------------------------------------------
10935    
10936    /^abc$/BZm
10937    ------------------------------------------------------------------
10938            Bra
10939         /m ^
10940            abc
10941         /m $
10942            Ket
10943            End
10944    ------------------------------------------------------------------
10945    
10946    /^(a)*+(\w)/S
10947        aaaaX
10948     0: aaaaX
10949     1: a
10950     2: X
10951        ** Failers
10952    No match
10953        aaaa
10954    No match
10955    
10956    /^(?:a)*+(\w)/S
10957        aaaaX
10958     0: aaaaX
10959     1: X
10960        ** Failers
10961    No match
10962        aaaa
10963    No match
10964    
10965    /(a)++1234/SDZ
10966    ------------------------------------------------------------------
10967            Bra
10968            CBraPos 1
10969            a
10970            KetRpos
10971            1234
10972            Ket
10973            End
10974    ------------------------------------------------------------------
10975    Capturing subpattern count = 1
10976    No options
10977    First char = 'a'
10978    Need char = '4'
10979    Subject length lower bound = 5
10980    No set of starting bytes
10981    
10982    /([abc])++1234/SI
10983    Capturing subpattern count = 1
10984    No options
10985    No first char
10986    Need char = '4'
10987    Subject length lower bound = 5
10988    Starting byte set: a b c
10989    
10990    /(?<=(abc)+)X/
10991    Failed: lookbehind assertion is not fixed length at offset 10
10992    
10993    /(^ab)/I
10994    Capturing subpattern count = 1
10995    Options: anchored
10996    No first char
10997    No need char
10998    
10999    /(^ab)++/I
11000    Capturing subpattern count = 1
11001    Options: anchored
11002    No first char
11003    No need char
11004    
11005    /(^ab|^)+/I
11006    Capturing subpattern count = 1
11007    Options: anchored
11008    No first char
11009    No need char
11010    
11011    /(^ab|^)++/I
11012    Capturing subpattern count = 1
11013    Options: anchored
11014    No first char
11015    No need char
11016    
11017    /(?:^ab)/I
11018    Capturing subpattern count = 0
11019    Options: anchored
11020    No first char
11021    No need char
11022    
11023    /(?:^ab)++/I
11024    Capturing subpattern count = 0
11025    Options: anchored
11026    No first char
11027    No need char
11028    
11029    /(?:^ab|^)+/I
11030    Capturing subpattern count = 0
11031    Options: anchored
11032    No first char
11033    No need char
11034    
11035    /(?:^ab|^)++/I
11036    Capturing subpattern count = 0
11037    Options: anchored
11038    No first char
11039    No need char
11040    
11041    /(.*ab)/I
11042    Capturing subpattern count = 1
11043    No options
11044    First char at start or follows newline
11045    Need char = 'b'
11046    
11047    /(.*ab)++/I
11048    Capturing subpattern count = 1
11049    No options
11050    First char at start or follows newline
11051    Need char = 'b'
11052    
11053    /(.*ab|.*)+/I
11054    Capturing subpattern count = 1
11055    No options
11056    First char at start or follows newline
11057    No need char
11058    
11059    /(.*ab|.*)++/I
11060    Capturing subpattern count = 1
11061    No options
11062    First char at start or follows newline
11063    No need char
11064    
11065    /(?:.*ab)/I
11066    Capturing subpattern count = 0
11067    No options
11068    First char at start or follows newline
11069    Need char = 'b'
11070    
11071    /(?:.*ab)++/I
11072    Capturing subpattern count = 0
11073    No options
11074    First char at start or follows newline
11075    Need char = 'b'
11076    
11077    /(?:.*ab|.*)+/I
11078    Capturing subpattern count = 0
11079    No options
11080    First char at start or follows newline
11081    No need char
11082    
11083    /(?:.*ab|.*)++/I
11084    Capturing subpattern count = 0
11085    No options
11086    First char at start or follows newline
11087    No need char
11088    
11089    /(?=a)[bcd]/I
11090    Capturing subpattern count = 0
11091    No options
11092    First char = 'a'
11093    No need char
11094    
11095    /((?=a))[bcd]/I
11096    Capturing subpattern count = 1
11097    No options
11098    First char = 'a'
11099    No need char
11100    
11101    /((?=a))+[bcd]/I
11102    Capturing subpattern count = 1
11103    No options
11104    First char = 'a'
11105    No need char
11106    
11107    /((?=a))++[bcd]/I
11108    Capturing subpattern count = 1
11109    No options
11110    First char = 'a'
11111    No need char
11112    
11113    /(?=a+)[bcd]/iI
11114    Capturing subpattern count = 0
11115    Options: caseless
11116    First char = 'a' (caseless)
11117    No need char
11118    
11119    /(?=a+?)[bcd]/iI
11120    Capturing subpattern count = 0
11121    Options: caseless
11122    First char = 'a' (caseless)
11123    No need char
11124    
11125    /(?=a++)[bcd]/iI
11126    Capturing subpattern count = 0
11127    Options: caseless
11128    First char = 'a' (caseless)
11129    No need char
11130    
11131    /(?=a{3})[bcd]/iI
11132    Capturing subpattern count = 0
11133    Options: caseless
11134    First char = 'a' (caseless)
11135    Need char = 'a' (caseless)
11136    
11137    /(abc)\1+/S
11138    
11139    /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11140    
11141    /(?1)(?:(b(*ACCEPT))){0}/
11142        b
11143     0: b
11144    
11145    /(?1)(?:(b(*ACCEPT))){0}c/
11146        bc
11147     0: bc
11148        ** Failers
11149    No match
11150        b
11151    No match
11152    
11153    /(?1)(?:((*ACCEPT))){0}c/
11154        c
11155     0: c
11156        c\N
11157     0: c
11158    
11159    /^.*?(?(?=a)a|b(*THEN)c)/
11160        ba
11161    No match
11162    
11163    /^.*?(?(?=a)a|bc)/
11164        ba
11165     0: ba
11166    
11167    /^.*?(?(?=a)a(*THEN)b|c)/
11168        ac
11169    No match
11170    
11171    /^.*?(?(?=a)a(*THEN)b)c/
11172        ac
11173    No match
11174    
11175    /^.*?(a(*THEN)b)c/
11176        aabc
11177    No match
11178    
11179    /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11180        aabc
11181     0: aabc
11182    
11183    /^.*?(a(*THEN)b|z)c/
11184        aabc
11185     0: aabc
11186     1: ab
11187    
11188    /^.*?(z|a(*THEN)b)c/
11189        aabc
11190     0: aabc
11191     1: ab
11192    
11193    /-- --/
11194    
11195    /-- These studied versions are here because they are not Perl-compatible; the
11196        studying means the mark is not seen. --/
11197    
11198    /(*MARK:A)(*SKIP:B)(C|X)/KS
11199        C
11200     0: C
11201     1: C
11202    MK: A
11203        D
11204    No match, mark = A
11205    
11206    /(*:A)A+(*SKIP:A)(B|Z)/KS
11207        AAAC
11208    No match, mark = A
11209    
11210    /-- --/
11211    
11212    "(?=a*(*ACCEPT)b)c"
11213        c
11214     0: c
11215        c\N
11216     0: c
11217    
11218    /(?1)c(?(DEFINE)((*ACCEPT)b))/
11219        c
11220     0: c
11221        c\N
11222     0: c
11223    
11224    /(?>(*ACCEPT)b)c/
11225        c
11226     0:
11227        c\N
11228    No match
11229    
11230    /(?:(?>(a)))+a%/++
11231        %aa%
11232     0: aa%
11233     0+
11234     1: a
11235     1+ a%
11236    
11237    /(a)b|ac/++SS
11238        ac\O3
11239    Matched, but too many substrings
11240     0: ac
11241     0+
11242    
11243    /(a)(b)x|abc/++
11244         abc\O6
11245     0: abc
11246     0+
11247    
11248    /(a)bc|(a)(b)\2/
11249        \O3abc
11250    Matched, but too many substrings
11251     0: abc
11252        \O4abc
11253    Matched, but too many substrings
11254     0: abc
11255    
11256    /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11257    Capturing subpattern count = 2
11258    No options
11259    No first char
11260    No need char
11261    Subject length lower bound = 1
11262    No set of starting bytes
11263    
11264    /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11265    Capturing subpattern count = 2
11266    No options
11267    No first char
11268    No need char
11269    Subject length lower bound = 3
11270    Starting byte set: a b
11271    
11272    /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11273    Capturing subpattern count = 2
11274    No options
11275    No first char
11276    No need char
11277    Subject length lower bound = 4
11278    Starting byte set: a b
11279    
11280    /(abc)(?1)/SI
11281    Capturing subpattern count = 1
11282    No options
11283    First char = 'a'
11284    Need char = 'c'
11285    Subject length lower bound = 6
11286    No set of starting bytes
11287    
11288    /^(?>a)++/
11289        aa\M
11290    Minimum match() limit = 5
11291    Minimum match() recursion limit = 2
11292     0: aa
11293        aaaaaaaaa\M
11294    Minimum match() limit = 12
11295    Minimum match() recursion limit = 2
11296     0: aaaaaaaaa
11297    
11298    /(a)(?1)++/
11299        aa\M
11300    Minimum match() limit = 7
11301    Minimum match() recursion limit = 4
11302     0: aa
11303     1: a
11304        aaaaaaaaa\M
11305    Minimum match() limit = 21
11306    Minimum match() recursion limit = 4
11307     0: aaaaaaaaa
11308     1: a
11309    
11310    /(?:(foo)|(bar)|(baz))X/SS=
11311        bazfooX
11312     0: fooX
11313     1: foo
11314     2: <unset>
11315     3: <unset>
11316        foobazbarX
11317     0: barX
11318     1: <unset>
11319     2: bar
11320     3: <unset>
11321        barfooX
11322     0: fooX
11323     1: foo
11324     2: <unset>
11325     3: <unset>
11326        bazX
11327     0: bazX
11328     1: <unset>
11329     2: <unset>
11330     3: baz
11331        foobarbazX
11332     0: bazX
11333     1: <unset>
11334     2: <unset>
11335     3: baz
11336        bazfooX\O0
11337    Matched, but too many substrings
11338        bazfooX\O2
11339    Matched, but too many substrings
11340     0: fooX
11341        bazfooX\O4
11342    Matched, but too many substrings
11343     0: fooX
11344     1: <unset>
11345        bazfooX\O6
11346    Matched, but too many substrings
11347     0: fooX
11348     1: foo
11349     2: <unset>
11350        bazfooX\O8
11351    Matched, but too many substrings
11352     0: fooX
11353     1: foo
11354     2: <unset>
11355     3: <unset>
11356        bazfooX\O10
11357     0: fooX
11358     1: foo
11359     2: <unset>
11360     3: <unset>
11361    
11362    /(?=abc){3}abc/BZ
11363    ------------------------------------------------------------------
11364            Bra
11365            Assert
11366            abc
11367            Ket
11368            abc
11369            Ket
11370            End
11371    ------------------------------------------------------------------
11372    
11373    /(?=abc)+abc/BZ
11374    ------------------------------------------------------------------
11375            Bra
11376            Assert
11377            abc
11378            Ket
11379            abc
11380            Ket
11381            End
11382    ------------------------------------------------------------------
11383    
11384    /(?=abc)++abc/BZ
11385    ------------------------------------------------------------------
11386            Bra
11387            Assert
11388            abc
11389            Ket
11390            abc
11391            Ket
11392            End
11393    ------------------------------------------------------------------
11394    
11395    /(?=abc){0}xyz/BZ
11396    ------------------------------------------------------------------
11397            Bra
11398            Skip zero
11399            Assert
11400            abc
11401            Ket
11402            xyz
11403            Ket
11404            End
11405    ------------------------------------------------------------------
11406    
11407    /(?=(a))?./BZ
11408    ------------------------------------------------------------------
11409            Bra
11410            Brazero
11411            Assert
11412            CBra 1
11413            a
11414            Ket
11415            Ket
11416            Any
11417            Ket
11418            End
11419    ------------------------------------------------------------------
11420    
11421    /(?=(a))??./BZ
11422    ------------------------------------------------------------------
11423            Bra
11424            Braminzero
11425            Assert
11426            CBra 1
11427            a
11428            Ket
11429            Ket
11430            Any
11431            Ket
11432            End
11433    ------------------------------------------------------------------
11434    
11435    /^(?=(a)){0}b(?1)/BZ
11436    ------------------------------------------------------------------
11437            Bra
11438            ^
11439            Skip zero
11440            Assert
11441            CBra 1
11442            a
11443            Ket
11444            Ket
11445            b
11446            Recurse
11447            Ket
11448            End
11449    ------------------------------------------------------------------
11450    
11451    /(?(DEFINE)(a))?b(?1)/BZ
11452    ------------------------------------------------------------------
11453            Bra
11454            Cond
11455            Cond def
11456            CBra 1
11457            a
11458            Ket
11459            Ket
11460            b
11461            Recurse
11462            Ket
11463            End
11464    ------------------------------------------------------------------
11465    
11466    /^(?=(?1))?[az]([abc])d/BZ
11467    ------------------------------------------------------------------
11468            Bra
11469            ^
11470            Brazero
11471            Assert
11472            Recurse
11473            Ket
11474            [az]
11475            CBra 1
11476            [a-c]
11477            Ket
11478            d
11479            Ket
11480            End
11481    ------------------------------------------------------------------
11482    
11483    /^(?!a){0}\w+/BZ
11484    ------------------------------------------------------------------
11485            Bra
11486            ^
11487            Skip zero
11488            Assert not
11489            a
11490            Ket
11491            \w+
11492            Ket
11493            End
11494    ------------------------------------------------------------------
11495    
11496    /(?<=(abc))?xyz/BZ
11497    ------------------------------------------------------------------
11498            Bra
11499            Brazero
11500            AssertB
11501            Reverse
11502            CBra 1
11503            abc
11504            Ket
11505            Ket
11506            xyz
11507            Ket
11508            End
11509    ------------------------------------------------------------------
11510    
11511    /[:a[:abc]b:]/BZ
11512    ------------------------------------------------------------------
11513            Bra
11514            [:[a-c]
11515            b:]
11516            Ket
11517            End
11518    ------------------------------------------------------------------
11519    
11520    /((?2))((?1))/SS
11521        abc
11522    Error -26 (nested recursion at the same subject position)
11523    
11524    /((?(R2)a+|(?1)b))/SS
11525        aaaabcde
11526    Error -26 (nested recursion at the same subject position)
11527    
11528    /(?(R)a*(?1)|((?R))b)/SS
11529        aaaabcde
11530    Error -26 (nested recursion at the same subject position)
11531    
11532    /(a+|(?R)b)/
11533    Failed: recursive call could loop indefinitely at offset 7
11534    
11535    /^(a(*:A)(d|e(*:B))z|aeq)/C
11536        adz
11537    --->adz
11538     +0 ^       ^
11539     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11540     +2 ^       a
11541     +3 ^^      (*:A)
11542     +8 ^^      (d|e(*:B))
11543    Latest Mark: A
11544     +9 ^^      d
11545    +10 ^ ^     |
11546    +18 ^ ^     z
11547    +19 ^  ^    |
11548    +24 ^  ^
11549     0: adz
11550     1: adz
11551     2: d
11552        aez
11553    --->aez
11554     +0 ^       ^
11555     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11556     +2 ^       a
11557     +3 ^^      (*:A)
11558     +8 ^^      (d|e(*:B))
11559    Latest Mark: A
11560     +9 ^^      d
11561    +11 ^^      e
11562    +12 ^ ^     (*:B)
11563    +17 ^ ^     )
11564    Latest Mark: B
11565    +18 ^ ^     z
11566    +19 ^  ^    |
11567    +24 ^  ^
11568     0: aez
11569     1: aez
11570     2: e
11571        aeqwerty
11572    --->aeqwerty
11573     +0 ^            ^
11574     +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11575     +2 ^            a
11576     +3 ^^           (*:A)
11577     +8 ^^           (d|e(*:B))
11578    Latest Mark: A
11579     +9 ^^           d
11580    +11 ^^           e
11581    +12 ^ ^          (*:B)
11582    +17 ^ ^          )
11583    Latest Mark: B
11584    +18 ^ ^          z
11585    +20 ^            a
11586    +21 ^^           e
11587    +22 ^ ^          q
11588    +23 ^  ^         )
11589    +24 ^  ^
11590     0: aeq
11591     1: aeq
11592    
11593    /.(*F)/
11594        \P\Pabc
11595    No match
11596    
11597    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11598    Capturing subpattern count = 0
11599    No options
11600    First char = 't'
11601    Need char = 't'
11602    Subject length lower bound = 18
11603    No set of starting bytes
11604    
11605    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11606    Capturing subpattern count = 0
11607    No options
11608    No first char
11609    No need char
11610    Subject length lower bound = 8
11611    Starting byte set: < o t u
11612    
11613    /a(*SKIP)c|b(*ACCEPT)|/+SI
11614    Capturing subpattern count = 0
11615    No options
11616    No first char
11617    No need char
11618    Study returned NULL
11619        a
11620     0:
11621     0+
11622    
11623    /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11624    Capturing subpattern count = 0
11625    No options
11626    No first char
11627    No need char
11628    Subject length lower bound = -1
11629    Starting byte set: a b x
11630        ax
11631     0: x
11632    
11633    'a*(*ACCEPT)b'+
11634        \N\N
11635    No match
11636        abc\N\N
11637     0: a
11638     0+ bc
11639        bbb\N\N
11640     0:
11641     0+ bb
11642    
11643    /(*ACCEPT)a/+I
11644    Capturing subpattern count = 0
11645    No options
11646    No first char
11647    No need char
11648        bax
11649     0:
11650     0+ bax
11651    
11652    /z(*ACCEPT)a/+I
11653    Capturing subpattern count = 0
11654    No options
11655    First char = 'z'
11656    No need char
11657        baxzbx
11658     0: z
11659     0+ bx
11660    
11661    /a(?:.)*?a/ims
11662        \Mabbbbbbbbbbbbbbbbbbbbba
11663    Minimum match() limit = 65
11664    Minimum match() recursion limit = 2
11665     0: abbbbbbbbbbbbbbbbbbbbba
11666    
11667    /a(?:.(*THEN))*?a/ims
11668        \Mabbbbbbbbbbbbbbbbbbbbba
11669    Minimum match() limit = 86
11670    Minimum match() recursion limit = 45
11671     0: abbbbbbbbbbbbbbbbbbbbba
11672    
11673    /a(?:.(*THEN:ABC))*?a/ims
11674        \Mabbbbbbbbbbbbbbbbbbbbba
11675    Minimum match() limit = 86
11676    Minimum match() recursion limit = 45
11677     0: abbbbbbbbbbbbbbbbbbbbba
11678    
11679    /-- These tests are in agreement with development Perl 5.015, which has fixed
11680        some things, but they don't all work with 5.012, so they aren't in the
11681        Perl-compatible tests. Those after the first come from Perl's own test
11682        files. --/
11683    
11684    /^((yes|no)(*THEN)(*F))?/
11685      yes
11686    No match
11687    
11688    /(A (.*)   C? (*THEN)  | A D) (*FAIL)/x
11689    AbcdCBefgBhiBqz
11690    No match
11691    
11692    /(A (.*)   C? (*THEN)  | A D) z/x
11693    AbcdCBefgBhiBqz
11694    No match
11695    
11696    /(A (.*)   C? (*THEN)  | A D) \s* (*FAIL)/x
11697    AbcdCBefgBhiBqz
11698    No match
11699    
11700    /(A (.*)   C? (*THEN)  | A D) \s* z/x
11701    AbcdCBefgBhiBqz
11702    No match
11703    
11704    /(A (.*)   (?:C|) (*THEN)  | A D) (*FAIL)/x
11705    AbcdCBefgBhiBqz
11706    No match
11707    
11708    /(A (.*)   (?:C|) (*THEN)  | A D) z/x
11709    AbcdCBefgBhiBqz
11710    No match
11711    
11712    /(A (.*)   C{0,6} (*THEN)  | A D) (*FAIL)/x
11713    AbcdCBefgBhiBqz
11714    No match
11715    
11716    /(A (.*)   C{0,6} (*THEN)  | A D) z/x
11717    AbcdCBefgBhiBqz
11718    No match
11719    
11720    /(A (.*)   (CE){0,6} (*THEN)  | A D) (*FAIL)/x
11721    AbcdCEBefgBhiBqz
11722    No match
11723    
11724    /(A (.*)   (CE){0,6} (*THEN)  | A D) z/x
11725    AbcdCEBefgBhiBqz
11726    No match
11727    
11728    /(A (.*)   (CE*){0,6} (*THEN)  | A D) (*FAIL)/x
11729    AbcdCBefgBhiBqz
11730    No match
11731    
11732    /(A (.*)   (CE*){0,6} (*THEN)  | A D) z/x
11733    AbcdCBefgBhiBqz
11734    No match
11735    
11736    /-----------------------------------------------/
11737    
11738    /^(?>a+)(?>(z+))\w/BZ
11739    ------------------------------------------------------------------
11740            Bra
11741            ^
11742            Once_NC
11743            a+
11744            Ket
11745            Once
11746            CBra 1
11747            z+
11748            Ket
11749            Ket
11750            \w
11751            Ket
11752            End
11753    ------------------------------------------------------------------
11754        aaaazzzzb
11755     0: aaaazzzzb
11756     1: zzzz
11757        ** Failers
11758    No match
11759        aazz
11760    No match
11761    
11762    /(.)(\1|a(?2))/
11763        bab
11764     0: bab
11765     1: b
11766     2: ab
11767    
11768    /\1|(.)(?R)\1/
11769        cbbbc
11770     0: cbbbc
11771     1: c
11772    
11773    /(.)((?(1)c|a)|a(?2))/
11774        baa
11775    No match
11776    
11777    /(?P<abn>(?P=abn)xxx)/BZ
11778    ------------------------------------------------------------------
11779            Bra
11780            Once
11781            CBra 1
11782            \1
11783            xxx
11784            Ket
11785            Ket
11786            Ket
11787            End
11788    ------------------------------------------------------------------
11789    
11790    /(a\1z)/BZ
11791    ------------------------------------------------------------------
11792            Bra
11793            Once
11794            CBra 1
11795            a
11796            \1
11797            z
11798            Ket
11799            Ket
11800            Ket
11801            End
11802    ------------------------------------------------------------------
11803    
11804    /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11805         \Maabbccddee
11806    Minimum match() limit = 12
11807    Minimum match() recursion limit = 3
11808     0: aabbccddee
11809    
11810    /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11811         \Maabbccddee
11812    Minimum match() limit = 22
11813    Minimum match() recursion limit = 21
11814     0: aabbccddee
11815     1: aa
11816     2: bb
11817     3: cc
11818     4: dd
11819     5: ee
11820    
11821    /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11822         \Maabbccddee
11823    Minimum match() limit = 18
11824    Minimum match() recursion limit = 13
11825     0: aabbccddee
11826     1: aa
11827     2: cc
11828     3: ee
11829    
11830    /^a\x41z/<JS>
11831        aAz
11832     0: aAz
11833        *** Failers
11834    No match
11835        ax41z
11836    No match
11837    
11838    /^a[m\x41]z/<JS>
11839        aAz
11840     0: aAz
11841    
11842    /^a\x1z/<JS>
11843        ax1z
11844     0: ax1z
11845    
11846    /^a\u0041z/<JS>
11847        aAz
11848     0: aAz
11849        *** Failers
11850    No match
11851        au0041z
11852    No match
11853    
11854    /^a[m\u0041]z/<JS>
11855        aAz
11856     0: aAz
11857    
11858    /^a\u041z/<JS>
11859        au041z
11860     0: au041z
11861        *** Failers
11862    No match
11863        aAz
11864    No match
11865    
11866    /^a\U0041z/<JS>
11867        aU0041z
11868     0: aU0041z
11869        *** Failers
11870    No match
11871        aAz
11872    No match
11873    
11874    /(?(?=c)c|d)++Y/BZ
11875    ------------------------------------------------------------------
11876            Bra
11877            BraPos
11878            Cond
11879            Assert
11880            c
11881            Ket
11882            c
11883            Alt
11884            d
11885            Ket
11886            KetRpos
11887            Y
11888            Ket
11889            End
11890    ------------------------------------------------------------------
11891    
11892    /(?(?=c)c|d)*+Y/BZ
11893    ------------------------------------------------------------------
11894            Bra
11895            Braposzero
11896            BraPos
11897            Cond
11898            Assert
11899            c
11900            Ket
11901            c
11902            Alt
11903            d
11904            Ket
11905            KetRpos
11906            Y
11907            Ket
11908            End
11909    ------------------------------------------------------------------
11910    
11911    /a[\NB]c/
11912    Failed: \N is not supported in a class at offset 3
11913    
11914    /a[B-\Nc]/
11915    Failed: \N is not supported in a class at offset 5
11916    
11917    /(a)(?2){0,1999}?(b)/
11918    
11919    /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
11920    
11921    /--- This test, with something more complicated than individual letters, causes
11922    different behaviour in Perl. Perhaps it disables some optimization; no tag is
11923    passed back for the failures, whereas in PCRE there is a tag. ---/
11924    
11925    /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
11926        AABC
11927     0: AB
11928     1: A
11929     2: B
11930    MK: A
11931        XXYZ
11932     0: XXY
11933     1: <unset>
11934     2: <unset>
11935     3: X
11936     4: X
11937     5: Y
11938    MK: B
11939        ** Failers
11940    No match
11941        XAQQ
11942    No match, mark = A
11943        XAQQXZZ
11944    No match, mark = A
11945        AXQQQ
11946    No match, mark = A
11947        AXXQQQ
11948    No match, mark = B
11949    
11950    /-- Perl doesn't give marks for these, though it does if the alternatives are
11951    replaced by single letters. --/
11952    
11953    /(b|q)(*:m)f|a(*:n)w/K
11954        aw
11955     0: aw
11956    MK: n
11957        ** Failers
11958    No match, mark = n
11959        abc
11960    No match, mark = m
11961    
11962    /(q|b)(*:m)f|a(*:n)w/K
11963        aw
11964     0: aw
11965    MK: n
11966        ** Failers
11967    No match, mark = n
11968        abc
11969    No match, mark = m
11970    
11971    /-- After a partial match, the behaviour is as for a failure. --/
11972    
11973    /^a(*:X)bcde/K
11974       abc\P
11975    Partial match, mark=X: abc
11976    
11977  /-- End of testinput2 --/  /-- End of testinput2 --/

Legend:
Removed from v.500  
changed lines
  Added in v.848

  ViewVC Help
Powered by ViewVC 1.1.5