/[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 472 by ph10, Fri Dec 11 16:42:50 2009 UTC revision 665 by ph10, Mon Aug 22 14:55:27 2011 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  /-- Originally, the Perl 5.10 things were in here too, but now I have separated  /-- Originally, the Perl >= 5.10 things were in here too, but now I have
9      many (most?) of them out into test 11. However, there may still be some      separated many (most?) of them out into test 11. However, there may still
10      that were overlooked. --/      be some that were overlooked. --/
11    
12  /(a)b|/I  /(a)b|/I
13  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 103  Failed: missing terminating ] for charac Line 103  Failed: missing terminating ] for charac
103  /(?X)[\B]/  /(?X)[\B]/
104  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
105    
106    /(?X)[\R]/
107    Failed: invalid escape sequence in character class at offset 6
108    
109    /(?X)[\X]/
110    Failed: invalid escape sequence in character class at offset 6
111    
112    /[\B]/BZ
113    ------------------------------------------------------------------
114            Bra
115            B
116            Ket
117            End
118    ------------------------------------------------------------------
119    
120    /[\R]/BZ
121    ------------------------------------------------------------------
122            Bra
123            R
124            Ket
125            End
126    ------------------------------------------------------------------
127    
128    /[\X]/BZ
129    ------------------------------------------------------------------
130            Bra
131            X
132            Ket
133            End
134    ------------------------------------------------------------------
135    
136  /[z-a]/  /[z-a]/
137  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
138    
# Line 602  Need char = 'h' (caseless) Line 632  Need char = 'h' (caseless)
632  ------------------------------------------------------------------  ------------------------------------------------------------------
633          Bra          Bra
634          CBra 1          CBra 1
635       01 Opt       /i b
      NC b  
636          Ket          Ket
      00 Opt  
637          Ket          Ket
638          End          End
639  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 857  No match Line 885  No match
885      a      a
886  No match  No match
887    
888  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/I  /This one is here because Perl behaves differently; see also the following/I
889  Capturing subpattern count = 0  Capturing subpattern count = 0
890  No options  No options
891  First char = 'T'  First char = 'T'
# Line 869  Max back reference = 1 Line 897  Max back reference = 1
897  Options: anchored  Options: anchored
898  No first char  No first char
899  No need char  No need char
900        aaaa
901    No match
902      aaaaaa      aaaaaa
903   0: aaaaaa  No match
904   1: aa  
905    /Perl does not fail these two for the final subjects. Neither did PCRE until/
906    /release 8.01. The problem is in backtracking into a subpattern that contains/
907    No match
908    /a recursive reference to itself. PCRE has now made these into atomic patterns./
909    No match
910    
911    /^(xa|=?\1a){2}$/
912        xa=xaa
913     0: xa=xaa
914     1: =xaa
915        ** Failers
916    No match
917        xa=xaaa
918    No match
919    
920    /^(xa|=?\1a)+$/
921        xa=xaa
922     0: xa=xaa
923     1: =xaa
924        ** Failers
925    No match
926        xa=xaaa
927    No match
928    
929  /These are syntax tests from Perl 5.005/I  /These are syntax tests from Perl 5.005/I
930  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 1192  No need char Line 1245  No need char
1245  ------------------------------------------------------------------  ------------------------------------------------------------------
1246          Bra          Bra
1247          Bra          Bra
      04 Opt  
1248          AllAny*          AllAny*
1249          X          X
1250          Alt          Alt
      04 Opt  
1251          ^          ^
1252          B          B
1253          Ket          Ket
      00 Opt  
1254          Ket          Ket
1255          End          End
1256  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2709  No need char Line 2759  No need char
2759  ------------------------------------------------------------------  ------------------------------------------------------------------
2760          Bra          Bra
2761          a          a
2762       01 Opt       /i b
      NC b  
2763          Ket          Ket
2764          End          End
2765  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2732  No match Line 2781  No match
2781          Bra          Bra
2782          CBra 1          CBra 1
2783          a          a
2784       01 Opt       /i b
      NC b  
2785          Ket          Ket
      00 Opt  
2786          Ket          Ket
2787          End          End
2788  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2757  No match Line 2804  No match
2804  /   (?i)abc/IxDZ  /   (?i)abc/IxDZ
2805  ------------------------------------------------------------------  ------------------------------------------------------------------
2806          Bra          Bra
2807       NC abc       /i abc
2808          Ket          Ket
2809          End          End
2810  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2770  Need char = 'c' (caseless) Line 2817  Need char = 'c' (caseless)
2817    (?i)abc/IxDZ    (?i)abc/IxDZ
2818  ------------------------------------------------------------------  ------------------------------------------------------------------
2819          Bra          Bra
2820       NC abc       /i abc
2821          Ket          Ket
2822          End          End
2823  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2943  No need char Line 2990  No need char
2990  /(x)*+/DZ  /(x)*+/DZ
2991  ------------------------------------------------------------------  ------------------------------------------------------------------
2992          Bra          Bra
2993          Once          Braposzero
2994          Brazero          CBraPos 1
         CBra 1  
2995          x          x
2996          KetRmax          KetRpos
         Ket  
2997          Ket          Ket
2998          End          End
2999  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3173  Failed: POSIX collating elements are not Line 3218  Failed: POSIX collating elements are not
3218  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
3219    
3220  /\l/I  /\l/I
3221  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
3222    
3223  /\L/I  /\L/I
3224  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
3225    
3226  /\N{name}/I  /\N{name}/I
3227  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
3228    
3229  /\u/I  /\u/I
3230  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
3231    
3232  /\U/I  /\U/I
3233  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
3234    
3235  /[/I  /[/I
3236  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 3535  Need char = 'f' Line 3580  Need char = 'f'
3580    1    ^    ^     f    1    ^    ^     f
3581   0: abcdef   0: abcdef
3582    
3583  /(?C1)\dabc(?C2)def/I  /(?C1)\dabc(?C2)def/IS
3584    Capturing subpattern count = 0
3585    No options
3586    No first char
3587    Need char = 'f'
3588    Subject length lower bound = 7
3589    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3590        1234abcdef
3591    --->1234abcdef
3592      1 ^              \d
3593      1  ^             \d
3594      1   ^            \d
3595      1    ^           \d
3596      2    ^   ^       d
3597     0: 4abcdef
3598        *** Failers
3599    No match
3600        abcdef
3601    No match
3602    
3603    /(?C1)\dabc(?C2)def/ISS
3604  Capturing subpattern count = 0  Capturing subpattern count = 0
3605  No options  No options
3606  No first char  No first char
# Line 3939  Need char = '<' Line 4004  Need char = '<'
4004          Bra          Bra
4005          CBra 1          CBra 1
4006          a          a
         Once  
4007          Recurse          Recurse
         Ket  
4008          b          b
4009          Ket          Ket
4010          Ket          Ket
# Line 4162  Need char = 'a' Line 4225  Need char = 'a'
4225          Any          Any
4226          \1          \1
4227          bbb          bbb
         Once  
4228          Recurse          Recurse
         Ket  
4229          d          d
4230          Ket          Ket
4231          End          End
# Line 4369  No first char Line 4430  No first char
4430  Need char = 'z'  Need char = 'z'
4431    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4432  Minimum match() limit = 8  Minimum match() limit = 8
4433  Minimum match() recursion limit = 6  Minimum match() recursion limit = 7
4434   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4435   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4436    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4437  Minimum match() limit = 32768  Minimum match() limit = 32768
4438  Minimum match() recursion limit = 42  Minimum match() recursion limit = 43
4439  No match  No match
4440    
4441  /(aaa(?C1)bbb|ab)/I  /(aaa(?C1)bbb|ab)/I
# Line 4536  Need char = ']' Line 4597  Need char = ']'
4597          a          a
4598          CBra 2          CBra 2
4599          b          b
         Once  
4600          Recurse          Recurse
         Ket  
4601          c          c
4602          Ket          Ket
4603          Ket          Ket
# Line 4558  No need char Line 4617  No need char
4617          a          a
4618          CBra 2          CBra 2
4619          b          b
         Once  
4620          Recurse          Recurse
         Ket  
4621          c          c
4622          Ket          Ket
4623          KetRmax          KetRmax
# Line 4581  No need char Line 4638  No need char
4638          a          a
4639          CBra 2          CBra 2
4640          b          b
         Once  
4641          Recurse          Recurse
         Ket  
4642          c          c
4643          Ket          Ket
4644          Ket          Ket
# Line 4592  No need char Line 4647  No need char
4647          a          a
4648          CBra 2          CBra 2
4649          b          b
         Once  
4650          Recurse          Recurse
         Ket  
4651          c          c
4652          Ket          Ket
4653          Ket          Ket
# Line 4733  Need char = 'e' Line 4786  Need char = 'e'
4786   +4 ^   ^      e   +4 ^   ^      e
4787  No match  No match
4788    
4789  /a*b/ICDZ  /a*b/ICDZS
4790    ------------------------------------------------------------------
4791            Bra
4792            Callout 255 0 2
4793            a*+
4794            Callout 255 2 1
4795            b
4796            Callout 255 3 0
4797            Ket
4798            End
4799    ------------------------------------------------------------------
4800    Capturing subpattern count = 0
4801    Options:
4802    No first char
4803    Need char = 'b'
4804    Subject length lower bound = 1
4805    Starting byte set: a b
4806      ab
4807    --->ab
4808     +0 ^      a*
4809     +2 ^^     b
4810     +3 ^ ^
4811     0: ab
4812      aaaab
4813    --->aaaab
4814     +0 ^         a*
4815     +2 ^   ^     b
4816     +3 ^    ^
4817     0: aaaab
4818      aaaacb
4819    --->aaaacb
4820     +0 ^          a*
4821     +2 ^   ^      b
4822     +0  ^         a*
4823     +2  ^  ^      b
4824     +0   ^        a*
4825     +2   ^ ^      b
4826     +0    ^       a*
4827     +2    ^^      b
4828     +0      ^     a*
4829     +2      ^     b
4830     +3      ^^
4831     0: b
4832    
4833    /a*b/ICDZSS
4834  ------------------------------------------------------------------  ------------------------------------------------------------------
4835          Bra          Bra
4836          Callout 255 0 2          Callout 255 0 2
# Line 4816  Need char = 'b' Line 4913  Need char = 'b'
4913   +2    ^^      b   +2    ^^      b
4914  No match  No match
4915    
4916  /(abc|def)x/ICDZ  /(abc|def)x/ICDZS
4917    ------------------------------------------------------------------
4918            Bra
4919            Callout 255 0 9
4920            CBra 1
4921            Callout 255 1 1
4922            a
4923            Callout 255 2 1
4924            b
4925            Callout 255 3 1
4926            c
4927            Callout 255 4 0
4928            Alt
4929            Callout 255 5 1
4930            d
4931            Callout 255 6 1
4932            e
4933            Callout 255 7 1
4934            f
4935            Callout 255 8 0
4936            Ket
4937            Callout 255 9 1
4938            x
4939            Callout 255 10 0
4940            Ket
4941            End
4942    ------------------------------------------------------------------
4943    Capturing subpattern count = 1
4944    Options:
4945    No first char
4946    Need char = 'x'
4947    Subject length lower bound = 4
4948    Starting byte set: a d
4949      abcx
4950    --->abcx
4951     +0 ^        (abc|def)
4952     +1 ^        a
4953     +2 ^^       b
4954     +3 ^ ^      c
4955     +4 ^  ^     |
4956     +9 ^  ^     x
4957    +10 ^   ^
4958     0: abcx
4959     1: abc
4960      defx
4961    --->defx
4962     +0 ^        (abc|def)
4963     +1 ^        a
4964     +5 ^        d
4965     +6 ^^       e
4966     +7 ^ ^      f
4967     +8 ^  ^     )
4968     +9 ^  ^     x
4969    +10 ^   ^
4970     0: defx
4971     1: def
4972      ** Failers
4973    No match
4974      abcdefzx
4975    --->abcdefzx
4976     +0 ^            (abc|def)
4977     +1 ^            a
4978     +2 ^^           b
4979     +3 ^ ^          c
4980     +4 ^  ^         |
4981     +9 ^  ^         x
4982     +5 ^            d
4983     +0    ^         (abc|def)
4984     +1    ^         a
4985     +5    ^         d
4986     +6    ^^        e
4987     +7    ^ ^       f
4988     +8    ^  ^      )
4989     +9    ^  ^      x
4990    No match
4991    
4992    /(abc|def)x/ICDZSS
4993  ------------------------------------------------------------------  ------------------------------------------------------------------
4994          Bra          Bra
4995          Callout 255 0 9          Callout 255 0 9
# Line 4870  Need char = 'x' Line 5043  Need char = 'x'
5043  +10 ^   ^  +10 ^   ^
5044   0: defx   0: defx
5045   1: def   1: def
5046      ** Failers
5047    No match
5048    abcdefzx    abcdefzx
5049  --->abcdefzx  --->abcdefzx
5050   +0 ^            (abc|def)   +0 ^            (abc|def)
# Line 4970  No need char Line 5145  No need char
5145   0: abcdcdcd   0: abcdcdcd
5146   1: cd   1: cd
5147    
5148  /([ab]{,4}c|xy)/ICDZ  /([ab]{,4}c|xy)/ICDZS
5149    ------------------------------------------------------------------
5150            Bra
5151            Callout 255 0 14
5152            CBra 1
5153            Callout 255 1 4
5154            [ab]
5155            Callout 255 5 1
5156            {
5157            Callout 255 6 1
5158            ,
5159            Callout 255 7 1
5160            4
5161            Callout 255 8 1
5162            }
5163            Callout 255 9 1
5164            c
5165            Callout 255 10 0
5166            Alt
5167            Callout 255 11 1
5168            x
5169            Callout 255 12 1
5170            y
5171            Callout 255 13 0
5172            Ket
5173            Callout 255 14 0
5174            Ket
5175            End
5176    ------------------------------------------------------------------
5177    Capturing subpattern count = 1
5178    Options:
5179    No first char
5180    No need char
5181    Subject length lower bound = 2
5182    Starting byte set: a b x
5183        Note: that { does NOT introduce a quantifier
5184    --->Note: that { does NOT introduce a quantifier
5185     +0         ^                                        ([ab]{,4}c|xy)
5186     +1         ^                                        [ab]
5187     +5         ^^                                       {
5188    +11         ^                                        x
5189     +0                                 ^                ([ab]{,4}c|xy)
5190     +1                                 ^                [ab]
5191     +5                                 ^^               {
5192    +11                                 ^                x
5193     +0                                     ^            ([ab]{,4}c|xy)
5194     +1                                     ^            [ab]
5195     +5                                     ^^           {
5196    +11                                     ^            x
5197    No match
5198    
5199    /([ab]{,4}c|xy)/ICDZSS
5200  ------------------------------------------------------------------  ------------------------------------------------------------------
5201          Bra          Bra
5202          Callout 255 0 14          Callout 255 0 14
# Line 5422  No match Line 5648  No match
5648      123456\P      123456\P
5649  No match  No match
5650    
5651  /abc/I>testsavedregex  /abc/IS>testsavedregex
5652  Capturing subpattern count = 0  Capturing subpattern count = 0
5653  No options  No options
5654  First char = 'a'  First char = 'a'
5655  Need char = 'c'  Need char = 'c'
5656  Compiled regex written to testsavedregex  Subject length lower bound = 3
5657    No set of starting bytes
5658    Compiled pattern written to testsavedregex
5659    Study data written to testsavedregex
5660  <testsavedregex  <testsavedregex
5661  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5662  No study data  Study data loaded from testsavedregex
5663      abc      abc
5664   0: abc   0: abc
5665      ** Failers      ** Failers
# Line 5438  No match Line 5667  No match
5667      bca      bca
5668  No match  No match
5669    
5670  /abc/IF>testsavedregex  /abc/ISS>testsavedregex
5671  Capturing subpattern count = 0  Capturing subpattern count = 0
5672  No options  No options
5673  First char = 'a'  First char = 'a'
5674  Need char = 'c'  Need char = 'c'
5675  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5676  <testsavedregex  <testsavedregex
5677  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5678  No study data  No study data
5679      abc      abc
5680   0: abc   0: abc
# Line 5454  No match Line 5683  No match
5683      bca      bca
5684  No match  No match
5685    
5686  /(a|b)/IS>testsavedregex  /abc/IFS>testsavedregex
5687  Capturing subpattern count = 1  Capturing subpattern count = 0
5688  No options  No options
5689  No first char  First char = 'a'
5690  No need char  Need char = 'c'
5691  Subject length lower bound = 1  Subject length lower bound = 3
5692  Starting byte set: a b  No set of starting bytes
5693  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5694  Study data written to testsavedregex  Study data written to testsavedregex
5695  <testsavedregex  <testsavedregex
5696  Compiled regex loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5697    Study data loaded from testsavedregex
5698        abc
5699     0: abc
5700        ** Failers
5701    No match
5702        bca
5703    No match
5704    
5705    /abc/IFSS>testsavedregex
5706    Capturing subpattern count = 0
5707    No options
5708    First char = 'a'
5709    Need char = 'c'
5710    Compiled pattern written to testsavedregex
5711    <testsavedregex
5712    Compiled pattern (byte-inverted) loaded from testsavedregex
5713    No study data
5714        abc
5715     0: abc
5716        ** Failers
5717    No match
5718        bca
5719    No match
5720    
5721    /(a|b)/IS>testsavedregex
5722    Capturing subpattern count = 1
5723    No options
5724    No first char
5725    No need char
5726    Subject length lower bound = 1
5727    Starting byte set: a b
5728    Compiled pattern written to testsavedregex
5729    Study data written to testsavedregex
5730    <testsavedregex
5731    Compiled pattern loaded from testsavedregex
5732  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5733      abc      abc
5734   0: a   0: a
# Line 5475  Study data loaded from testsavedregex Line 5739  Study data loaded from testsavedregex
5739      def      def
5740  No match  No match
5741    
5742    /(a|b)/ISS>testsavedregex
5743    Capturing subpattern count = 1
5744    No options
5745    No first char
5746    No need char
5747    Compiled pattern written to testsavedregex
5748    <testsavedregex
5749    Compiled pattern loaded from testsavedregex
5750    No study data
5751        abc
5752     0: a
5753     1: a
5754        ** Failers
5755     0: a
5756     1: a
5757        def
5758    No match
5759    
5760  /(a|b)/ISF>testsavedregex  /(a|b)/ISF>testsavedregex
5761  Capturing subpattern count = 1  Capturing subpattern count = 1
5762  No options  No options
# Line 5482  No first char Line 5764  No first char
5764  No need char  No need char
5765  Subject length lower bound = 1  Subject length lower bound = 1
5766  Starting byte set: a b  Starting byte set: a b
5767  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5768  Study data written to testsavedregex  Study data written to testsavedregex
5769  <testsavedregex  <testsavedregex
5770  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5771  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5772      abc      abc
5773   0: a   0: a
# Line 5496  Study data loaded from testsavedregex Line 5778  Study data loaded from testsavedregex
5778      def      def
5779  No match  No match
5780    
5781    /(a|b)/ISSF>testsavedregex
5782    Capturing subpattern count = 1
5783    No options
5784    No first char
5785    No need char
5786    Compiled pattern written to testsavedregex
5787    <testsavedregex
5788    Compiled pattern (byte-inverted) loaded from testsavedregex
5789    No study data
5790        abc
5791     0: a
5792     1: a
5793        ** Failers
5794     0: a
5795     1: a
5796        def
5797    No match
5798    
5799  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5800  Capturing subpattern count = 3  Capturing subpattern count = 3
5801  Max back reference = 1  Max back reference = 1
5802  Options: multiline dotall  Options: multiline dotall
5803  First char = '<'  First char = '<'
5804  Need char = '>'  Need char = '>'
5805      <!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>
5806   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>
5807   1: seite   1: seite
5808   2: \x0a   2: \x0a
# Line 6366  No first char Line 6666  No first char
6666  No need char  No need char
6667     /* this is a C style comment */\M     /* this is a C style comment */\M
6668  Minimum match() limit = 120  Minimum match() limit = 120
6669  Minimum match() recursion limit = 6  Minimum match() recursion limit = 35
6670   0: /* this is a C style comment */   0: /* this is a C style comment */
6671   1: /* this is a C style comment */   1: /* this is a C style comment */
6672    
# Line 6619  No match Line 6919  No match
6919  ------------------------------------------------------------------  ------------------------------------------------------------------
6920          Bra          Bra
6921          ^          ^
6922          a*       /i a*
6923       NC A       /i A
6924          \d          \d
6925          Ket          Ket
6926          End          End
# Line 7248  Matched, but too many substrings Line 7548  Matched, but too many substrings
7548  /[^a]+a/BZi  /[^a]+a/BZi
7549  ------------------------------------------------------------------  ------------------------------------------------------------------
7550          Bra          Bra
7551          [^A]++       /i [^A]++
7552       NC a       /i a
7553          Ket          Ket
7554          End          End
7555  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7257  Matched, but too many substrings Line 7557  Matched, but too many substrings
7557  /[^a]+A/BZi  /[^a]+A/BZi
7558  ------------------------------------------------------------------  ------------------------------------------------------------------
7559          Bra          Bra
7560          [^A]++       /i [^A]++
7561       NC A       /i A
7562          Ket          Ket
7563          End          End
7564  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7453  No match Line 7753  No match
7753  ------------------------------------------------------------------  ------------------------------------------------------------------
7754          Bra          Bra
7755          ^          ^
         Once  
7756          Recurse          Recurse
         Ket  
7757          [()]          [()]
7758          CBra 1          CBra 1
7759          Ket          Ket
# Line 7489  No match Line 7787  No match
7787  ------------------------------------------------------------------  ------------------------------------------------------------------
7788          Bra          Bra
7789          ^          ^
         Once  
7790          Recurse          Recurse
         Ket  
7791          ()          ()
7792          CBra 1          CBra 1
7793          Ket          Ket
# Line 7503  No match Line 7799  No match
7799  ------------------------------------------------------------------  ------------------------------------------------------------------
7800          Bra          Bra
7801          ^          ^
         Once  
7802          Recurse          Recurse
         Ket  
7803          [(\]a]          [(\]a]
7804          CBra 1          CBra 1
7805          Ket          Ket
# Line 7518  No match Line 7812  No match
7812  ------------------------------------------------------------------  ------------------------------------------------------------------
7813          Bra          Bra
7814          ^          ^
         Once  
7815          Recurse          Recurse
         Ket  
7816          CBra 1          CBra 1
7817          Ket          Ket
7818          Ket          Ket
# Line 7652  Options: extended Line 7944  Options: extended
7944  First char = 'x'  First char = 'x'
7945  Need char = 'z'  Need char = 'z'
7946    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7947  /(a|)*\d/  /(a|)*\d/
7948    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7949  No match  No match
# Line 7972  No match Line 8261  No match
8261          Alt          Alt
8262          c          c
8263          Ket          Ket
         Once  
8264          Recurse          Recurse
8265          Ket          Ket
         Ket  
8266          End          End
8267  ------------------------------------------------------------------  ------------------------------------------------------------------
8268      abc      abc
# Line 7986  No match Line 8273  No match
8273  ------------------------------------------------------------------  ------------------------------------------------------------------
8274          Bra          Bra
8275          xy          xy
         Once  
8276          Recurse          Recurse
         Ket  
8277          CBra 1          CBra 1
8278          abc          abc
8279          Ket          Ket
# Line 8469  No match Line 8754  No match
8754  ------------------------------------------------------------------  ------------------------------------------------------------------
8755    
8756  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8757  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8758   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8759    
8760  /[\E]AAA/  /[\E]AAA/
# Line 8642  No match Line 8927  No match
8927  +13   ^  ^      (*FAIL)  +13   ^  ^      (*FAIL)
8928  No match  No match
8929    
 /a(*PRUNE:XXX)b/  
 Failed: (*VERB) with an argument is not supported at offset 8  
   
8930  /a(*MARK)b/  /a(*MARK)b/
8931  Failed: (*VERB) not recognized at offset 7  Failed: (*MARK) must have an argument at offset 7
8932    
8933  /(?i:A{1,}\6666666666)/  /(?i:A{1,}\6666666666)/
8934  Failed: number is too big at offset 19  Failed: number is too big at offset 19
# Line 8654  Failed: number is too big at offset 19 Line 8936  Failed: number is too big at offset 19
8936  /\g6666666666/  /\g6666666666/
8937  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8938    
8939  /[\g6666666666]/  /[\g6666666666]/BZ
8940  Failed: number is too big at offset 12  ------------------------------------------------------------------
8941            Bra
8942            [6g]
8943            Ket
8944            End
8945    ------------------------------------------------------------------
8946    
8947  /(?1)\c[/  /(?1)\c[/
8948  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 8735  No match Line 9022  No match
9022  No match  No match
9023      a\x85b      a\x85b
9024  No match  No match
9025    
9026    /(*ANY).*/g
9027        abc\r\ndef
9028     0: abc
9029     0:
9030     0: def
9031     0:
9032    
9033    /(*ANYCRLF).*/g
9034        abc\r\ndef
9035     0: abc
9036     0:
9037     0: def
9038     0:
9039    
9040    /(*CRLF).*/g
9041        abc\r\ndef
9042     0: abc
9043     0:
9044     0: def
9045     0:
9046    
9047  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
9048  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 8940  Failed: subpattern name expected at offs Line 9248  Failed: subpattern name expected at offs
9248  /\k{}/  /\k{}/
9249  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9250    
9251    /\k/
9252    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9253    
9254    /\kabc/
9255    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9256    
9257  /(?P=)/  /(?P=)/
9258  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9259    
# Line 9221  No match Line 9535  No match
9535   +0        ^     x   +0        ^     x
9536   +0         ^    x   +0         ^    x
9537  No match  No match
9538    
9539    /(*NO_START_OPT)xyz/C
9540      abcxyz
9541    --->abcxyz
9542    +15 ^          x
9543    +15  ^         x
9544    +15   ^        x
9545    +15    ^       x
9546    +16    ^^      y
9547    +17    ^ ^     z
9548    +18    ^  ^
9549     0: xyz
9550    
9551    /xyz/CY
9552      abcxyz
9553    --->abcxyz
9554     +0 ^          x
9555     +0  ^         x
9556     +0   ^        x
9557     +0    ^       x
9558     +1    ^^      y
9559     +2    ^ ^     z
9560     +3    ^  ^
9561     0: xyz
9562    
9563  /^"((?(?=[a])[^"])|b)*"$/C  /^"((?(?=[a])[^"])|b)*"$/C
9564      "ab"      "ab"
# Line 9574  Partial match: +ab Line 9912  Partial match: +ab
9912  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9913  ------------------------------------------------------------------  ------------------------------------------------------------------
9914          Bra          Bra
         Once  
9915          Recurse          Recurse
         Ket  
         Once  
9916          Recurse          Recurse
         Ket  
9917          Cond          Cond
9918          Cond def          Cond def
9919          CBra 1          CBra 1
# Line 9600  Partial match: +ab Line 9934  Partial match: +ab
9934  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9935  ------------------------------------------------------------------  ------------------------------------------------------------------
9936          Bra          Bra
         Once  
9937          Recurse          Recurse
         Ket  
         Once  
9938          Recurse          Recurse
         Ket  
9939          Cond          Cond
9940          Cond def          Cond def
9941          CBra 1          CBra 1
# Line 10346  No match Line 10676  No match
10676          Cond nrecurse 1          Cond nrecurse 1
10677          $          $
10678          Alt          Alt
         Once  
10679          Recurse          Recurse
10680          Ket          Ket
10681          Ket          Ket
10682          Ket          Ket
         Ket  
10683          End          End
10684  ------------------------------------------------------------------  ------------------------------------------------------------------
10685  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 10407  Partial match: abca Line 10735  Partial match: abca
10735      xxxxabcde\P\P      xxxxabcde\P\P
10736  Partial match: abcde  Partial match: abcde
10737    
10738  /-- 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
10739      and not behaving as specified in that it *does* bumpalong after hitting      broken and not behaving as specified in that it *does* bumpalong after
10740      (*COMMIT). --/      hitting (*COMMIT). --/
10741    
10742  /(?1)(A(*COMMIT)|B)D/  /(?1)(A(*COMMIT)|B)D/
10743      ABD      ABD
# Line 10489  Starting byte set: i Line 10817  Starting byte set: i
10817  /(?i)a(?-i)b|c/BZ  /(?i)a(?-i)b|c/BZ
10818  ------------------------------------------------------------------  ------------------------------------------------------------------
10819          Bra          Bra
10820       NC a       /i a
      00 Opt  
10821          b          b
10822          Alt          Alt
      00 Opt  
10823          c          c
10824          Ket          Ket
10825          End          End
# Line 10512  No match Line 10838  No match
10838  /(?i)a(?s)b|c/BZ  /(?i)a(?s)b|c/BZ
10839  ------------------------------------------------------------------  ------------------------------------------------------------------
10840          Bra          Bra
10841       NC a       /i ab
      05 Opt  
      NC b  
10842          Alt          Alt
10843       05 Opt       /i c
      NC c  
10844          Ket          Ket
10845          End          End
10846  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10525  No match Line 10848  No match
10848  /(?i)a(?s-i)b|c/BZ  /(?i)a(?s-i)b|c/BZ
10849  ------------------------------------------------------------------  ------------------------------------------------------------------
10850          Bra          Bra
10851       NC a       /i a
      04 Opt  
10852          b          b
10853          Alt          Alt
      04 Opt  
10854          c          c
10855          Ket          Ket
10856          End          End
10857  ------------------------------------------------------------------  ------------------------------------------------------------------
10858    
10859    /^(ab(c\1)d|x){2}$/BZ
10860    ------------------------------------------------------------------
10861            Bra
10862            ^
10863            Once
10864            CBra 1
10865            ab
10866            CBra 2
10867            c
10868            \1
10869            Ket
10870            d
10871            Alt
10872            x
10873            Ket
10874            Ket
10875            Once
10876            CBra 1
10877            ab
10878            CBra 2
10879            c
10880            \1
10881            Ket
10882            d
10883            Alt
10884            x
10885            Ket
10886            Ket
10887            $
10888            Ket
10889            End
10890    ------------------------------------------------------------------
10891        xabcxd
10892     0: xabcxd
10893     1: abcxd
10894     2: cx
10895    
10896    /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10897    ------------------------------------------------------------------
10898            Bra
10899            ^
10900            Braposzero
10901            SBraPos
10902            Recurse
10903            KetRpos
10904            Cond
10905            Cond def
10906            CBra 1
10907            Any
10908            Ket
10909            Ket
10910            $
10911            Ket
10912            End
10913    ------------------------------------------------------------------
10914    
10915    /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10916    ------------------------------------------------------------------
10917            Bra
10918            ^
10919            Brazero
10920            Once
10921            Recurse
10922            KetRmax
10923            Cond
10924            Cond def
10925            CBra 1
10926            Any
10927            Ket
10928            Ket
10929            $
10930            Ket
10931            End
10932    ------------------------------------------------------------------
10933    
10934    / -- The first four of these are not in the Perl >= 5.10 test because Perl
10935         documents that the use of \K in assertions is "not well defined". The
10936         last is here because Perl gives the match as "b" rather than "ab". I
10937         believe this to be a Perl bug. --/
10938    
10939    /(?=a\Kb)ab/
10940        ab
10941     0: b
10942    
10943    /(?!a\Kb)ac/
10944        ac
10945     0: ac
10946    
10947    /^abc(?<=b\Kc)d/
10948        abcd
10949     0: cd
10950    
10951    /^abc(?<!b\Kq)d/
10952        abcd
10953     0: abcd
10954    
10955    /(?>a\Kb)z|(ab)/
10956        ab
10957     0: ab
10958     1: ab
10959    
10960    /----------------------/
10961    
10962    /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10963    Failed: recursive call could loop indefinitely at offset 31
10964    
10965    /abc(*MARK:)pqr/
10966    Failed: (*MARK) must have an argument at offset 10
10967    
10968    /abc(*:)pqr/
10969    Failed: (*MARK) must have an argument at offset 6
10970    
10971    /abc(*FAIL:123)xyz/
10972    Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10973    
10974    /--- This should, and does, fail. In Perl, it does not, which I think is a
10975         bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10976    
10977    /A(*COMMIT)B/+K
10978        ACABX
10979    No match
10980    
10981    /--- These should be different, but in Perl 5.11 are not, which I think
10982         is a bug in Perl. ---/
10983    
10984    /A(*THEN)B|A(*THEN)C/K
10985        AC
10986     0: AC
10987    
10988    /A(*PRUNE)B|A(*PRUNE)C/K
10989        AC
10990    No match
10991    
10992    /--- A whole lot of tests of verbs with arguments are here rather than in test
10993         11 because Perl doesn't seem to follow its specification entirely
10994         correctly. ---/
10995    
10996    /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is
10997         not clear how Perl defines "involved in the failure of the match". ---/
10998    
10999    /^(A(*THEN:A)B|C(*THEN:B)D)/K
11000        AB
11001     0: AB
11002     1: AB
11003        CD
11004     0: CD
11005     1: CD
11006        ** Failers
11007    No match
11008        AC
11009    No match
11010        CB
11011    No match, mark = B
11012    
11013    /--- Check the use of names for success and failure. PCRE doesn't show these
11014    names for success, though Perl does, contrary to its spec. ---/
11015    
11016    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
11017        AB
11018     0: AB
11019     1: AB
11020        CD
11021     0: CD
11022     1: CD
11023        ** Failers
11024    No match
11025        AC
11026    No match, mark = A
11027        CB
11028    No match, mark = B
11029    
11030    /--- An empty name does not pass back an empty string. It is the same as if no
11031    name were given. ---/
11032    
11033    /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K
11034        AB
11035     0: AB
11036     1: AB
11037        CD
11038     0: CD
11039     1: CD
11040    
11041    /--- PRUNE goes to next bumpalong; COMMIT does not. ---/
11042    
11043    /A(*PRUNE:A)B/K
11044        ACAB
11045     0: AB
11046    
11047    /(*MARK:A)(*PRUNE:B)(C|X)/KS
11048        C
11049     0: C
11050     1: C
11051    MK: A
11052        D
11053    No match
11054    
11055    /(*MARK:A)(*PRUNE:B)(C|X)/KSS
11056        C
11057     0: C
11058     1: C
11059    MK: A
11060        D
11061    No match, mark = B
11062    
11063    /(*MARK:A)(*THEN:B)(C|X)/KS
11064        C
11065     0: C
11066     1: C
11067    MK: A
11068        D
11069    No match
11070    
11071    /(*MARK:A)(*THEN:B)(C|X)/KSS
11072        C
11073     0: C
11074     1: C
11075    MK: A
11076        D
11077    No match, mark = B
11078    
11079    /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/
11080    
11081    /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK
11082        AAAC
11083    No match
11084    
11085    /--- Same --/
11086    
11087    /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK
11088        AAAC
11089    No match
11090    
11091    /--- This should fail; the SKIP advances by one, but when we get to AC, the
11092         PRUNE kills it. ---/
11093    
11094    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
11095        AAAC
11096    No match
11097    
11098    /A(*:A)A+(*SKIP)(B|Z) | AC/xK
11099        AAAC
11100    No match
11101    
11102    /--- This should fail, as a null name is the same as no name ---/
11103    
11104    /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK
11105        AAAC
11106    No match
11107    
11108    /--- This fails in PCRE, and I think that is in accordance with Perl's
11109         documentation, though in Perl it succeeds. ---/
11110    
11111    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK
11112        AAAC
11113    No match
11114    
11115    /--- Mark names can be duplicated ---/
11116    
11117    /A(*:A)B|X(*:A)Y/K
11118        AABC
11119     0: AB
11120    MK: A
11121        XXYZ
11122     0: XY
11123    MK: A
11124    
11125    /^A(*:A)B|^X(*:A)Y/K
11126        ** Failers
11127    No match
11128        XAQQ
11129    No match, mark = A
11130    
11131    /--- A check on what happens after hitting a mark and them bumping along to
11132    something that does not even start. Perl reports tags after the failures here,
11133    though it does not when the individual letters are made into something
11134    more complicated. ---/
11135    
11136    /A(*:A)B|XX(*:B)Y/K
11137        AABC
11138     0: AB
11139    MK: A
11140        XXYZ
11141     0: XXY
11142    MK: B
11143        ** Failers
11144    No match
11145        XAQQ
11146    No match
11147        XAQQXZZ
11148    No match
11149        AXQQQ
11150    No match
11151        AXXQQQ
11152    No match
11153    
11154    /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
11155    optimizations defeat this. So does the PCRE optimization unless we disable it
11156    with \Y. ---/
11157    
11158    /(*COMMIT)ABC/
11159        ABCDEFG
11160     0: ABC
11161        ** Failers
11162    No match
11163        DEFGABC\Y
11164    No match
11165    
11166    /--- Repeat some tests with added studying. ---/
11167    
11168    /A(*COMMIT)B/+KS
11169        ACABX
11170    No match
11171    
11172    /A(*THEN)B|A(*THEN)C/KS
11173        AC
11174     0: AC
11175    
11176    /A(*PRUNE)B|A(*PRUNE)C/KS
11177        AC
11178    No match
11179    
11180    /^(A(*THEN:A)B|C(*THEN:B)D)/KS
11181        AB
11182     0: AB
11183     1: AB
11184        CD
11185     0: CD
11186     1: CD
11187        ** Failers
11188    No match
11189        AC
11190    No match
11191        CB
11192    No match, mark = B
11193    
11194    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/KS
11195        AB
11196     0: AB
11197     1: AB
11198        CD
11199     0: CD
11200     1: CD
11201        ** Failers
11202    No match
11203        AC
11204    No match, mark = A
11205        CB
11206    No match, mark = B
11207    
11208    /^(A(*PRUNE:)B|C(*PRUNE:B)D)/KS
11209        AB
11210     0: AB
11211     1: AB
11212        CD
11213     0: CD
11214     1: CD
11215    
11216    /A(*PRUNE:A)B/KS
11217        ACAB
11218     0: AB
11219    
11220    /(*MARK:A)(*PRUNE:B)(C|X)/KS
11221        C
11222     0: C
11223     1: C
11224    MK: A
11225        D
11226    No match
11227    
11228    /(*MARK:A)(*THEN:B)(C|X)/KS
11229        C
11230     0: C
11231     1: C
11232    MK: A
11233        D
11234    No match
11235    
11236    /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xKS
11237        AAAC
11238    No match
11239    
11240    /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xKS
11241        AAAC
11242    No match
11243    
11244    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xKS
11245        AAAC
11246    No match
11247    
11248    /A(*:A)A+(*SKIP)(B|Z) | AC/xKS
11249        AAAC
11250    No match
11251    
11252    /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xKS
11253        AAAC
11254    No match
11255    
11256    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xKS
11257        AAAC
11258    No match
11259    
11260    /A(*:A)B|XX(*:B)Y/KS
11261        AABC
11262     0: AB
11263    MK: A
11264        XXYZ
11265     0: XXY
11266    MK: B
11267        ** Failers
11268    No match
11269        XAQQ
11270    No match
11271        XAQQXZZ
11272    No match
11273        AXQQQ
11274    No match
11275        AXXQQQ
11276    No match
11277    
11278    /(*COMMIT)ABC/
11279        ABCDEFG
11280     0: ABC
11281        ** Failers
11282    No match
11283        DEFGABC\Y
11284    No match
11285    
11286    /^(ab (c+(*THEN)cd) | xyz)/x
11287        abcccd
11288    No match
11289    
11290    /^(ab (c+(*PRUNE)cd) | xyz)/x
11291        abcccd
11292    No match
11293    
11294    /^(ab (c+(*FAIL)cd) | xyz)/x
11295        abcccd
11296    No match
11297    
11298    /--- Perl 5.11 gets some of these wrong ---/
11299    
11300    /(?>.(*ACCEPT))*?5/
11301        abcde
11302     0: a
11303    
11304    /(.(*ACCEPT))*?5/
11305        abcde
11306     0: a
11307     1: a
11308    
11309    /(.(*ACCEPT))5/
11310        abcde
11311     0: a
11312     1: a
11313    
11314    /(.(*ACCEPT))*5/
11315        abcde
11316     0: a
11317     1: a
11318    
11319    /A\NB./BZ
11320    ------------------------------------------------------------------
11321            Bra
11322            A
11323            Any
11324            B
11325            Any
11326            Ket
11327            End
11328    ------------------------------------------------------------------
11329        ACBD
11330     0: ACBD
11331        *** Failers
11332    No match
11333        A\nB
11334    No match
11335        ACB\n
11336    No match
11337    
11338    /A\NB./sBZ
11339    ------------------------------------------------------------------
11340            Bra
11341            A
11342            Any
11343            B
11344            AllAny
11345            Ket
11346            End
11347    ------------------------------------------------------------------
11348        ACBD
11349     0: ACBD
11350        ACB\n
11351     0: ACB\x0a
11352        *** Failers
11353    No match
11354        A\nB
11355    No match
11356    
11357    /A\NB/<crlf>
11358        A\nB
11359     0: A\x0aB
11360        A\rB
11361     0: A\x0dB
11362        ** Failers
11363    No match
11364        A\r\nB
11365    No match
11366    
11367    /\R+b/BZ
11368    ------------------------------------------------------------------
11369            Bra
11370            \R++
11371            b
11372            Ket
11373            End
11374    ------------------------------------------------------------------
11375    
11376    /\R+\n/BZ
11377    ------------------------------------------------------------------
11378            Bra
11379            \R+
11380            \x0a
11381            Ket
11382            End
11383    ------------------------------------------------------------------
11384    
11385    /\R+\d/BZ
11386    ------------------------------------------------------------------
11387            Bra
11388            \R++
11389            \d
11390            Ket
11391            End
11392    ------------------------------------------------------------------
11393    
11394    /\d*\R/BZ
11395    ------------------------------------------------------------------
11396            Bra
11397            \d*+
11398            \R
11399            Ket
11400            End
11401    ------------------------------------------------------------------
11402    
11403    /\s*\R/BZ
11404    ------------------------------------------------------------------
11405            Bra
11406            \s*+
11407            \R
11408            Ket
11409            End
11410    ------------------------------------------------------------------
11411    
11412    /-- Perl treats this one differently, not failing the second string. I believe
11413        that is a bug in Perl. --/
11414    
11415    /^((abc|abcx)(*THEN)y|abcd)/
11416        abcd
11417     0: abcd
11418     1: abcd
11419        *** Failers
11420    No match
11421        abcxy
11422    No match
11423    
11424    /(?<=abc)def/
11425        abc\P\P
11426    Partial match: abc
11427    
11428    /abc$/
11429        abc
11430     0: abc
11431        abc\P
11432     0: abc
11433        abc\P\P
11434    Partial match: abc
11435    
11436    /abc$/m
11437        abc
11438     0: abc
11439        abc\n
11440     0: abc
11441        abc\P\P
11442    Partial match: abc
11443        abc\n\P\P
11444     0: abc
11445        abc\P
11446     0: abc
11447        abc\n\P
11448     0: abc
11449    
11450    /abc\z/
11451        abc
11452     0: abc
11453        abc\P
11454     0: abc
11455        abc\P\P
11456    Partial match: abc
11457    
11458    /abc\Z/
11459        abc
11460     0: abc
11461        abc\P
11462     0: abc
11463        abc\P\P
11464    Partial match: abc
11465    
11466    /abc\b/
11467        abc
11468     0: abc
11469        abc\P
11470     0: abc
11471        abc\P\P
11472    Partial match: abc
11473    
11474    /abc\B/
11475        abc
11476    No match
11477        abc\P
11478    Partial match: abc
11479        abc\P\P
11480    Partial match: abc
11481    
11482    /.+/
11483        abc\>0
11484     0: abc
11485        abc\>1
11486     0: bc
11487        abc\>2
11488     0: c
11489        abc\>3
11490    No match
11491        abc\>4
11492    Error -24 (bad offset value)
11493        abc\>-4
11494    Error -24 (bad offset value)
11495    
11496    /^\cģ/
11497    Failed: \c must be followed by an ASCII character at offset 3
11498    
11499    /(?P<abn>(?P=abn)xxx)/BZ
11500    ------------------------------------------------------------------
11501            Bra
11502            Once
11503            CBra 1
11504            \1
11505            xxx
11506            Ket
11507            Ket
11508            Ket
11509            End
11510    ------------------------------------------------------------------
11511    
11512    /(a\1z)/BZ
11513    ------------------------------------------------------------------
11514            Bra
11515            Once
11516            CBra 1
11517            a
11518            \1
11519            z
11520            Ket
11521            Ket
11522            Ket
11523            End
11524    ------------------------------------------------------------------
11525    
11526    /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
11527    Failed: syntax error in subpattern name (missing terminator) at offset 29
11528    
11529    /(?P<abn>(?P=axn)xxx)/BZ
11530    Failed: reference to non-existent subpattern at offset 15
11531    
11532    /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
11533    ------------------------------------------------------------------
11534            Bra
11535            CBra 1
11536            \2
11537            xxx
11538            Ket
11539            CBra 2
11540            yy
11541            Ket
11542            Ket
11543            End
11544    ------------------------------------------------------------------
11545    
11546    /-- These tests are here because Perl gets the first one wrong. --/
11547    
11548    /(\R*)(.)/s
11549        \r\n
11550     0: \x0d
11551     1:
11552     2: \x0d
11553        \r\r\n\n\r
11554     0: \x0d\x0d\x0a\x0a\x0d
11555     1: \x0d\x0d\x0a\x0a
11556     2: \x0d
11557        \r\r\n\n\r\n
11558     0: \x0d\x0d\x0a\x0a\x0d
11559     1: \x0d\x0d\x0a\x0a
11560     2: \x0d
11561    
11562    /(\R)*(.)/s
11563        \r\n
11564     0: \x0d
11565     1: <unset>
11566     2: \x0d
11567        \r\r\n\n\r
11568     0: \x0d\x0d\x0a\x0a\x0d
11569     1: \x0a
11570     2: \x0d
11571        \r\r\n\n\r\n
11572     0: \x0d\x0d\x0a\x0a\x0d
11573     1: \x0a
11574     2: \x0d
11575    
11576    /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
11577        \r\n
11578     0: \x0d
11579     1:
11580     2: \x0d
11581        \r\r\n\n\r
11582     0: \x0d\x0d\x0a\x0a\x0d
11583     1: \x0d\x0d\x0a\x0a
11584     2: \x0d
11585        \r\r\n\n\r\n
11586     0: \x0d\x0d\x0a\x0a\x0d
11587     1: \x0d\x0d\x0a\x0a
11588     2: \x0d
11589    
11590    /-- --/
11591    
11592    /^abc$/BZ
11593    ------------------------------------------------------------------
11594            Bra
11595            ^
11596            abc
11597            $
11598            Ket
11599            End
11600    ------------------------------------------------------------------
11601    
11602    /^abc$/BZm
11603    ------------------------------------------------------------------
11604            Bra
11605         /m ^
11606            abc
11607         /m $
11608            Ket
11609            End
11610    ------------------------------------------------------------------
11611    
11612    /^(a)*+(\w)/S
11613        aaaaX
11614     0: aaaaX
11615     1: a
11616     2: X
11617        ** Failers
11618    No match
11619        aaaa
11620    No match
11621    
11622    /^(?:a)*+(\w)/S
11623        aaaaX
11624     0: aaaaX
11625     1: X
11626        ** Failers
11627    No match
11628        aaaa
11629    No match
11630    
11631    /(a)++1234/SDZ
11632    ------------------------------------------------------------------
11633            Bra
11634            CBraPos 1
11635            a
11636            KetRpos
11637            1234
11638            Ket
11639            End
11640    ------------------------------------------------------------------
11641    Capturing subpattern count = 1
11642    No options
11643    First char = 'a'
11644    Need char = '4'
11645    Subject length lower bound = 5
11646    No set of starting bytes
11647    
11648    /([abc])++1234/SI
11649    Capturing subpattern count = 1
11650    No options
11651    No first char
11652    Need char = '4'
11653    Subject length lower bound = 5
11654    Starting byte set: a b c
11655    
11656    /(?<=(abc)+)X/
11657    Failed: lookbehind assertion is not fixed length at offset 10
11658    
11659    /(^ab)/I
11660    Capturing subpattern count = 1
11661    Options: anchored
11662    No first char
11663    No need char
11664    
11665    /(^ab)++/I
11666    Capturing subpattern count = 1
11667    Options: anchored
11668    No first char
11669    No need char
11670    
11671    /(^ab|^)+/I
11672    Capturing subpattern count = 1
11673    Options: anchored
11674    No first char
11675    No need char
11676    
11677    /(^ab|^)++/I
11678    Capturing subpattern count = 1
11679    Options: anchored
11680    No first char
11681    No need char
11682    
11683    /(?:^ab)/I
11684    Capturing subpattern count = 0
11685    Options: anchored
11686    No first char
11687    No need char
11688    
11689    /(?:^ab)++/I
11690    Capturing subpattern count = 0
11691    Options: anchored
11692    No first char
11693    No need char
11694    
11695    /(?:^ab|^)+/I
11696    Capturing subpattern count = 0
11697    Options: anchored
11698    No first char
11699    No need char
11700    
11701    /(?:^ab|^)++/I
11702    Capturing subpattern count = 0
11703    Options: anchored
11704    No first char
11705    No need char
11706    
11707    /(.*ab)/I
11708    Capturing subpattern count = 1
11709    No options
11710    First char at start or follows newline
11711    Need char = 'b'
11712    
11713    /(.*ab)++/I
11714    Capturing subpattern count = 1
11715    No options
11716    First char at start or follows newline
11717    Need char = 'b'
11718    
11719    /(.*ab|.*)+/I
11720    Capturing subpattern count = 1
11721    No options
11722    First char at start or follows newline
11723    No need char
11724    
11725    /(.*ab|.*)++/I
11726    Capturing subpattern count = 1
11727    No options
11728    First char at start or follows newline
11729    No need char
11730    
11731    /(?:.*ab)/I
11732    Capturing subpattern count = 0
11733    No options
11734    First char at start or follows newline
11735    Need char = 'b'
11736    
11737    /(?:.*ab)++/I
11738    Capturing subpattern count = 0
11739    No options
11740    First char at start or follows newline
11741    Need char = 'b'
11742    
11743    /(?:.*ab|.*)+/I
11744    Capturing subpattern count = 0
11745    No options
11746    First char at start or follows newline
11747    No need char
11748    
11749    /(?:.*ab|.*)++/I
11750    Capturing subpattern count = 0
11751    No options
11752    First char at start or follows newline
11753    No need char
11754    
11755    /(?=a)[bcd]/I
11756    Capturing subpattern count = 0
11757    No options
11758    First char = 'a'
11759    No need char
11760    
11761    /((?=a))[bcd]/I
11762    Capturing subpattern count = 1
11763    No options
11764    First char = 'a'
11765    No need char
11766    
11767    /((?=a))+[bcd]/I
11768    Capturing subpattern count = 1
11769    No options
11770    First char = 'a'
11771    No need char
11772    
11773    /((?=a))++[bcd]/I
11774    Capturing subpattern count = 1
11775    No options
11776    First char = 'a'
11777    No need char
11778    
11779    /(?=a+)[bcd]/iI
11780    Capturing subpattern count = 0
11781    Options: caseless
11782    First char = 'a' (caseless)
11783    No need char
11784    
11785    /(?=a+?)[bcd]/iI
11786    Capturing subpattern count = 0
11787    Options: caseless
11788    First char = 'a' (caseless)
11789    No need char
11790    
11791    /(?=a++)[bcd]/iI
11792    Capturing subpattern count = 0
11793    Options: caseless
11794    First char = 'a' (caseless)
11795    No need char
11796    
11797    /(?=a{3})[bcd]/iI
11798    Capturing subpattern count = 0
11799    Options: caseless
11800    First char = 'a' (caseless)
11801    Need char = 'a' (caseless)
11802    
11803    /(abc)\1+/S
11804    
11805    /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11806    
11807    /(?1)(?:(b(*ACCEPT))){0}/
11808        b
11809     0: b
11810    
11811    /(?1)(?:(b(*ACCEPT))){0}c/
11812        bc
11813     0: bc
11814        ** Failers
11815    No match
11816        b
11817    No match
11818    
11819    /(?1)(?:((*ACCEPT))){0}c/
11820        c
11821     0: c
11822        c\N
11823     0: c
11824    
11825    /^.*?(?(?=a)a|b(*THEN)c)/
11826        ba
11827     0: ba
11828    
11829    /^.*?(?(?=a)a|bc)/
11830        ba
11831     0: ba
11832    
11833    /-- --/
11834    
11835    /-- These studied versions are here because they are not Perl-compatible; the
11836        studying means the mark is not seen. --/
11837    
11838    /(*MARK:A)(*SKIP:B)(C|X)/KS
11839        C
11840     0: C
11841     1: C
11842    MK: A
11843        D
11844    No match
11845    
11846    /(*:A)A+(*SKIP:A)(B|Z)/KS
11847        AAAC
11848    No match
11849    
11850    /-- --/
11851    
11852    "(?=a*(*ACCEPT)b)c"
11853        c
11854     0: c
11855        c\N
11856     0: c
11857    
11858    /(?1)c(?(DEFINE)((*ACCEPT)b))/
11859        c
11860     0: c
11861        c\N
11862     0: c
11863    
11864    /(?>(*ACCEPT)b)c/
11865        c
11866     0:
11867        c\N
11868    No match
11869    
11870    /(?:(?>(a)))+a%/++
11871        %aa%
11872     0: aa%
11873     0+
11874     1: a
11875     1+ a%
11876    
11877    /(a)b|ac/++SS
11878        ac\O3
11879    Matched, but too many substrings
11880     0: ac
11881     0+
11882    
11883    /(a)(b)x|abc/++
11884         abc\O6
11885     0: abc
11886     0+
11887    
11888    /(a)bc|(a)(b)\2/
11889        \O3abc
11890    Matched, but too many substrings
11891     0: abc
11892        \O4abc
11893    Matched, but too many substrings
11894     0: abc
11895    
11896    /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11897    Capturing subpattern count = 2
11898    No options
11899    No first char
11900    No need char
11901    Subject length lower bound = 1
11902    No set of starting bytes
11903    
11904    /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11905    Capturing subpattern count = 2
11906    No options
11907    No first char
11908    No need char
11909    Subject length lower bound = 3
11910    Starting byte set: a b
11911    
11912    /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11913    Capturing subpattern count = 2
11914    No options
11915    No first char
11916    No need char
11917    Subject length lower bound = 4
11918    Starting byte set: a b
11919    
11920    /(abc)(?1)/SI
11921    Capturing subpattern count = 1
11922    No options
11923    First char = 'a'
11924    Need char = 'c'
11925    Subject length lower bound = 6
11926    No set of starting bytes
11927    
11928    /^(?>a)++/
11929        aa\M
11930    Minimum match() limit = 5
11931    Minimum match() recursion limit = 3
11932     0: aa
11933        aaaaaaaaa\M
11934    Minimum match() limit = 12
11935    Minimum match() recursion limit = 3
11936     0: aaaaaaaaa
11937    
11938    /(a)(?1)++/
11939        aa\M
11940    Minimum match() limit = 7
11941    Minimum match() recursion limit = 5
11942     0: aa
11943     1: a
11944        aaaaaaaaa\M
11945    Minimum match() limit = 21
11946    Minimum match() recursion limit = 5
11947     0: aaaaaaaaa
11948     1: a
11949    
11950    /(?:(foo)|(bar)|(baz))X/SS=
11951        bazfooX
11952     0: fooX
11953     1: foo
11954     2: <unset>
11955     3: <unset>
11956        foobazbarX
11957     0: barX
11958     1: <unset>
11959     2: bar
11960     3: <unset>
11961        barfooX
11962     0: fooX
11963     1: foo
11964     2: <unset>
11965     3: <unset>
11966        bazX
11967     0: bazX
11968     1: <unset>
11969     2: <unset>
11970     3: baz
11971        foobarbazX
11972     0: bazX
11973     1: <unset>
11974     2: <unset>
11975     3: baz
11976        bazfooX\O0
11977    Matched, but too many substrings
11978        bazfooX\O2
11979    Matched, but too many substrings
11980     0: fooX
11981        bazfooX\O4
11982    Matched, but too many substrings
11983     0: fooX
11984     1: <unset>
11985        bazfooX\O6
11986    Matched, but too many substrings
11987     0: fooX
11988     1: foo
11989     2: <unset>
11990        bazfooX\O8
11991    Matched, but too many substrings
11992     0: fooX
11993     1: foo
11994     2: <unset>
11995     3: <unset>
11996        bazfooX\O10
11997     0: fooX
11998     1: foo
11999     2: <unset>
12000     3: <unset>
12001    
12002    /(?=abc){3}abc/BZ
12003    ------------------------------------------------------------------
12004            Bra
12005            Assert
12006            abc
12007            Ket
12008            abc
12009            Ket
12010            End
12011    ------------------------------------------------------------------
12012    
12013    /(?=abc)+abc/BZ
12014    ------------------------------------------------------------------
12015            Bra
12016            Assert
12017            abc
12018            Ket
12019            abc
12020            Ket
12021            End
12022    ------------------------------------------------------------------
12023    
12024    /(?=abc)++abc/BZ
12025    ------------------------------------------------------------------
12026            Bra
12027            Assert
12028            abc
12029            Ket
12030            abc
12031            Ket
12032            End
12033    ------------------------------------------------------------------
12034    
12035    /(?=abc){0}xyz/BZ
12036    ------------------------------------------------------------------
12037            Bra
12038            Skip zero
12039            Assert
12040            abc
12041            Ket
12042            xyz
12043            Ket
12044            End
12045    ------------------------------------------------------------------
12046    
12047    /(?=(a))?./BZ
12048    ------------------------------------------------------------------
12049            Bra
12050            Brazero
12051            Assert
12052            CBra 1
12053            a
12054            Ket
12055            Ket
12056            Any
12057            Ket
12058            End
12059    ------------------------------------------------------------------
12060    
12061    /(?=(a))??./BZ
12062    ------------------------------------------------------------------
12063            Bra
12064            Braminzero
12065            Assert
12066            CBra 1
12067            a
12068            Ket
12069            Ket
12070            Any
12071            Ket
12072            End
12073    ------------------------------------------------------------------
12074    
12075    /^(?=(a)){0}b(?1)/BZ
12076    ------------------------------------------------------------------
12077            Bra
12078            ^
12079            Skip zero
12080            Assert
12081            CBra 1
12082            a
12083            Ket
12084            Ket
12085            b
12086            Recurse
12087            Ket
12088            End
12089    ------------------------------------------------------------------
12090    
12091    /(?(DEFINE)(a))?b(?1)/BZ
12092    ------------------------------------------------------------------
12093            Bra
12094            Cond
12095            Cond def
12096            CBra 1
12097            a
12098            Ket
12099            Ket
12100            b
12101            Recurse
12102            Ket
12103            End
12104    ------------------------------------------------------------------
12105    
12106    /^(?=(?1))?[az]([abc])d/BZ
12107    ------------------------------------------------------------------
12108            Bra
12109            ^
12110            Brazero
12111            Assert
12112            Recurse
12113            Ket
12114            [az]
12115            CBra 1
12116            [a-c]
12117            Ket
12118            d
12119            Ket
12120            End
12121    ------------------------------------------------------------------
12122    
12123    /^(?!a){0}\w+/BZ
12124    ------------------------------------------------------------------
12125            Bra
12126            ^
12127            Skip zero
12128            Assert not
12129            a
12130            Ket
12131            \w+
12132            Ket
12133            End
12134    ------------------------------------------------------------------
12135    
12136    /(?<=(abc))?xyz/BZ
12137    ------------------------------------------------------------------
12138            Bra
12139            Brazero
12140            AssertB
12141            Reverse
12142            CBra 1
12143            abc
12144            Ket
12145            Ket
12146            xyz
12147            Ket
12148            End
12149    ------------------------------------------------------------------
12150    
12151    /[:a[:abc]b:]/BZ
12152    ------------------------------------------------------------------
12153            Bra
12154            [:[a-c]
12155            b:]
12156            Ket
12157            End
12158    ------------------------------------------------------------------
12159    
12160    /((?2))((?1))/SS
12161        abc
12162    Error -26 (nested recursion at the same subject position)
12163    
12164    /((?(R2)a+|(?1)b))/
12165        aaaabcde
12166    Error -26 (nested recursion at the same subject position)
12167    
12168    /(?(R)a*(?1)|((?R))b)/
12169        aaaabcde
12170    Error -26 (nested recursion at the same subject position)
12171    
12172    /(a+|(?R)b)/
12173    Failed: recursive call could loop indefinitely at offset 7
12174    
12175    /^(a(*:A)(d|e(*:B))z|aeq)/C
12176        adz
12177    --->adz
12178     +0 ^       ^
12179     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
12180     +2 ^       a
12181     +3 ^^      (*:A)
12182     +8 ^^      (d|e(*:B))
12183    Latest Mark: A
12184     +9 ^^      d
12185    +10 ^ ^     |
12186    +18 ^ ^     z
12187    +19 ^  ^    |
12188    +24 ^  ^
12189     0: adz
12190     1: adz
12191     2: d
12192        aez
12193    --->aez
12194     +0 ^       ^
12195     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
12196     +2 ^       a
12197     +3 ^^      (*:A)
12198     +8 ^^      (d|e(*:B))
12199    Latest Mark: A
12200     +9 ^^      d
12201    +11 ^^      e
12202    +12 ^ ^     (*:B)
12203    +17 ^ ^     )
12204    Latest Mark: B
12205    +18 ^ ^     z
12206    +19 ^  ^    |
12207    +24 ^  ^
12208     0: aez
12209     1: aez
12210     2: e
12211        aeqwerty
12212    --->aeqwerty
12213     +0 ^            ^
12214     +1 ^            (a(*:A)(d|e(*:B))z|aeq)
12215     +2 ^            a
12216     +3 ^^           (*:A)
12217     +8 ^^           (d|e(*:B))
12218    Latest Mark: A
12219     +9 ^^           d
12220    +11 ^^           e
12221    +12 ^ ^          (*:B)
12222    +17 ^ ^          )
12223    Latest Mark: B
12224    +18 ^ ^          z
12225    +20 ^            a
12226    Latest Mark: <unset>
12227    +21 ^^           e
12228    +22 ^ ^          q
12229    +23 ^  ^         )
12230    +24 ^  ^
12231     0: aeq
12232     1: aeq
12233    
12234    /.(*F)/
12235        \P\Pabc
12236    No match
12237    
12238    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
12239    Capturing subpattern count = 0
12240    No options
12241    First char = 't'
12242    Need char = 't'
12243    Subject length lower bound = 18
12244    No set of starting bytes
12245    
12246    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
12247    Capturing subpattern count = 0
12248    No options
12249    No first char
12250    No need char
12251    Subject length lower bound = 8
12252    Starting byte set: < o t u
12253    
12254  /-- End of testinput2 --/  /-- End of testinput2 --/

Legend:
Removed from v.472  
changed lines
  Added in v.665

  ViewVC Help
Powered by ViewVC 1.1.5