/[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 511 by ph10, Mon Mar 29 09:25:38 2010 UTC revision 637 by ph10, Sun Jul 24 17:44:12 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 1217  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 2734  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 2757  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 2782  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 2795  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 2968  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 3198  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 3560  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 3964  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 4187  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 4394  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 4561  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 4583  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 4606  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 4617  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 4758  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 4841  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 4895  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 4995  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 5447  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 5463  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 5479  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  Study data loaded from testsavedregex
5698      abc      abc
5699   0: a   0: abc
  1: a  
5700      ** Failers      ** Failers
5701   0: a  No match
5702   1: a      bca
     def  
5703  No match  No match
5704    
5705  /(a|b)/ISF>testsavedregex  /abc/IFSS>testsavedregex
5706  Capturing subpattern count = 1  Capturing subpattern count = 0
5707  No options  No options
5708  No first char  First char = 'a'
5709  No need char  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
5733        abc
5734     0: a
5735     1: a
5736        ** Failers
5737     0: a
5738     1: a
5739        def
5740    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
5761    Capturing subpattern count = 1
5762    No options
5763    No first char
5764    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 5521  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
# Line 6391  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 6644  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 7273  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 7282  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 7478  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 7514  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 7528  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 7543  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 7677  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 7997  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 8011  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 8757  No match Line 9017  No match
9017  No match  No match
9018      a\x85b      a\x85b
9019  No match  No match
9020    
9021    /(*ANY).*/g
9022        abc\r\ndef
9023     0: abc
9024     0:
9025     0: def
9026     0:
9027    
9028    /(*ANYCRLF).*/g
9029        abc\r\ndef
9030     0: abc
9031     0:
9032     0: def
9033     0:
9034    
9035    /(*CRLF).*/g
9036        abc\r\ndef
9037     0: abc
9038     0:
9039     0: def
9040     0:
9041    
9042  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
9043  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 8962  Failed: subpattern name expected at offs Line 9243  Failed: subpattern name expected at offs
9243  /\k{}/  /\k{}/
9244  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9245    
9246    /\k/
9247    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9248    
9249    /\kabc/
9250    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9251    
9252  /(?P=)/  /(?P=)/
9253  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9254    
# Line 9243  No match Line 9530  No match
9530   +0        ^     x   +0        ^     x
9531   +0         ^    x   +0         ^    x
9532  No match  No match
9533    
9534    /(*NO_START_OPT)xyz/C
9535      abcxyz
9536    --->abcxyz
9537    +15 ^          x
9538    +15  ^         x
9539    +15   ^        x
9540    +15    ^       x
9541    +16    ^^      y
9542    +17    ^ ^     z
9543    +18    ^  ^
9544     0: xyz
9545    
9546    /xyz/CY
9547      abcxyz
9548    --->abcxyz
9549     +0 ^          x
9550     +0  ^         x
9551     +0   ^        x
9552     +0    ^       x
9553     +1    ^^      y
9554     +2    ^ ^     z
9555     +3    ^  ^
9556     0: xyz
9557    
9558  /^"((?(?=[a])[^"])|b)*"$/C  /^"((?(?=[a])[^"])|b)*"$/C
9559      "ab"      "ab"
# Line 9596  Partial match: +ab Line 9907  Partial match: +ab
9907  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9908  ------------------------------------------------------------------  ------------------------------------------------------------------
9909          Bra          Bra
         Once  
9910          Recurse          Recurse
         Ket  
         Once  
9911          Recurse          Recurse
         Ket  
9912          Cond          Cond
9913          Cond def          Cond def
9914          CBra 1          CBra 1
# Line 9622  Partial match: +ab Line 9929  Partial match: +ab
9929  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9930  ------------------------------------------------------------------  ------------------------------------------------------------------
9931          Bra          Bra
         Once  
9932          Recurse          Recurse
         Ket  
         Once  
9933          Recurse          Recurse
         Ket  
9934          Cond          Cond
9935          Cond def          Cond def
9936          CBra 1          CBra 1
# Line 10368  No match Line 10671  No match
10671          Cond nrecurse 1          Cond nrecurse 1
10672          $          $
10673          Alt          Alt
         Once  
10674          Recurse          Recurse
10675          Ket          Ket
10676          Ket          Ket
10677          Ket          Ket
         Ket  
10678          End          End
10679  ------------------------------------------------------------------  ------------------------------------------------------------------
10680  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 10429  Partial match: abca Line 10730  Partial match: abca
10730      xxxxabcde\P\P      xxxxabcde\P\P
10731  Partial match: abcde  Partial match: abcde
10732    
10733  /-- 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
10734      and not behaving as specified in that it *does* bumpalong after hitting      broken and not behaving as specified in that it *does* bumpalong after
10735      (*COMMIT). --/      hitting (*COMMIT). --/
10736    
10737  /(?1)(A(*COMMIT)|B)D/  /(?1)(A(*COMMIT)|B)D/
10738      ABD      ABD
# Line 10511  Starting byte set: i Line 10812  Starting byte set: i
10812  /(?i)a(?-i)b|c/BZ  /(?i)a(?-i)b|c/BZ
10813  ------------------------------------------------------------------  ------------------------------------------------------------------
10814          Bra          Bra
10815       NC a       /i a
      00 Opt  
10816          b          b
10817          Alt          Alt
      00 Opt  
10818          c          c
10819          Ket          Ket
10820          End          End
# Line 10534  No match Line 10833  No match
10833  /(?i)a(?s)b|c/BZ  /(?i)a(?s)b|c/BZ
10834  ------------------------------------------------------------------  ------------------------------------------------------------------
10835          Bra          Bra
10836       NC a       /i ab
      05 Opt  
      NC b  
10837          Alt          Alt
10838       05 Opt       /i c
      NC c  
10839          Ket          Ket
10840          End          End
10841  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10547  No match Line 10843  No match
10843  /(?i)a(?s-i)b|c/BZ  /(?i)a(?s-i)b|c/BZ
10844  ------------------------------------------------------------------  ------------------------------------------------------------------
10845          Bra          Bra
10846       NC a       /i a
      04 Opt  
10847          b          b
10848          Alt          Alt
      04 Opt  
10849          c          c
10850          Ket          Ket
10851          End          End
# Line 10598  No match Line 10892  No match
10892  ------------------------------------------------------------------  ------------------------------------------------------------------
10893          Bra          Bra
10894          ^          ^
10895          Once          Braposzero
10896          Brazero          SBraPos
         Once  
10897          Recurse          Recurse
10898          KetRmax          KetRpos
         Ket  
10899          Cond          Cond
10900          Cond def          Cond def
10901          CBra 1          CBra 1
# Line 10634  No match Line 10926  No match
10926          End          End
10927  ------------------------------------------------------------------  ------------------------------------------------------------------
10928    
10929  / -- The first four of these are not in the Perl 5.10 test because Perl  / -- The first four of these are not in the Perl >= 5.10 test because Perl
10930       documents that the use of \K in assertions is "not well defined". The       documents that the use of \K in assertions is "not well defined". The
10931       last is here because Perl gives the match as "b" rather than "ab". I       last is here because Perl gives the match as "b" rather than "ab". I
10932       believe this to be a Perl bug. --/       believe this to be a Perl bug. --/
# Line 10747  name were given. ---/ Line 11039  name were given. ---/
11039      ACAB      ACAB
11040   0: AB   0: AB
11041    
11042  /(*MARK:A)(*PRUNE:B)(C|X)/K  /(*MARK:A)(*PRUNE:B)(C|X)/KS
11043        C
11044     0: C
11045     1: C
11046    MK: A
11047        D
11048    No match
11049    
11050    /(*MARK:A)(*PRUNE:B)(C|X)/KSS
11051      C      C
11052   0: C   0: C
11053   1: C   1: C
# Line 10755  MK: A Line 11055  MK: A
11055      D      D
11056  No match, mark = B  No match, mark = B
11057    
11058  /(*MARK:A)(*THEN:B)(C|X)/K  /(*MARK:A)(*THEN:B)(C|X)/KS
11059        C
11060     0: C
11061     1: C
11062    MK: A
11063        D
11064    No match
11065    
11066    /(*MARK:A)(*THEN:B)(C|X)/KSS
11067      C      C
11068   0: C   0: C
11069   1: C   1: C
# Line 11003  No match Line 11311  No match
11311   0: a   0: a
11312   1: a   1: a
11313    
11314    /A\NB./BZ
11315    ------------------------------------------------------------------
11316            Bra
11317            A
11318            Any
11319            B
11320            Any
11321            Ket
11322            End
11323    ------------------------------------------------------------------
11324        ACBD
11325     0: ACBD
11326        *** Failers
11327    No match
11328        A\nB
11329    No match
11330        ACB\n
11331    No match
11332    
11333    /A\NB./sBZ
11334    ------------------------------------------------------------------
11335            Bra
11336            A
11337            Any
11338            B
11339            AllAny
11340            Ket
11341            End
11342    ------------------------------------------------------------------
11343        ACBD
11344     0: ACBD
11345        ACB\n
11346     0: ACB\x0a
11347        *** Failers
11348    No match
11349        A\nB
11350    No match
11351    
11352    /A\NB/<crlf>
11353        A\nB
11354     0: A\x0aB
11355        A\rB
11356     0: A\x0dB
11357        ** Failers
11358    No match
11359        A\r\nB
11360    No match
11361    
11362    /\R+b/BZ
11363    ------------------------------------------------------------------
11364            Bra
11365            \R++
11366            b
11367            Ket
11368            End
11369    ------------------------------------------------------------------
11370    
11371    /\R+\n/BZ
11372    ------------------------------------------------------------------
11373            Bra
11374            \R+
11375            \x0a
11376            Ket
11377            End
11378    ------------------------------------------------------------------
11379    
11380    /\R+\d/BZ
11381    ------------------------------------------------------------------
11382            Bra
11383            \R++
11384            \d
11385            Ket
11386            End
11387    ------------------------------------------------------------------
11388    
11389    /\d*\R/BZ
11390    ------------------------------------------------------------------
11391            Bra
11392            \d*+
11393            \R
11394            Ket
11395            End
11396    ------------------------------------------------------------------
11397    
11398    /\s*\R/BZ
11399    ------------------------------------------------------------------
11400            Bra
11401            \s*+
11402            \R
11403            Ket
11404            End
11405    ------------------------------------------------------------------
11406    
11407    /-- Perl treats this one differently, not failing the second string. I believe
11408        that is a bug in Perl. --/
11409    
11410    /^((abc|abcx)(*THEN)y|abcd)/
11411        abcd
11412     0: abcd
11413     1: abcd
11414        *** Failers
11415    No match
11416        abcxy
11417    No match
11418    
11419    /(?<=abc)def/
11420        abc\P\P
11421    Partial match: abc
11422    
11423    /abc$/
11424        abc
11425     0: abc
11426        abc\P
11427     0: abc
11428        abc\P\P
11429    Partial match: abc
11430    
11431    /abc$/m
11432        abc
11433     0: abc
11434        abc\n
11435     0: abc
11436        abc\P\P
11437    Partial match: abc
11438        abc\n\P\P
11439     0: abc
11440        abc\P
11441     0: abc
11442        abc\n\P
11443     0: abc
11444    
11445    /abc\z/
11446        abc
11447     0: abc
11448        abc\P
11449     0: abc
11450        abc\P\P
11451    Partial match: abc
11452    
11453    /abc\Z/
11454        abc
11455     0: abc
11456        abc\P
11457     0: abc
11458        abc\P\P
11459    Partial match: abc
11460    
11461    /abc\b/
11462        abc
11463     0: abc
11464        abc\P
11465     0: abc
11466        abc\P\P
11467    Partial match: abc
11468    
11469    /abc\B/
11470        abc
11471    No match
11472        abc\P
11473    Partial match: abc
11474        abc\P\P
11475    Partial match: abc
11476    
11477    /.+/
11478        abc\>0
11479     0: abc
11480        abc\>1
11481     0: bc
11482        abc\>2
11483     0: c
11484        abc\>3
11485    No match
11486        abc\>4
11487    Error -24 (bad offset value)
11488        abc\>-4
11489    Error -24 (bad offset value)
11490    
11491    /^\cģ/
11492    Failed: \c must be followed by an ASCII character at offset 3
11493    
11494    /(?P<abn>(?P=abn)xxx)/BZ
11495    ------------------------------------------------------------------
11496            Bra
11497            Once
11498            CBra 1
11499            \1
11500            xxx
11501            Ket
11502            Ket
11503            Ket
11504            End
11505    ------------------------------------------------------------------
11506    
11507    /(a\1z)/BZ
11508    ------------------------------------------------------------------
11509            Bra
11510            Once
11511            CBra 1
11512            a
11513            \1
11514            z
11515            Ket
11516            Ket
11517            Ket
11518            End
11519    ------------------------------------------------------------------
11520    
11521    /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
11522    Failed: syntax error in subpattern name (missing terminator) at offset 29
11523    
11524    /(?P<abn>(?P=axn)xxx)/BZ
11525    Failed: reference to non-existent subpattern at offset 15
11526    
11527    /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
11528    ------------------------------------------------------------------
11529            Bra
11530            CBra 1
11531            \2
11532            xxx
11533            Ket
11534            CBra 2
11535            yy
11536            Ket
11537            Ket
11538            End
11539    ------------------------------------------------------------------
11540    
11541    /-- These tests are here because Perl gets the first one wrong. --/
11542    
11543    /(\R*)(.)/s
11544        \r\n
11545     0: \x0d
11546     1:
11547     2: \x0d
11548        \r\r\n\n\r
11549     0: \x0d\x0d\x0a\x0a\x0d
11550     1: \x0d\x0d\x0a\x0a
11551     2: \x0d
11552        \r\r\n\n\r\n
11553     0: \x0d\x0d\x0a\x0a\x0d
11554     1: \x0d\x0d\x0a\x0a
11555     2: \x0d
11556    
11557    /(\R)*(.)/s
11558        \r\n
11559     0: \x0d
11560     1: <unset>
11561     2: \x0d
11562        \r\r\n\n\r
11563     0: \x0d\x0d\x0a\x0a\x0d
11564     1: \x0a
11565     2: \x0d
11566        \r\r\n\n\r\n
11567     0: \x0d\x0d\x0a\x0a\x0d
11568     1: \x0a
11569     2: \x0d
11570    
11571    /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
11572        \r\n
11573     0: \x0d
11574     1:
11575     2: \x0d
11576        \r\r\n\n\r
11577     0: \x0d\x0d\x0a\x0a\x0d
11578     1: \x0d\x0d\x0a\x0a
11579     2: \x0d
11580        \r\r\n\n\r\n
11581     0: \x0d\x0d\x0a\x0a\x0d
11582     1: \x0d\x0d\x0a\x0a
11583     2: \x0d
11584    
11585    /-- --/
11586    
11587    /^abc$/BZ
11588    ------------------------------------------------------------------
11589            Bra
11590            ^
11591            abc
11592            $
11593            Ket
11594            End
11595    ------------------------------------------------------------------
11596    
11597    /^abc$/BZm
11598    ------------------------------------------------------------------
11599            Bra
11600         /m ^
11601            abc
11602         /m $
11603            Ket
11604            End
11605    ------------------------------------------------------------------
11606    
11607    /^(a)*+(\w)/S
11608        aaaaX
11609     0: aaaaX
11610     1: a
11611     2: X
11612        ** Failers
11613    No match
11614        aaaa
11615    No match
11616    
11617    /^(?:a)*+(\w)/S
11618        aaaaX
11619     0: aaaaX
11620     1: X
11621        ** Failers
11622    No match
11623        aaaa
11624    No match
11625    
11626    /(a)++1234/SDZ
11627    ------------------------------------------------------------------
11628            Bra
11629            CBraPos 1
11630            a
11631            KetRpos
11632            1234
11633            Ket
11634            End
11635    ------------------------------------------------------------------
11636    Capturing subpattern count = 1
11637    No options
11638    First char = 'a'
11639    Need char = '4'
11640    Subject length lower bound = 5
11641    No set of starting bytes
11642    
11643    /([abc])++1234/SI
11644    Capturing subpattern count = 1
11645    No options
11646    No first char
11647    Need char = '4'
11648    Subject length lower bound = 5
11649    Starting byte set: a b c
11650    
11651    /(?<=(abc)+)X/
11652    Failed: lookbehind assertion is not fixed length at offset 10
11653    
11654    /(^ab)/I
11655    Capturing subpattern count = 1
11656    Options: anchored
11657    No first char
11658    No need char
11659    
11660    /(^ab)++/I
11661    Capturing subpattern count = 1
11662    Options: anchored
11663    No first char
11664    No need char
11665    
11666    /(^ab|^)+/I
11667    Capturing subpattern count = 1
11668    Options: anchored
11669    No first char
11670    No need char
11671    
11672    /(^ab|^)++/I
11673    Capturing subpattern count = 1
11674    Options: anchored
11675    No first char
11676    No need char
11677    
11678    /(?:^ab)/I
11679    Capturing subpattern count = 0
11680    Options: anchored
11681    No first char
11682    No need char
11683    
11684    /(?:^ab)++/I
11685    Capturing subpattern count = 0
11686    Options: anchored
11687    No first char
11688    No need char
11689    
11690    /(?:^ab|^)+/I
11691    Capturing subpattern count = 0
11692    Options: anchored
11693    No first char
11694    No need char
11695    
11696    /(?:^ab|^)++/I
11697    Capturing subpattern count = 0
11698    Options: anchored
11699    No first char
11700    No need char
11701    
11702    /(.*ab)/I
11703    Capturing subpattern count = 1
11704    No options
11705    First char at start or follows newline
11706    Need char = 'b'
11707    
11708    /(.*ab)++/I
11709    Capturing subpattern count = 1
11710    No options
11711    First char at start or follows newline
11712    Need char = 'b'
11713    
11714    /(.*ab|.*)+/I
11715    Capturing subpattern count = 1
11716    No options
11717    First char at start or follows newline
11718    No need char
11719    
11720    /(.*ab|.*)++/I
11721    Capturing subpattern count = 1
11722    No options
11723    First char at start or follows newline
11724    No need char
11725    
11726    /(?:.*ab)/I
11727    Capturing subpattern count = 0
11728    No options
11729    First char at start or follows newline
11730    Need char = 'b'
11731    
11732    /(?:.*ab)++/I
11733    Capturing subpattern count = 0
11734    No options
11735    First char at start or follows newline
11736    Need char = 'b'
11737    
11738    /(?:.*ab|.*)+/I
11739    Capturing subpattern count = 0
11740    No options
11741    First char at start or follows newline
11742    No need char
11743    
11744    /(?:.*ab|.*)++/I
11745    Capturing subpattern count = 0
11746    No options
11747    First char at start or follows newline
11748    No need char
11749    
11750    /(?=a)[bcd]/I
11751    Capturing subpattern count = 0
11752    No options
11753    First char = 'a'
11754    No need char
11755    
11756    /((?=a))[bcd]/I
11757    Capturing subpattern count = 1
11758    No options
11759    First char = 'a'
11760    No need char
11761    
11762    /((?=a))+[bcd]/I
11763    Capturing subpattern count = 1
11764    No options
11765    First char = 'a'
11766    No need char
11767    
11768    /((?=a))++[bcd]/I
11769    Capturing subpattern count = 1
11770    No options
11771    First char = 'a'
11772    No need char
11773    
11774    /(?=a+)[bcd]/iI
11775    Capturing subpattern count = 0
11776    Options: caseless
11777    First char = 'a' (caseless)
11778    No need char
11779    
11780    /(?=a+?)[bcd]/iI
11781    Capturing subpattern count = 0
11782    Options: caseless
11783    First char = 'a' (caseless)
11784    No need char
11785    
11786    /(?=a++)[bcd]/iI
11787    Capturing subpattern count = 0
11788    Options: caseless
11789    First char = 'a' (caseless)
11790    No need char
11791    
11792    /(?=a{3})[bcd]/iI
11793    Capturing subpattern count = 0
11794    Options: caseless
11795    First char = 'a' (caseless)
11796    Need char = 'a' (caseless)
11797    
11798    /(abc)\1+/S
11799    
11800    /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11801    
11802    /(?1)(?:(b(*ACCEPT))){0}/
11803        b
11804     0: b
11805    
11806    /(?1)(?:(b(*ACCEPT))){0}c/
11807        bc
11808     0: bc
11809        ** Failers
11810    No match
11811        b
11812    No match
11813    
11814    /(?1)(?:((*ACCEPT))){0}c/
11815        c
11816     0: c
11817        c\N
11818     0: c
11819    
11820    /^.*?(?(?=a)a|b(*THEN)c)/
11821        ba
11822     0: ba
11823    
11824    /^.*?(?(?=a)a|bc)/
11825        ba
11826     0: ba
11827    
11828    /-- --/
11829    
11830    /-- These studied versions are here because they are not Perl-compatible; the
11831        studying means the mark is not seen. --/
11832    
11833    /(*MARK:A)(*SKIP:B)(C|X)/KS
11834        C
11835     0: C
11836     1: C
11837    MK: A
11838        D
11839    No match
11840    
11841    /(*:A)A+(*SKIP:A)(B|Z)/KS
11842        AAAC
11843    No match
11844    
11845    /-- --/
11846    
11847    "(?=a*(*ACCEPT)b)c"
11848        c
11849     0: c
11850        c\N
11851     0: c
11852    
11853    /(?1)c(?(DEFINE)((*ACCEPT)b))/
11854        c
11855     0: c
11856        c\N
11857     0: c
11858    
11859    /(?>(*ACCEPT)b)c/
11860        c
11861     0:
11862        c\N
11863    No match
11864    
11865    /(?:(?>(a)))+a%/++
11866        %aa%
11867     0: aa%
11868     0+
11869     1: a
11870     1+ a%
11871    
11872    /(a)b|ac/++
11873        ac\O3
11874    Matched, but too many substrings
11875     0: ac
11876     0+
11877    
11878    /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11879    Capturing subpattern count = 2
11880    No options
11881    No first char
11882    No need char
11883    Subject length lower bound = 1
11884    No set of starting bytes
11885    
11886    /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11887    Capturing subpattern count = 2
11888    No options
11889    No first char
11890    No need char
11891    Subject length lower bound = 3
11892    Starting byte set: a b
11893    
11894    /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11895    Capturing subpattern count = 2
11896    No options
11897    No first char
11898    No need char
11899    Subject length lower bound = 4
11900    Starting byte set: a b
11901    
11902    /(abc)(?1)/SI
11903    Capturing subpattern count = 1
11904    No options
11905    First char = 'a'
11906    Need char = 'c'
11907    Subject length lower bound = 6
11908    No set of starting bytes
11909    
11910    /^(?>a)++/
11911        aa\M
11912    Minimum match() limit = 5
11913    Minimum match() recursion limit = 3
11914     0: aa
11915        aaaaaaaaa\M
11916    Minimum match() limit = 12
11917    Minimum match() recursion limit = 3
11918     0: aaaaaaaaa
11919    
11920    /(a)(?1)++/
11921        aa\M
11922    Minimum match() limit = 7
11923    Minimum match() recursion limit = 5
11924     0: aa
11925     1: a
11926        aaaaaaaaa\M
11927    Minimum match() limit = 21
11928    Minimum match() recursion limit = 5
11929     0: aaaaaaaaa
11930     1: a
11931    
11932    /(?:(foo)|(bar)|(baz))X/=
11933        bazfooX
11934     0: fooX
11935     1: foo
11936     2: <unset>
11937     3: <unset>
11938        foobazbarX
11939     0: barX
11940     1: <unset>
11941     2: bar
11942     3: <unset>
11943        barfooX
11944     0: fooX
11945     1: foo
11946     2: <unset>
11947     3: <unset>
11948        bazX
11949     0: bazX
11950     1: <unset>
11951     2: <unset>
11952     3: baz
11953        foobarbazX
11954     0: bazX
11955     1: <unset>
11956     2: <unset>
11957     3: baz
11958        bazfooX\O0
11959    Matched, but too many substrings
11960        bazfooX\O2
11961    Matched, but too many substrings
11962     0: fooX
11963        bazfooX\O4
11964    Matched, but too many substrings
11965     0: fooX
11966     1: <unset>
11967        bazfooX\O6
11968    Matched, but too many substrings
11969     0: fooX
11970     1: foo
11971     2: <unset>
11972        bazfooX\O8
11973    Matched, but too many substrings
11974     0: fooX
11975     1: foo
11976     2: <unset>
11977     3: <unset>
11978        bazfooX\O10
11979    Matched, but too many substrings
11980     0: fooX
11981     1: foo
11982     2: <unset>
11983     3: <unset>
11984    
11985    /(?=abc){3}abc/BZ
11986    ------------------------------------------------------------------
11987            Bra
11988            Assert
11989            abc
11990            Ket
11991            abc
11992            Ket
11993            End
11994    ------------------------------------------------------------------
11995    
11996    /(?=abc)+abc/BZ
11997    ------------------------------------------------------------------
11998            Bra
11999            Assert
12000            abc
12001            Ket
12002            abc
12003            Ket
12004            End
12005    ------------------------------------------------------------------
12006    
12007    /(?=abc)++abc/BZ
12008    ------------------------------------------------------------------
12009            Bra
12010            Assert
12011            abc
12012            Ket
12013            abc
12014            Ket
12015            End
12016    ------------------------------------------------------------------
12017    
12018    /(?=abc){0}xyz/BZ
12019    ------------------------------------------------------------------
12020            Bra
12021            Skip zero
12022            Assert
12023            abc
12024            Ket
12025            xyz
12026            Ket
12027            End
12028    ------------------------------------------------------------------
12029    
12030    /(?=(a))?./BZ
12031    ------------------------------------------------------------------
12032            Bra
12033            Brazero
12034            Assert
12035            CBra 1
12036            a
12037            Ket
12038            Ket
12039            Any
12040            Ket
12041            End
12042    ------------------------------------------------------------------
12043    
12044    /(?=(a))??./BZ
12045    ------------------------------------------------------------------
12046            Bra
12047            Braminzero
12048            Assert
12049            CBra 1
12050            a
12051            Ket
12052            Ket
12053            Any
12054            Ket
12055            End
12056    ------------------------------------------------------------------
12057    
12058    /^(?=(a)){0}b(?1)/BZ
12059    ------------------------------------------------------------------
12060            Bra
12061            ^
12062            Skip zero
12063            Assert
12064            CBra 1
12065            a
12066            Ket
12067            Ket
12068            b
12069            Recurse
12070            Ket
12071            End
12072    ------------------------------------------------------------------
12073    
12074    /(?(DEFINE)(a))?b(?1)/BZ
12075    ------------------------------------------------------------------
12076            Bra
12077            Cond
12078            Cond def
12079            CBra 1
12080            a
12081            Ket
12082            Ket
12083            b
12084            Recurse
12085            Ket
12086            End
12087    ------------------------------------------------------------------
12088    
12089    /^(?=(?1))?[az]([abc])d/BZ
12090    ------------------------------------------------------------------
12091            Bra
12092            ^
12093            Brazero
12094            Assert
12095            Recurse
12096            Ket
12097            [az]
12098            CBra 1
12099            [a-c]
12100            Ket
12101            d
12102            Ket
12103            End
12104    ------------------------------------------------------------------
12105    
12106    /^(?!a){0}\w+/BZ
12107    ------------------------------------------------------------------
12108            Bra
12109            ^
12110            Skip zero
12111            Assert not
12112            a
12113            Ket
12114            \w+
12115            Ket
12116            End
12117    ------------------------------------------------------------------
12118    
12119    /(?<=(abc))?xyz/BZ
12120    ------------------------------------------------------------------
12121            Bra
12122            Brazero
12123            AssertB
12124            Reverse
12125            CBra 1
12126            abc
12127            Ket
12128            Ket
12129            xyz
12130            Ket
12131            End
12132    ------------------------------------------------------------------
12133    
12134  /-- End of testinput2 --/  /-- End of testinput2 --/

Legend:
Removed from v.511  
changed lines
  Added in v.637

  ViewVC Help
Powered by ViewVC 1.1.5