/[pcre]/code/trunk/testdata/testoutput2
ViewVC logotype

Diff of /code/trunk/testdata/testoutput2

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 500 by ph10, Sat Mar 6 19:00:29 2010 UTC revision 618 by ph10, Sat Jul 16 17:24:16 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 4394  No first char Line 4434  No first char
4434  Need char = 'z'  Need char = 'z'
4435    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4436  Minimum match() limit = 8  Minimum match() limit = 8
4437  Minimum match() recursion limit = 6  Minimum match() recursion limit = 7
4438   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4439   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4440    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4441  Minimum match() limit = 32768  Minimum match() limit = 32768
4442  Minimum match() recursion limit = 42  Minimum match() recursion limit = 43
4443  No match  No match
4444    
4445  /(aaa(?C1)bbb|ab)/I  /(aaa(?C1)bbb|ab)/I
# Line 4758  Need char = 'e' Line 4798  Need char = 'e'
4798   +4 ^   ^      e   +4 ^   ^      e
4799  No match  No match
4800    
4801  /a*b/ICDZ  /a*b/ICDZS
4802    ------------------------------------------------------------------
4803            Bra
4804            Callout 255 0 2
4805            a*+
4806            Callout 255 2 1
4807            b
4808            Callout 255 3 0
4809            Ket
4810            End
4811    ------------------------------------------------------------------
4812    Capturing subpattern count = 0
4813    Options:
4814    No first char
4815    Need char = 'b'
4816    Subject length lower bound = 1
4817    Starting byte set: a b
4818      ab
4819    --->ab
4820     +0 ^      a*
4821     +2 ^^     b
4822     +3 ^ ^
4823     0: ab
4824      aaaab
4825    --->aaaab
4826     +0 ^         a*
4827     +2 ^   ^     b
4828     +3 ^    ^
4829     0: aaaab
4830      aaaacb
4831    --->aaaacb
4832     +0 ^          a*
4833     +2 ^   ^      b
4834     +0  ^         a*
4835     +2  ^  ^      b
4836     +0   ^        a*
4837     +2   ^ ^      b
4838     +0    ^       a*
4839     +2    ^^      b
4840     +0      ^     a*
4841     +2      ^     b
4842     +3      ^^
4843     0: b
4844    
4845    /a*b/ICDZSS
4846  ------------------------------------------------------------------  ------------------------------------------------------------------
4847          Bra          Bra
4848          Callout 255 0 2          Callout 255 0 2
# Line 4841  Need char = 'b' Line 4925  Need char = 'b'
4925   +2    ^^      b   +2    ^^      b
4926  No match  No match
4927    
4928  /(abc|def)x/ICDZ  /(abc|def)x/ICDZS
4929    ------------------------------------------------------------------
4930            Bra
4931            Callout 255 0 9
4932            CBra 1
4933            Callout 255 1 1
4934            a
4935            Callout 255 2 1
4936            b
4937            Callout 255 3 1
4938            c
4939            Callout 255 4 0
4940            Alt
4941            Callout 255 5 1
4942            d
4943            Callout 255 6 1
4944            e
4945            Callout 255 7 1
4946            f
4947            Callout 255 8 0
4948            Ket
4949            Callout 255 9 1
4950            x
4951            Callout 255 10 0
4952            Ket
4953            End
4954    ------------------------------------------------------------------
4955    Capturing subpattern count = 1
4956    Options:
4957    No first char
4958    Need char = 'x'
4959    Subject length lower bound = 4
4960    Starting byte set: a d
4961      abcx
4962    --->abcx
4963     +0 ^        (abc|def)
4964     +1 ^        a
4965     +2 ^^       b
4966     +3 ^ ^      c
4967     +4 ^  ^     |
4968     +9 ^  ^     x
4969    +10 ^   ^
4970     0: abcx
4971     1: abc
4972      defx
4973    --->defx
4974     +0 ^        (abc|def)
4975     +1 ^        a
4976     +5 ^        d
4977     +6 ^^       e
4978     +7 ^ ^      f
4979     +8 ^  ^     )
4980     +9 ^  ^     x
4981    +10 ^   ^
4982     0: defx
4983     1: def
4984      ** Failers
4985    No match
4986      abcdefzx
4987    --->abcdefzx
4988     +0 ^            (abc|def)
4989     +1 ^            a
4990     +2 ^^           b
4991     +3 ^ ^          c
4992     +4 ^  ^         |
4993     +9 ^  ^         x
4994     +5 ^            d
4995     +0    ^         (abc|def)
4996     +1    ^         a
4997     +5    ^         d
4998     +6    ^^        e
4999     +7    ^ ^       f
5000     +8    ^  ^      )
5001     +9    ^  ^      x
5002    No match
5003    
5004    /(abc|def)x/ICDZSS
5005  ------------------------------------------------------------------  ------------------------------------------------------------------
5006          Bra          Bra
5007          Callout 255 0 9          Callout 255 0 9
# Line 4895  Need char = 'x' Line 5055  Need char = 'x'
5055  +10 ^   ^  +10 ^   ^
5056   0: defx   0: defx
5057   1: def   1: def
5058      ** Failers
5059    No match
5060    abcdefzx    abcdefzx
5061  --->abcdefzx  --->abcdefzx
5062   +0 ^            (abc|def)   +0 ^            (abc|def)
# Line 4995  No need char Line 5157  No need char
5157   0: abcdcdcd   0: abcdcdcd
5158   1: cd   1: cd
5159    
5160  /([ab]{,4}c|xy)/ICDZ  /([ab]{,4}c|xy)/ICDZS
5161    ------------------------------------------------------------------
5162            Bra
5163            Callout 255 0 14
5164            CBra 1
5165            Callout 255 1 4
5166            [ab]
5167            Callout 255 5 1
5168            {
5169            Callout 255 6 1
5170            ,
5171            Callout 255 7 1
5172            4
5173            Callout 255 8 1
5174            }
5175            Callout 255 9 1
5176            c
5177            Callout 255 10 0
5178            Alt
5179            Callout 255 11 1
5180            x
5181            Callout 255 12 1
5182            y
5183            Callout 255 13 0
5184            Ket
5185            Callout 255 14 0
5186            Ket
5187            End
5188    ------------------------------------------------------------------
5189    Capturing subpattern count = 1
5190    Options:
5191    No first char
5192    No need char
5193    Subject length lower bound = 2
5194    Starting byte set: a b x
5195        Note: that { does NOT introduce a quantifier
5196    --->Note: that { does NOT introduce a quantifier
5197     +0         ^                                        ([ab]{,4}c|xy)
5198     +1         ^                                        [ab]
5199     +5         ^^                                       {
5200    +11         ^                                        x
5201     +0                                 ^                ([ab]{,4}c|xy)
5202     +1                                 ^                [ab]
5203     +5                                 ^^               {
5204    +11                                 ^                x
5205     +0                                     ^            ([ab]{,4}c|xy)
5206     +1                                     ^            [ab]
5207     +5                                     ^^           {
5208    +11                                     ^            x
5209    No match
5210    
5211    /([ab]{,4}c|xy)/ICDZSS
5212  ------------------------------------------------------------------  ------------------------------------------------------------------
5213          Bra          Bra
5214          Callout 255 0 14          Callout 255 0 14
# Line 5447  No match Line 5660  No match
5660      123456\P      123456\P
5661  No match  No match
5662    
5663  /abc/I>testsavedregex  /abc/IS>testsavedregex
5664    Capturing subpattern count = 0
5665    No options
5666    First char = 'a'
5667    Need char = 'c'
5668    Subject length lower bound = 3
5669    No set of starting bytes
5670    Compiled pattern written to testsavedregex
5671    Study data written to testsavedregex
5672    <testsavedregex
5673    Compiled pattern loaded from testsavedregex
5674    Study data loaded from testsavedregex
5675        abc
5676     0: abc
5677        ** Failers
5678    No match
5679        bca
5680    No match
5681    
5682    /abc/ISS>testsavedregex
5683  Capturing subpattern count = 0  Capturing subpattern count = 0
5684  No options  No options
5685  First char = 'a'  First char = 'a'
5686  Need char = 'c'  Need char = 'c'
5687  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5688  <testsavedregex  <testsavedregex
5689  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5690  No study data  No study data
5691      abc      abc
5692   0: abc   0: abc
# Line 5463  No match Line 5695  No match
5695      bca      bca
5696  No match  No match
5697    
5698  /abc/IF>testsavedregex  /abc/IFS>testsavedregex
5699    Capturing subpattern count = 0
5700    No options
5701    First char = 'a'
5702    Need char = 'c'
5703    Subject length lower bound = 3
5704    No set of starting bytes
5705    Compiled pattern written to testsavedregex
5706    Study data written to testsavedregex
5707    <testsavedregex
5708    Compiled pattern (byte-inverted) loaded from testsavedregex
5709    Study data loaded from testsavedregex
5710        abc
5711     0: abc
5712        ** Failers
5713    No match
5714        bca
5715    No match
5716    
5717    /abc/IFSS>testsavedregex
5718  Capturing subpattern count = 0  Capturing subpattern count = 0
5719  No options  No options
5720  First char = 'a'  First char = 'a'
5721  Need char = 'c'  Need char = 'c'
5722  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5723  <testsavedregex  <testsavedregex
5724  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5725  No study data  No study data
5726      abc      abc
5727   0: abc   0: abc
# Line 5486  No first char Line 5737  No first char
5737  No need char  No need char
5738  Subject length lower bound = 1  Subject length lower bound = 1
5739  Starting byte set: a b  Starting byte set: a b
5740  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5741  Study data written to testsavedregex  Study data written to testsavedregex
5742  <testsavedregex  <testsavedregex
5743  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5744  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5745      abc      abc
5746   0: a   0: a
# Line 5500  Study data loaded from testsavedregex Line 5751  Study data loaded from testsavedregex
5751      def      def
5752  No match  No match
5753    
5754  /(a|b)/ISF>testsavedregex  /(a|b)/ISS>testsavedregex
5755  Capturing subpattern count = 1  Capturing subpattern count = 1
5756  No options  No options
5757  No first char  No first char
5758  No need char  No need char
5759  Subject length lower bound = 1  Compiled pattern written to testsavedregex
 Starting byte set: a b  
 Compiled regex written to testsavedregex  
 Study data written to testsavedregex  
5760  <testsavedregex  <testsavedregex
5761  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5762  Study data loaded from testsavedregex  No study data
5763      abc      abc
5764   0: a   0: a
5765   1: a   1: a
# Line 5521  Study data loaded from testsavedregex Line 5769  Study data loaded from testsavedregex
5769      def      def
5770  No match  No match
5771    
5772  ~<(\w+)/?>(.)*</(\1)>~smgI  /(a|b)/ISF>testsavedregex
5773  Capturing subpattern count = 3  Capturing subpattern count = 1
5774  Max back reference = 1  No options
5775    No first char
5776    No need char
5777    Subject length lower bound = 1
5778    Starting byte set: a b
5779    Compiled pattern written to testsavedregex
5780    Study data written to testsavedregex
5781    <testsavedregex
5782    Compiled pattern (byte-inverted) loaded from testsavedregex
5783    Study data loaded from testsavedregex
5784        abc
5785     0: a
5786     1: a
5787        ** Failers
5788     0: a
5789     1: a
5790        def
5791    No match
5792    
5793    /(a|b)/ISSF>testsavedregex
5794    Capturing subpattern count = 1
5795    No options
5796    No first char
5797    No need char
5798    Compiled pattern written to testsavedregex
5799    <testsavedregex
5800    Compiled pattern (byte-inverted) loaded from testsavedregex
5801    No study data
5802        abc
5803     0: a
5804     1: a
5805        ** Failers
5806     0: a
5807     1: a
5808        def
5809    No match
5810    
5811    ~<(\w+)/?>(.)*</(\1)>~smgI
5812    Capturing subpattern count = 3
5813    Max back reference = 1
5814  Options: multiline dotall  Options: multiline dotall
5815  First char = '<'  First char = '<'
5816  Need char = '>'  Need char = '>'
# Line 6391  No first char Line 6678  No first char
6678  No need char  No need char
6679     /* this is a C style comment */\M     /* this is a C style comment */\M
6680  Minimum match() limit = 120  Minimum match() limit = 120
6681  Minimum match() recursion limit = 6  Minimum match() recursion limit = 35
6682   0: /* this is a C style comment */   0: /* this is a C style comment */
6683   1: /* this is a C style comment */   1: /* this is a C style comment */
6684    
# Line 6644  No match Line 6931  No match
6931  ------------------------------------------------------------------  ------------------------------------------------------------------
6932          Bra          Bra
6933          ^          ^
6934          a*       /i a*
6935       NC A       /i A
6936          \d          \d
6937          Ket          Ket
6938          End          End
# Line 7273  Matched, but too many substrings Line 7560  Matched, but too many substrings
7560  /[^a]+a/BZi  /[^a]+a/BZi
7561  ------------------------------------------------------------------  ------------------------------------------------------------------
7562          Bra          Bra
7563          [^A]++       /i [^A]++
7564       NC a       /i a
7565          Ket          Ket
7566          End          End
7567  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7282  Matched, but too many substrings Line 7569  Matched, but too many substrings
7569  /[^a]+A/BZi  /[^a]+A/BZi
7570  ------------------------------------------------------------------  ------------------------------------------------------------------
7571          Bra          Bra
7572          [^A]++       /i [^A]++
7573       NC A       /i A
7574          Ket          Ket
7575          End          End
7576  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 8667  No match Line 8954  No match
8954  +13   ^  ^      (*FAIL)  +13   ^  ^      (*FAIL)
8955  No match  No match
8956    
 /a(*PRUNE:XXX)b/  
 Failed: (*VERB) with an argument is not supported at offset 8  
   
8957  /a(*MARK)b/  /a(*MARK)b/
8958  Failed: (*VERB) not recognized at offset 7  Failed: (*MARK) must have an argument at offset 7
8959    
8960  /(?i:A{1,}\6666666666)/  /(?i:A{1,}\6666666666)/
8961  Failed: number is too big at offset 19  Failed: number is too big at offset 19
# Line 8760  No match Line 9044  No match
9044  No match  No match
9045      a\x85b      a\x85b
9046  No match  No match
9047    
9048    /(*ANY).*/g
9049        abc\r\ndef
9050     0: abc
9051     0:
9052     0: def
9053     0:
9054    
9055    /(*ANYCRLF).*/g
9056        abc\r\ndef
9057     0: abc
9058     0:
9059     0: def
9060     0:
9061    
9062    /(*CRLF).*/g
9063        abc\r\ndef
9064     0: abc
9065     0:
9066     0: def
9067     0:
9068    
9069  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
9070  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 9246  No match Line 9551  No match
9551   +0        ^     x   +0        ^     x
9552   +0         ^    x   +0         ^    x
9553  No match  No match
9554    
9555    /(*NO_START_OPT)xyz/C
9556      abcxyz
9557    --->abcxyz
9558    +15 ^          x
9559    +15  ^         x
9560    +15   ^        x
9561    +15    ^       x
9562    +16    ^^      y
9563    +17    ^ ^     z
9564    +18    ^  ^
9565     0: xyz
9566    
9567    /xyz/CY
9568      abcxyz
9569    --->abcxyz
9570     +0 ^          x
9571     +0  ^         x
9572     +0   ^        x
9573     +0    ^       x
9574     +1    ^^      y
9575     +2    ^ ^     z
9576     +3    ^  ^
9577     0: xyz
9578    
9579  /^"((?(?=[a])[^"])|b)*"$/C  /^"((?(?=[a])[^"])|b)*"$/C
9580      "ab"      "ab"
# Line 10432  Partial match: abca Line 10761  Partial match: abca
10761      xxxxabcde\P\P      xxxxabcde\P\P
10762  Partial match: abcde  Partial match: abcde
10763    
10764  /-- 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
10765      and not behaving as specified in that it *does* bumpalong after hitting      broken and not behaving as specified in that it *does* bumpalong after
10766      (*COMMIT). --/      hitting (*COMMIT). --/
10767    
10768  /(?1)(A(*COMMIT)|B)D/  /(?1)(A(*COMMIT)|B)D/
10769      ABD      ABD
# Line 10514  Starting byte set: i Line 10843  Starting byte set: i
10843  /(?i)a(?-i)b|c/BZ  /(?i)a(?-i)b|c/BZ
10844  ------------------------------------------------------------------  ------------------------------------------------------------------
10845          Bra          Bra
10846       NC a       /i a
      00 Opt  
10847          b          b
10848          Alt          Alt
      00 Opt  
10849          c          c
10850          Ket          Ket
10851          End          End
# Line 10537  No match Line 10864  No match
10864  /(?i)a(?s)b|c/BZ  /(?i)a(?s)b|c/BZ
10865  ------------------------------------------------------------------  ------------------------------------------------------------------
10866          Bra          Bra
10867       NC a       /i ab
      05 Opt  
      NC b  
10868          Alt          Alt
10869       05 Opt       /i c
      NC c  
10870          Ket          Ket
10871          End          End
10872  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10550  No match Line 10874  No match
10874  /(?i)a(?s-i)b|c/BZ  /(?i)a(?s-i)b|c/BZ
10875  ------------------------------------------------------------------  ------------------------------------------------------------------
10876          Bra          Bra
10877       NC a       /i a
      04 Opt  
10878          b          b
10879          Alt          Alt
      04 Opt  
10880          c          c
10881          Ket          Ket
10882          End          End
# Line 10637  No match Line 10959  No match
10959          End          End
10960  ------------------------------------------------------------------  ------------------------------------------------------------------
10961    
10962  / -- 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
10963       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
10964       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
10965       believe this to be a Perl bug. --/       believe this to be a Perl bug. --/
# Line 10665  No match Line 10987  No match
10987    
10988  /----------------------/  /----------------------/
10989    
10990    /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10991    Failed: recursive call could loop indefinitely at offset 31
10992    
10993    /abc(*MARK:)pqr/
10994    Failed: (*MARK) must have an argument at offset 10
10995    
10996    /abc(*:)pqr/
10997    Failed: (*MARK) must have an argument at offset 6
10998    
10999    /abc(*FAIL:123)xyz/
11000    Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
11001    
11002    /--- This should, and does, fail. In Perl, it does not, which I think is a
11003         bug because replacing the B in the pattern by (B|D) does make it fail. ---/
11004    
11005    /A(*COMMIT)B/+K
11006        ACABX
11007    No match
11008    
11009    /--- These should be different, but in Perl 5.11 are not, which I think
11010         is a bug in Perl. ---/
11011    
11012    /A(*THEN)B|A(*THEN)C/K
11013        AC
11014     0: AC
11015    
11016    /A(*PRUNE)B|A(*PRUNE)C/K
11017        AC
11018    No match
11019    
11020    /--- A whole lot of tests of verbs with arguments are here rather than in test
11021         11 because Perl doesn't seem to follow its specification entirely
11022         correctly. ---/
11023    
11024    /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is
11025         not clear how Perl defines "involved in the failure of the match". ---/
11026    
11027    /^(A(*THEN:A)B|C(*THEN:B)D)/K
11028        AB
11029     0: AB
11030     1: AB
11031        CD
11032     0: CD
11033     1: CD
11034        ** Failers
11035    No match
11036        AC
11037    No match
11038        CB
11039    No match, mark = B
11040    
11041    /--- Check the use of names for success and failure. PCRE doesn't show these
11042    names for success, though Perl does, contrary to its spec. ---/
11043    
11044    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
11045        AB
11046     0: AB
11047     1: AB
11048        CD
11049     0: CD
11050     1: CD
11051        ** Failers
11052    No match
11053        AC
11054    No match, mark = A
11055        CB
11056    No match, mark = B
11057    
11058    /--- An empty name does not pass back an empty string. It is the same as if no
11059    name were given. ---/
11060    
11061    /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K
11062        AB
11063     0: AB
11064     1: AB
11065        CD
11066     0: CD
11067     1: CD
11068    
11069    /--- PRUNE goes to next bumpalong; COMMIT does not. ---/
11070    
11071    /A(*PRUNE:A)B/K
11072        ACAB
11073     0: AB
11074    
11075    /(*MARK:A)(*PRUNE:B)(C|X)/KS
11076        C
11077     0: C
11078     1: C
11079    MK: A
11080        D
11081    No match
11082    
11083    /(*MARK:A)(*PRUNE:B)(C|X)/KSS
11084        C
11085     0: C
11086     1: C
11087    MK: A
11088        D
11089    No match, mark = B
11090    
11091    /(*MARK:A)(*THEN:B)(C|X)/KS
11092        C
11093     0: C
11094     1: C
11095    MK: A
11096        D
11097    No match
11098    
11099    /(*MARK:A)(*THEN:B)(C|X)/KSS
11100        C
11101     0: C
11102     1: C
11103    MK: A
11104        D
11105    No match, mark = B
11106    
11107    /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/
11108    
11109    /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK
11110        AAAC
11111    No match
11112    
11113    /--- Same --/
11114    
11115    /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK
11116        AAAC
11117    No match
11118    
11119    /--- This should fail; the SKIP advances by one, but when we get to AC, the
11120         PRUNE kills it. ---/
11121    
11122    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
11123        AAAC
11124    No match
11125    
11126    /A(*:A)A+(*SKIP)(B|Z) | AC/xK
11127        AAAC
11128    No match
11129    
11130    /--- This should fail, as a null name is the same as no name ---/
11131    
11132    /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK
11133        AAAC
11134    No match
11135    
11136    /--- This fails in PCRE, and I think that is in accordance with Perl's
11137         documentation, though in Perl it succeeds. ---/
11138    
11139    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK
11140        AAAC
11141    No match
11142    
11143    /--- Mark names can be duplicated ---/
11144    
11145    /A(*:A)B|X(*:A)Y/K
11146        AABC
11147     0: AB
11148    MK: A
11149        XXYZ
11150     0: XY
11151    MK: A
11152    
11153    /^A(*:A)B|^X(*:A)Y/K
11154        ** Failers
11155    No match
11156        XAQQ
11157    No match, mark = A
11158    
11159    /--- A check on what happens after hitting a mark and them bumping along to
11160    something that does not even start. Perl reports tags after the failures here,
11161    though it does not when the individual letters are made into something
11162    more complicated. ---/
11163    
11164    /A(*:A)B|XX(*:B)Y/K
11165        AABC
11166     0: AB
11167    MK: A
11168        XXYZ
11169     0: XXY
11170    MK: B
11171        ** Failers
11172    No match
11173        XAQQ
11174    No match
11175        XAQQXZZ
11176    No match
11177        AXQQQ
11178    No match
11179        AXXQQQ
11180    No match
11181    
11182    /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
11183    optimizations defeat this. So does the PCRE optimization unless we disable it
11184    with \Y. ---/
11185    
11186    /(*COMMIT)ABC/
11187        ABCDEFG
11188     0: ABC
11189        ** Failers
11190    No match
11191        DEFGABC\Y
11192    No match
11193    
11194    /--- Repeat some tests with added studying. ---/
11195    
11196    /A(*COMMIT)B/+KS
11197        ACABX
11198    No match
11199    
11200    /A(*THEN)B|A(*THEN)C/KS
11201        AC
11202     0: AC
11203    
11204    /A(*PRUNE)B|A(*PRUNE)C/KS
11205        AC
11206    No match
11207    
11208    /^(A(*THEN:A)B|C(*THEN:B)D)/KS
11209        AB
11210     0: AB
11211     1: AB
11212        CD
11213     0: CD
11214     1: CD
11215        ** Failers
11216    No match
11217        AC
11218    No match
11219        CB
11220    No match, mark = B
11221    
11222    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/KS
11223        AB
11224     0: AB
11225     1: AB
11226        CD
11227     0: CD
11228     1: CD
11229        ** Failers
11230    No match
11231        AC
11232    No match, mark = A
11233        CB
11234    No match, mark = B
11235    
11236    /^(A(*PRUNE:)B|C(*PRUNE:B)D)/KS
11237        AB
11238     0: AB
11239     1: AB
11240        CD
11241     0: CD
11242     1: CD
11243    
11244    /A(*PRUNE:A)B/KS
11245        ACAB
11246     0: AB
11247    
11248    /(*MARK:A)(*PRUNE:B)(C|X)/KS
11249        C
11250     0: C
11251     1: C
11252    MK: A
11253        D
11254    No match
11255    
11256    /(*MARK:A)(*THEN:B)(C|X)/KS
11257        C
11258     0: C
11259     1: C
11260    MK: A
11261        D
11262    No match
11263    
11264    /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xKS
11265        AAAC
11266    No match
11267    
11268    /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xKS
11269        AAAC
11270    No match
11271    
11272    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xKS
11273        AAAC
11274    No match
11275    
11276    /A(*:A)A+(*SKIP)(B|Z) | AC/xKS
11277        AAAC
11278    No match
11279    
11280    /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xKS
11281        AAAC
11282    No match
11283    
11284    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xKS
11285        AAAC
11286    No match
11287    
11288    /A(*:A)B|XX(*:B)Y/KS
11289        AABC
11290     0: AB
11291    MK: A
11292        XXYZ
11293     0: XXY
11294    MK: B
11295        ** Failers
11296    No match
11297        XAQQ
11298    No match
11299        XAQQXZZ
11300    No match
11301        AXQQQ
11302    No match
11303        AXXQQQ
11304    No match
11305    
11306    /(*COMMIT)ABC/
11307        ABCDEFG
11308     0: ABC
11309        ** Failers
11310    No match
11311        DEFGABC\Y
11312    No match
11313    
11314    /^(ab (c+(*THEN)cd) | xyz)/x
11315        abcccd
11316    No match
11317    
11318    /^(ab (c+(*PRUNE)cd) | xyz)/x
11319        abcccd
11320    No match
11321    
11322    /^(ab (c+(*FAIL)cd) | xyz)/x
11323        abcccd
11324    No match
11325    
11326    /--- Perl 5.11 gets some of these wrong ---/
11327    
11328    /(?>.(*ACCEPT))*?5/
11329        abcde
11330     0: a
11331    
11332    /(.(*ACCEPT))*?5/
11333        abcde
11334     0: a
11335     1: a
11336    
11337    /(.(*ACCEPT))5/
11338        abcde
11339     0: a
11340     1: a
11341    
11342    /(.(*ACCEPT))*5/
11343        abcde
11344     0: a
11345     1: a
11346    
11347    /A\NB./BZ
11348    ------------------------------------------------------------------
11349            Bra
11350            A
11351            Any
11352            B
11353            Any
11354            Ket
11355            End
11356    ------------------------------------------------------------------
11357        ACBD
11358     0: ACBD
11359        *** Failers
11360    No match
11361        A\nB
11362    No match
11363        ACB\n
11364    No match
11365    
11366    /A\NB./sBZ
11367    ------------------------------------------------------------------
11368            Bra
11369            A
11370            Any
11371            B
11372            AllAny
11373            Ket
11374            End
11375    ------------------------------------------------------------------
11376        ACBD
11377     0: ACBD
11378        ACB\n
11379     0: ACB\x0a
11380        *** Failers
11381    No match
11382        A\nB
11383    No match
11384    
11385    /A\NB/<crlf>
11386        A\nB
11387     0: A\x0aB
11388        A\rB
11389     0: A\x0dB
11390        ** Failers
11391    No match
11392        A\r\nB
11393    No match
11394    
11395    /\R+b/BZ
11396    ------------------------------------------------------------------
11397            Bra
11398            \R++
11399            b
11400            Ket
11401            End
11402    ------------------------------------------------------------------
11403    
11404    /\R+\n/BZ
11405    ------------------------------------------------------------------
11406            Bra
11407            \R+
11408            \x0a
11409            Ket
11410            End
11411    ------------------------------------------------------------------
11412    
11413    /\R+\d/BZ
11414    ------------------------------------------------------------------
11415            Bra
11416            \R++
11417            \d
11418            Ket
11419            End
11420    ------------------------------------------------------------------
11421    
11422    /\d*\R/BZ
11423    ------------------------------------------------------------------
11424            Bra
11425            \d*+
11426            \R
11427            Ket
11428            End
11429    ------------------------------------------------------------------
11430    
11431    /\s*\R/BZ
11432    ------------------------------------------------------------------
11433            Bra
11434            \s*+
11435            \R
11436            Ket
11437            End
11438    ------------------------------------------------------------------
11439    
11440    /-- Perl treats this one differently, not failing the second string. I believe
11441        that is a bug in Perl. --/
11442    
11443    /^((abc|abcx)(*THEN)y|abcd)/
11444        abcd
11445     0: abcd
11446     1: abcd
11447        *** Failers
11448    No match
11449        abcxy
11450    No match
11451    
11452    /(?<=abc)def/
11453        abc\P\P
11454    Partial match: abc
11455    
11456    /abc$/
11457        abc
11458     0: abc
11459        abc\P
11460     0: abc
11461        abc\P\P
11462    Partial match: abc
11463    
11464    /abc$/m
11465        abc
11466     0: abc
11467        abc\n
11468     0: abc
11469        abc\P\P
11470    Partial match: abc
11471        abc\n\P\P
11472     0: abc
11473        abc\P
11474     0: abc
11475        abc\n\P
11476     0: abc
11477    
11478    /abc\z/
11479        abc
11480     0: abc
11481        abc\P
11482     0: abc
11483        abc\P\P
11484    Partial match: abc
11485    
11486    /abc\Z/
11487        abc
11488     0: abc
11489        abc\P
11490     0: abc
11491        abc\P\P
11492    Partial match: abc
11493    
11494    /abc\b/
11495        abc
11496     0: abc
11497        abc\P
11498     0: abc
11499        abc\P\P
11500    Partial match: abc
11501    
11502    /abc\B/
11503        abc
11504    No match
11505        abc\P
11506    Partial match: abc
11507        abc\P\P
11508    Partial match: abc
11509    
11510    /.+/
11511        abc\>0
11512     0: abc
11513        abc\>1
11514     0: bc
11515        abc\>2
11516     0: c
11517        abc\>3
11518    No match
11519        abc\>4
11520    Error -24 (bad offset value)
11521        abc\>-4
11522    Error -24 (bad offset value)
11523    
11524    /^\cģ/
11525    Failed: \c must be followed by an ASCII character at offset 3
11526    
11527    /(?P<abn>(?P=abn)xxx)/BZ
11528    ------------------------------------------------------------------
11529            Bra
11530            Once
11531            CBra 1
11532            \1
11533            xxx
11534            Ket
11535            Ket
11536            Ket
11537            End
11538    ------------------------------------------------------------------
11539    
11540    /(a\1z)/BZ
11541    ------------------------------------------------------------------
11542            Bra
11543            Once
11544            CBra 1
11545            a
11546            \1
11547            z
11548            Ket
11549            Ket
11550            Ket
11551            End
11552    ------------------------------------------------------------------
11553    
11554    /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
11555    Failed: syntax error in subpattern name (missing terminator) at offset 29
11556    
11557    /(?P<abn>(?P=axn)xxx)/BZ
11558    Failed: reference to non-existent subpattern at offset 15
11559    
11560    /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
11561    ------------------------------------------------------------------
11562            Bra
11563            CBra 1
11564            \2
11565            xxx
11566            Ket
11567            CBra 2
11568            yy
11569            Ket
11570            Ket
11571            End
11572    ------------------------------------------------------------------
11573    
11574    /-- These tests are here because Perl gets the first one wrong. --/
11575    
11576    /(\R*)(.)/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    /(\R)*(.)/s
11591        \r\n
11592     0: \x0d
11593     1: <unset>
11594     2: \x0d
11595        \r\r\n\n\r
11596     0: \x0d\x0d\x0a\x0a\x0d
11597     1: \x0a
11598     2: \x0d
11599        \r\r\n\n\r\n
11600     0: \x0d\x0d\x0a\x0a\x0d
11601     1: \x0a
11602     2: \x0d
11603    
11604    /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
11605        \r\n
11606     0: \x0d
11607     1:
11608     2: \x0d
11609        \r\r\n\n\r
11610     0: \x0d\x0d\x0a\x0a\x0d
11611     1: \x0d\x0d\x0a\x0a
11612     2: \x0d
11613        \r\r\n\n\r\n
11614     0: \x0d\x0d\x0a\x0a\x0d
11615     1: \x0d\x0d\x0a\x0a
11616     2: \x0d
11617    
11618    /-- --/
11619    
11620    /^abc$/BZ
11621    ------------------------------------------------------------------
11622            Bra
11623            ^
11624            abc
11625            $
11626            Ket
11627            End
11628    ------------------------------------------------------------------
11629    
11630    /^abc$/BZm
11631    ------------------------------------------------------------------
11632            Bra
11633         /m ^
11634            abc
11635         /m $
11636            Ket
11637            End
11638    ------------------------------------------------------------------
11639    
11640    /^(a)*+(\w)/S
11641        aaaaX
11642     0: aaaaX
11643     1: a
11644     2: X
11645        ** Failers
11646    No match
11647        aaaa
11648    No match
11649    
11650    /^(?:a)*+(\w)/S
11651        aaaaX
11652     0: aaaaX
11653     1: X
11654        ** Failers
11655    No match
11656        aaaa
11657    No match
11658    
11659    /(a)++1234/SDZ
11660    ------------------------------------------------------------------
11661            Bra
11662            CBraPos 1
11663            a
11664            KetRpos
11665            1234
11666            Ket
11667            End
11668    ------------------------------------------------------------------
11669    Capturing subpattern count = 1
11670    No options
11671    First char = 'a'
11672    Need char = '4'
11673    Subject length lower bound = 5
11674    No set of starting bytes
11675    
11676    /([abc])++1234/SI
11677    Capturing subpattern count = 1
11678    No options
11679    No first char
11680    Need char = '4'
11681    Subject length lower bound = 5
11682    Starting byte set: a b c
11683    
11684    /(?<=(abc)+)X/
11685    Failed: lookbehind assertion is not fixed length at offset 10
11686    
11687    /(^ab)/I
11688    Capturing subpattern count = 1
11689    Options: anchored
11690    No first char
11691    No need char
11692    
11693    /(^ab)++/I
11694    Capturing subpattern count = 1
11695    Options: anchored
11696    No first char
11697    No need char
11698    
11699    /(^ab|^)+/I
11700    Capturing subpattern count = 1
11701    Options: anchored
11702    No first char
11703    No need char
11704    
11705    /(^ab|^)++/I
11706    Capturing subpattern count = 1
11707    Options: anchored
11708    No first char
11709    No need char
11710    
11711    /(?:^ab)/I
11712    Capturing subpattern count = 0
11713    Options: anchored
11714    No first char
11715    No need char
11716    
11717    /(?:^ab)++/I
11718    Capturing subpattern count = 0
11719    Options: anchored
11720    No first char
11721    No need char
11722    
11723    /(?:^ab|^)+/I
11724    Capturing subpattern count = 0
11725    Options: anchored
11726    No first char
11727    No need char
11728    
11729    /(?:^ab|^)++/I
11730    Capturing subpattern count = 0
11731    Options: anchored
11732    No first char
11733    No need char
11734    
11735    /(.*ab)/I
11736    Capturing subpattern count = 1
11737    No options
11738    First char at start or follows newline
11739    Need char = 'b'
11740    
11741    /(.*ab)++/I
11742    Capturing subpattern count = 1
11743    No options
11744    First char at start or follows newline
11745    Need char = 'b'
11746    
11747    /(.*ab|.*)+/I
11748    Capturing subpattern count = 1
11749    No options
11750    First char at start or follows newline
11751    No need char
11752    
11753    /(.*ab|.*)++/I
11754    Capturing subpattern count = 1
11755    No options
11756    First char at start or follows newline
11757    No need char
11758    
11759    /(?:.*ab)/I
11760    Capturing subpattern count = 0
11761    No options
11762    First char at start or follows newline
11763    Need char = 'b'
11764    
11765    /(?:.*ab)++/I
11766    Capturing subpattern count = 0
11767    No options
11768    First char at start or follows newline
11769    Need char = 'b'
11770    
11771    /(?:.*ab|.*)+/I
11772    Capturing subpattern count = 0
11773    No options
11774    First char at start or follows newline
11775    No need char
11776    
11777    /(?:.*ab|.*)++/I
11778    Capturing subpattern count = 0
11779    No options
11780    First char at start or follows newline
11781    No need char
11782    
11783    /(?=a)[bcd]/I
11784    Capturing subpattern count = 0
11785    No options
11786    First char = 'a'
11787    No need char
11788    
11789    /((?=a))[bcd]/I
11790    Capturing subpattern count = 1
11791    No options
11792    First char = 'a'
11793    No need char
11794    
11795    /((?=a))+[bcd]/I
11796    Capturing subpattern count = 1
11797    No options
11798    First char = 'a'
11799    No need char
11800    
11801    /((?=a))++[bcd]/I
11802    Capturing subpattern count = 1
11803    No options
11804    First char = 'a'
11805    No need char
11806    
11807    /(?=a+)[bcd]/iI
11808    Capturing subpattern count = 0
11809    Options: caseless
11810    First char = 'a' (caseless)
11811    No need char
11812    
11813    /(?=a+?)[bcd]/iI
11814    Capturing subpattern count = 0
11815    Options: caseless
11816    First char = 'a' (caseless)
11817    No need char
11818    
11819    /(?=a++)[bcd]/iI
11820    Capturing subpattern count = 0
11821    Options: caseless
11822    First char = 'a' (caseless)
11823    No need char
11824    
11825    /(?=a{3})[bcd]/iI
11826    Capturing subpattern count = 0
11827    Options: caseless
11828    First char = 'a' (caseless)
11829    Need char = 'a' (caseless)
11830    
11831    /(abc)\1+/S
11832    
11833    /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11834    
11835    /(?1)(?:(b(*ACCEPT))){0}/
11836        b
11837     0: b
11838    
11839    /(?1)(?:(b(*ACCEPT))){0}c/
11840        bc
11841     0: bc
11842        ** Failers
11843    No match
11844        b
11845    No match
11846    
11847    /(?1)(?:((*ACCEPT))){0}c/
11848        c
11849     0: c
11850        c\N
11851     0: c
11852    
11853    /^.*?(?(?=a)a|b(*THEN)c)/
11854        ba
11855     0: ba
11856    
11857    /^.*?(?(?=a)a|bc)/
11858        ba
11859     0: ba
11860    
11861    /-- --/
11862    
11863    /-- These studied versions are here because they are not Perl-compatible; the
11864        studying means the mark is not seen. --/
11865    
11866    /(*MARK:A)(*SKIP:B)(C|X)/KS
11867        C
11868     0: C
11869     1: C
11870    MK: A
11871        D
11872    No match
11873    
11874    /(*:A)A+(*SKIP:A)(B|Z)/KS
11875        AAAC
11876    No match
11877    
11878    /-- --/
11879    
11880    "(?=a*(*ACCEPT)b)c"
11881        c
11882     0: c
11883        c\N
11884     0: c
11885    
11886    /(?1)c(?(DEFINE)((*ACCEPT)b))/
11887        c
11888     0: c
11889        c\N
11890     0: c
11891    
11892    /(?>(*ACCEPT)b)c/
11893        c
11894     0:
11895        c\N
11896    No match
11897    
11898    /(?:(?>(a)))+a%/++
11899        %aa%
11900     0: aa%
11901     0+
11902     1: a
11903     1+ a%
11904    
11905    /(a)b|ac/++
11906        ac\O3
11907    Matched, but too many substrings
11908     0: ac
11909     0+
11910    
11911  /-- End of testinput2 --/  /-- End of testinput2 --/

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

  ViewVC Help
Powered by ViewVC 1.1.5