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

Diff of /code/trunk/testdata/testinput1

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

revision 754 by ph10, Sat Nov 19 18:32:18 2011 UTC revision 934 by ph10, Sat Feb 25 12:30:36 2012 UTC
# Line 1  Line 1 
1  /-- This set of tests is for features that are compatible with all versions of  /-- This set of tests is for features that are compatible with all versions of
2      Perl 5, in non-UTF-8 mode. --/      Perl >= 5.10, in non-UTF-8 mode. It should run clean for both the 8-bit and
3        16-bit PCRE libraries. --/
4    
5  /the quick brown fox/  /the quick brown fox/
6      the quick brown fox      the quick brown fox
# Line 4318  Line 4319 
4319  /a[\C-X]b/  /a[\C-X]b/
4320      aJb      aJb
4321    
4322    /\H\h\V\v/
4323        X X\x0a
4324        X\x09X\x0b
4325        ** Failers
4326        \xa0 X\x0a
4327    
4328    /\H*\h+\V?\v{3,4}/
4329        \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a
4330        \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a
4331        \x09\x20\xa0\x0a\x0b\x0c
4332        ** Failers
4333        \x09\x20\xa0\x0a\x0b
4334    
4335    /\H{3,4}/
4336        XY  ABCDE
4337        XY  PQR ST
4338    
4339    /.\h{3,4}./
4340        XY  AB    PQRS
4341    
4342    /\h*X\h?\H+Y\H?Z/
4343        >XNNNYZ
4344        >  X NYQZ
4345        ** Failers
4346        >XYZ
4347        >  X NY Z
4348    
4349    /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/
4350        >XY\x0aZ\x0aA\x0bNN\x0c
4351        >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
4352    
4353    /(foo)\Kbar/
4354        foobar
4355    
4356    /(foo)(\Kbar|baz)/
4357        foobar
4358        foobaz
4359    
4360    /(foo\Kbar)baz/
4361        foobarbaz
4362    
4363    /abc\K|def\K/g+
4364        Xabcdefghi
4365    
4366    /ab\Kc|de\Kf/g+
4367        Xabcdefghi
4368    
4369    /(?=C)/g+
4370        ABCDECBA
4371    
4372    /^abc\K/+
4373        abcdef
4374        ** Failers
4375        defabcxyz
4376    
4377    /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/
4378        ababababbbabZXXXX
4379    
4380    /(?<A>tom|bon)-\g{A}/
4381        tom-tom
4382        bon-bon
4383    
4384    /(^(a|b\g{-1}))/
4385        bacxxx
4386    
4387    /(?|(abc)|(xyz))\1/
4388        abcabc
4389        xyzxyz
4390        ** Failers
4391        abcxyz
4392        xyzabc
4393    
4394    /(?|(abc)|(xyz))(?1)/
4395        abcabc
4396        xyzabc
4397        ** Failers
4398        xyzxyz
4399    
4400    /^X(?5)(a)(?|(b)|(q))(c)(d)(Y)/
4401        XYabcdY
4402    
4403    /^X(?7)(a)(?|(b|(r)(s))|(q))(c)(d)(Y)/
4404        XYabcdY
4405    
4406    /^X(?7)(a)(?|(b|(?|(r)|(t))(s))|(q))(c)(d)(Y)/
4407        XYabcdY
4408    
4409    /(?'abc'\w+):\k<abc>{2}/
4410        a:aaxyz
4411        ab:ababxyz
4412        ** Failers
4413        a:axyz
4414        ab:abxyz
4415    
4416    /(?'abc'\w+):\g{abc}{2}/
4417        a:aaxyz
4418        ab:ababxyz
4419        ** Failers
4420        a:axyz
4421        ab:abxyz
4422    
4423    /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x
4424        abd
4425        ce
4426    
4427    /^(a.)\g-1Z/
4428        aXaXZ
4429    
4430    /^(a.)\g{-1}Z/
4431        aXaXZ
4432    
4433    /^(?(DEFINE) (?<A> a) (?<B> b) )  (?&A) (?&B) /x
4434        abcd
4435    
4436    /(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT))
4437      (?(DEFINE)
4438      (?<NAME_PAT>[a-z]+)
4439      (?<ADDRESS_PAT>\d+)
4440      )/x
4441        metcalfe 33
4442    
4443    /(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/
4444        1.2.3.4
4445        131.111.10.206
4446        10.0.0.0
4447        ** Failers
4448        10.6
4449        455.3.4.5
4450    
4451    /\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/
4452        1.2.3.4
4453        131.111.10.206
4454        10.0.0.0
4455        ** Failers
4456        10.6
4457        455.3.4.5
4458    
4459    /^(\w++|\s++)*$/
4460        now is the time for all good men to come to the aid of the party
4461        *** Failers
4462        this is not a line with only words and spaces!
4463    
4464    /(\d++)(\w)/
4465        12345a
4466        *** Failers
4467        12345+
4468    
4469    /a++b/
4470        aaab
4471    
4472    /(a++b)/
4473        aaab
4474    
4475    /(a++)b/
4476        aaab
4477    
4478    /([^()]++|\([^()]*\))+/
4479        ((abc(ade)ufh()()x
4480    
4481    /\(([^()]++|\([^()]+\))+\)/
4482        (abc)
4483        (abc(def)xyz)
4484        *** Failers
4485        ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4486    
4487    /^([^()]|\((?1)*\))*$/
4488        abc
4489        a(b)c
4490        a(b(c))d
4491        *** Failers)
4492        a(b(c)d
4493    
4494    /^>abc>([^()]|\((?1)*\))*<xyz<$/
4495       >abc>123<xyz<
4496       >abc>1(2)3<xyz<
4497       >abc>(1(2)3)<xyz<
4498    
4499    /^(?:((.)(?1)\2|)|((.)(?3)\4|.))$/i
4500        1221
4501        Satanoscillatemymetallicsonatas
4502        AmanaplanacanalPanama
4503        AblewasIereIsawElba
4504        *** Failers
4505        Thequickbrownfox
4506    
4507    /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/
4508        12
4509        (((2+2)*-3)-7)
4510        -12
4511        *** Failers
4512        ((2+2)*-3)-7)
4513    
4514    /^(x(y|(?1){2})z)/
4515        xyz
4516        xxyzxyzz
4517        *** Failers
4518        xxyzz
4519        xxyzxyzxyzz
4520    
4521    /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x
4522        <>
4523        <abcd>
4524        <abc <123> hij>
4525        <abc <def> hij>
4526        <abc<>def>
4527        <abc<>
4528        *** Failers
4529        <abc
4530    
4531    /^a+(*FAIL)/
4532        aaaaaa
4533    
4534    /a+b?c+(*FAIL)/
4535        aaabccc
4536    
4537    /a+b?(*PRUNE)c+(*FAIL)/
4538        aaabccc
4539    
4540    /a+b?(*COMMIT)c+(*FAIL)/
4541        aaabccc
4542    
4543    /a+b?(*SKIP)c+(*FAIL)/
4544        aaabcccaaabccc
4545    
4546    /^(?:aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/
4547        aaaxxxxxx
4548        aaa++++++
4549        bbbxxxxx
4550        bbb+++++
4551        cccxxxx
4552        ccc++++
4553        dddddddd
4554    
4555    /^(aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/
4556        aaaxxxxxx
4557        aaa++++++
4558        bbbxxxxx
4559        bbb+++++
4560        cccxxxx
4561        ccc++++
4562        dddddddd
4563    
4564    /a+b?(*THEN)c+(*FAIL)/
4565        aaabccc
4566    
4567    /(A (A|B(*ACCEPT)|C) D)(E)/x
4568        AB
4569        ABX
4570        AADE
4571        ACDE
4572        ** Failers
4573        AD
4574    
4575    /^\W*+(?:((.)\W*+(?1)\W*+\2|)|((.)\W*+(?3)\W*+\4|\W*+.\W*+))\W*+$/i
4576        1221
4577        Satan, oscillate my metallic sonatas!
4578        A man, a plan, a canal: Panama!
4579        Able was I ere I saw Elba.
4580        *** Failers
4581        The quick brown fox
4582    
4583    /^((.)(?1)\2|.)$/
4584        a
4585        aba
4586        aabaa
4587        abcdcba
4588        pqaabaaqp
4589        ablewasiereisawelba
4590        rhubarb
4591        the quick brown fox
4592    
4593    /(a)(?<=b(?1))/
4594        baz
4595        ** Failers
4596        caz
4597    
4598    /(?<=b(?1))(a)/
4599        zbaaz
4600        ** Failers
4601        aaa
4602    
4603    /(?<X>a)(?<=b(?&X))/
4604        baz
4605    
4606    /^(?|(abc)|(def))\1/
4607        abcabc
4608        defdef
4609        ** Failers
4610        abcdef
4611        defabc
4612    
4613    /^(?|(abc)|(def))(?1)/
4614        abcabc
4615        defabc
4616        ** Failers
4617        defdef
4618        abcdef
4619    
4620    /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |b(?<quote> (?<apostrophe>')|(?<realquote>")) ) (?('quote')[a-z]+|[0-9]+)/xJ
4621        a\"aaaaa
4622        b\"aaaaa
4623        ** Failers
4624        b\"11111
4625    
4626    /(?:(?1)|B)(A(*F)|C)/
4627        ABCD
4628        CCD
4629        ** Failers
4630        CAD
4631    
4632    /^(?:(?1)|B)(A(*F)|C)/
4633        CCD
4634        BCD
4635        ** Failers
4636        ABCD
4637        CAD
4638        BAD
4639    
4640    /(?:(?1)|B)(A(*ACCEPT)XX|C)D/
4641        AAD
4642        ACD
4643        BAD
4644        BCD
4645        BAX
4646        ** Failers
4647        ACX
4648        ABC
4649    
4650    /(?(DEFINE)(A))B(?1)C/
4651        BAC
4652    
4653    /(?(DEFINE)((A)\2))B(?1)C/
4654        BAAC
4655    
4656    /(?<pn> \( ( [^()]++ | (?&pn) )* \) )/x
4657        (ab(cd)ef)
4658    
4659    /^(?!a(*SKIP)b)/
4660        ac
4661    
4662    /^(?=a(*SKIP)b|ac)/
4663        ** Failers
4664        ac
4665    
4666    /^(?=a(*THEN)b|ac)/
4667        ac
4668    
4669    /^(?=a(*PRUNE)b)/
4670        ab
4671        ** Failers
4672        ac
4673    
4674    /^(?=a(*ACCEPT)b)/
4675        ac
4676    
4677    /^(?(?!a(*SKIP)b))/
4678        ac
4679    
4680    /(?>a\Kb)/
4681        ab
4682    
4683    /((?>a\Kb))/
4684        ab
4685    
4686    /(a\Kb)/
4687        ab
4688    
4689    /^a\Kcz|ac/
4690        ac
4691    
4692    /(?>a\Kbz|ab)/
4693        ab
4694    
4695    /^(?&t)(?(DEFINE)(?<t>a\Kb))$/
4696        ab
4697    
4698    /^([^()]|\((?1)*\))*$/
4699        a(b)c
4700        a(b(c)d)e
4701    
4702    /(?P<L1>(?P<L2>0)(?P>L1)|(?P>L2))/
4703        0
4704        00
4705        0000
4706    
4707    /(?P<L1>(?P<L2>0)|(?P>L2)(?P>L1))/
4708        0
4709        00
4710        0000
4711    
4712    /--- This one does fail, as expected, in Perl. It needs the complex item at the
4713         end of the pattern. A single letter instead of (B|D) makes it not fail,
4714         which I think is a Perl bug. --- /
4715    
4716    /A(*COMMIT)(B|D)/
4717        ACABX
4718    
4719    /--- Check the use of names for failure ---/
4720    
4721    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
4722        ** Failers
4723        AC
4724        CB
4725    
4726    /--- Force no study, otherwise mark is not seen. The studied version is in
4727         test 2 because it isn't Perl-compatible. ---/
4728    
4729    /(*MARK:A)(*SKIP:B)(C|X)/KSS
4730        C
4731        D
4732    
4733    /^(A(*THEN:A)B|C(*THEN:B)D)/K
4734        ** Failers
4735        CB
4736    
4737    /^(?:A(*THEN:A)B|C(*THEN:B)D)/K
4738        CB
4739    
4740    /^(?>A(*THEN:A)B|C(*THEN:B)D)/K
4741        CB
4742    
4743    /--- This should succeed, as the skip causes bump to offset 1 (the mark). Note
4744    that we have to have something complicated such as (B|Z) at the end because,
4745    for Perl, a simple character somehow causes an unwanted optimization to mess
4746    with the handling of backtracking verbs. ---/
4747    
4748    /A(*MARK:A)A+(*SKIP:A)(B|Z) | AC/xK
4749        AAAC
4750    
4751    /--- Test skipping over a non-matching mark. ---/
4752    
4753    /A(*MARK:A)A+(*MARK:B)(*SKIP:A)(B|Z) | AC/xK
4754        AAAC
4755    
4756    /--- Check shorthand for MARK ---/
4757    
4758    /A(*:A)A+(*SKIP:A)(B|Z) | AC/xK
4759        AAAC
4760    
4761    /--- Don't loop! Force no study, otherwise mark is not seen. ---/
4762    
4763    /(*:A)A+(*SKIP:A)(B|Z)/KSS
4764        AAAC
4765    
4766    /--- This should succeed, as a non-existent skip name disables the skip ---/
4767    
4768    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AC/xK
4769        AAAC
4770    
4771    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AC(*:B)/xK
4772        AAAC
4773    
4774    /--- COMMIT at the start of a pattern should act like an anchor. Again,
4775    however, we need the complication for Perl. ---/
4776    
4777    /(*COMMIT)(A|P)(B|P)(C|P)/
4778        ABCDEFG
4779        ** Failers
4780        DEFGABC
4781    
4782    /--- COMMIT inside an atomic group can't stop backtracking over the group. ---/
4783    
4784    /(\w+)(?>b(*COMMIT))\w{2}/
4785        abbb
4786    
4787    /(\w+)b(*COMMIT)\w{2}/
4788        abbb
4789    
4790    /--- Check opening parens in comment when seeking forward reference. ---/
4791    
4792    /(?&t)(?#()(?(DEFINE)(?<t>a))/
4793        bac
4794    
4795    /--- COMMIT should override THEN ---/
4796    
4797    /(?>(*COMMIT)(?>yes|no)(*THEN)(*F))?/
4798      yes
4799    
4800    /(?>(*COMMIT)(yes|no)(*THEN)(*F))?/
4801      yes
4802    
4803    /b?(*SKIP)c/
4804        bc
4805        abc
4806    
4807    /(*SKIP)bc/
4808        a
4809    
4810    /(*SKIP)b/
4811        a
4812    
4813    /(?P<abn>(?P=abn)xxx|)+/
4814        xxx
4815    
4816    /(?i:([^b]))(?1)/
4817        aa
4818        aA
4819        ** Failers
4820        ab
4821        aB
4822        Ba
4823        ba
4824    
4825    /^(?&t)*+(?(DEFINE)(?<t>a))\w$/
4826        aaaaaaX
4827        ** Failers
4828        aaaaaa
4829    
4830    /^(?&t)*(?(DEFINE)(?<t>a))\w$/
4831        aaaaaaX
4832        aaaaaa
4833    
4834    /^(a)*+(\w)/
4835        aaaaX
4836        YZ
4837        ** Failers
4838        aaaa
4839    
4840    /^(?:a)*+(\w)/
4841        aaaaX
4842        YZ
4843        ** Failers
4844        aaaa
4845    
4846    /^(a)++(\w)/
4847        aaaaX
4848        ** Failers
4849        aaaa
4850        YZ
4851    
4852    /^(?:a)++(\w)/
4853        aaaaX
4854        ** Failers
4855        aaaa
4856        YZ
4857    
4858    /^(a)?+(\w)/
4859        aaaaX
4860        YZ
4861    
4862    /^(?:a)?+(\w)/
4863        aaaaX
4864        YZ
4865    
4866    /^(a){2,}+(\w)/
4867        aaaaX
4868        ** Failers
4869        aaa
4870        YZ
4871    
4872    /^(?:a){2,}+(\w)/
4873        aaaaX
4874        ** Failers
4875        aaa
4876        YZ
4877    
4878    /(a|)*(?1)b/
4879        b
4880        ab
4881        aab
4882    
4883    /(a)++(?1)b/
4884        ** Failers
4885        ab
4886        aab
4887    
4888    /(a)*+(?1)b/
4889        ** Failers
4890        ab
4891        aab
4892    
4893    /(?1)(?:(b)){0}/
4894        b
4895    
4896    /(foo ( \( ((?:(?> [^()]+ )|(?2))*) \) ) )/x
4897        foo(bar(baz)+baz(bop))
4898    
4899    /(A (A|B(*ACCEPT)|C) D)(E)/x
4900        AB
4901    
4902    /\A.*?(?:a|b(*THEN)c)/
4903        ba
4904    
4905    /\A.*?(?:a|bc)/
4906        ba
4907    
4908    /\A.*?(a|b(*THEN)c)/
4909        ba
4910    
4911    /\A.*?(a|bc)/
4912        ba
4913    
4914    /\A.*?(?:a|b(*THEN)c)++/
4915        ba
4916    
4917    /\A.*?(?:a|bc)++/
4918        ba
4919    
4920    /\A.*?(a|b(*THEN)c)++/
4921        ba
4922    
4923    /\A.*?(a|bc)++/
4924        ba
4925    
4926    /\A.*?(?:a|b(*THEN)c|d)/
4927        ba
4928    
4929    /\A.*?(?:a|bc|d)/
4930        ba
4931    
4932    /(?:(b))++/
4933        beetle
4934    
4935    /(?(?=(a(*ACCEPT)z))a)/
4936        a
4937    
4938    /^(a)(?1)+ab/
4939        aaaab
4940    
4941    /^(a)(?1)++ab/
4942        aaaab
4943    
4944    /^(?=a(*:M))aZ/K
4945        aZbc
4946    
4947    /^(?!(*:M)b)aZ/K
4948        aZbc
4949    
4950    /(?(DEFINE)(a))?b(?1)/
4951        backgammon
4952    
4953    /^\N+/
4954        abc\ndef
4955    
4956    /^\N{1,}/
4957        abc\ndef
4958    
4959    /(?(R)a+|(?R)b)/
4960        aaaabcde
4961    
4962    /(?(R)a+|((?R))b)/
4963        aaaabcde
4964    
4965    /((?(R)a+|(?1)b))/
4966        aaaabcde
4967    
4968    /((?(R1)a+|(?1)b))/
4969        aaaabcde
4970    
4971    /a(*:any
4972    name)/K
4973        abc
4974    
4975    /(?>(?&t)c|(?&t))(?(DEFINE)(?<t>a|b(*PRUNE)c))/
4976        a
4977        ba
4978        bba
4979    
4980    /--- Checking revised (*THEN) handling ---/
4981    
4982    /--- Capture ---/
4983    
4984    /^.*? (a(*THEN)b) c/x
4985        aabc
4986    
4987    /^.*? (a(*THEN)b|(*F)) c/x
4988        aabc
4989    
4990    /^.*? ( (a(*THEN)b) | (*F) ) c/x
4991        aabc
4992    
4993    /^.*? ( (a(*THEN)b) ) c/x
4994        aabc
4995    
4996    /--- Non-capture ---/
4997    
4998    /^.*? (?:a(*THEN)b) c/x
4999        aabc
5000    
5001    /^.*? (?:a(*THEN)b|(*F)) c/x
5002        aabc
5003    
5004    /^.*? (?: (?:a(*THEN)b) | (*F) ) c/x
5005        aabc
5006    
5007    /^.*? (?: (?:a(*THEN)b) ) c/x
5008        aabc
5009    
5010    /--- Atomic ---/
5011    
5012    /^.*? (?>a(*THEN)b) c/x
5013        aabc
5014    
5015    /^.*? (?>a(*THEN)b|(*F)) c/x
5016        aabc
5017    
5018    /^.*? (?> (?>a(*THEN)b) | (*F) ) c/x
5019        aabc
5020    
5021    /^.*? (?> (?>a(*THEN)b) ) c/x
5022        aabc
5023    
5024    /--- Possessive capture ---/
5025    
5026    /^.*? (a(*THEN)b)++ c/x
5027        aabc
5028    
5029    /^.*? (a(*THEN)b|(*F))++ c/x
5030        aabc
5031    
5032    /^.*? ( (a(*THEN)b)++ | (*F) )++ c/x
5033        aabc
5034    
5035    /^.*? ( (a(*THEN)b)++ )++ c/x
5036        aabc
5037    
5038    /--- Possessive non-capture ---/
5039    
5040    /^.*? (?:a(*THEN)b)++ c/x
5041        aabc
5042    
5043    /^.*? (?:a(*THEN)b|(*F))++ c/x
5044        aabc
5045    
5046    /^.*? (?: (?:a(*THEN)b)++ | (*F) )++ c/x
5047        aabc
5048    
5049    /^.*? (?: (?:a(*THEN)b)++ )++ c/x
5050        aabc
5051    
5052    /--- Condition assertion ---/
5053    
5054    /^(?(?=a(*THEN)b)ab|ac)/
5055        ac
5056    
5057    /--- Condition ---/
5058    
5059    /^.*?(?(?=a)a|b(*THEN)c)/
5060        ba
5061    
5062    /^.*?(?:(?(?=a)a|b(*THEN)c)|d)/
5063        ba
5064    
5065    /^.*?(?(?=a)a(*THEN)b|c)/
5066        ac
5067    
5068    /--- Assertion ---/
5069    
5070    /^.*(?=a(*THEN)b)/
5071        aabc
5072    
5073    /------------------------------/
5074    
5075    /(?>a(*:m))/imsxSK
5076        a
5077    
5078    /(?>(a)(*:m))/imsxSK
5079        a
5080    
5081    /(?<=a(*ACCEPT)b)c/
5082        xacd
5083    
5084    /(?<=(a(*ACCEPT)b))c/
5085        xacd
5086    
5087    /(?<=(a(*COMMIT)b))c/
5088        xabcd
5089        ** Failers
5090        xacd
5091    
5092    /(?<!a(*FAIL)b)c/
5093        xcd
5094        acd
5095    
5096    /(?<=a(*:N)b)c/K
5097        xabcd
5098    
5099    /(?<=a(*PRUNE)b)c/
5100        xabcd
5101    
5102    /(?<=a(*SKIP)b)c/
5103        xabcd
5104    
5105    /(?<=a(*THEN)b)c/
5106        xabcd
5107    
5108    /(a)(?2){2}(.)/
5109        abcd
5110    
5111    /(*MARK:A)(*PRUNE:B)(C|X)/KS
5112        C
5113        D
5114    
5115    /(*MARK:A)(*PRUNE:B)(C|X)/KSS
5116        C
5117        D
5118    
5119    /(*MARK:A)(*THEN:B)(C|X)/KS
5120        C
5121        D
5122    
5123    /(*MARK:A)(*THEN:B)(C|X)/KSY
5124        C
5125        D
5126    
5127    /(*MARK:A)(*THEN:B)(C|X)/KSS
5128        C
5129        D
5130    
5131    /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/
5132    
5133    /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK
5134        AAAC
5135    
5136    /--- Same --/
5137    
5138    /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK
5139        AAAC
5140    
5141    /A(*:A)A+(*SKIP)(B|Z) | AC/xK
5142        AAAC
5143    
5144    /--- This should fail, as a null name is the same as no name ---/
5145    
5146    /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK
5147        AAAC
5148    
5149    /--- A check on what happens after hitting a mark and them bumping along to
5150    something that does not even start. Perl reports tags after the failures here,
5151    though it does not when the individual letters are made into something
5152    more complicated. ---/
5153    
5154    /A(*:A)B|XX(*:B)Y/K
5155        AABC
5156        XXYZ
5157        ** Failers
5158        XAQQ
5159        XAQQXZZ
5160        AXQQQ
5161        AXXQQQ
5162    
5163    /^(A(*THEN:A)B|C(*THEN:B)D)/K
5164        AB
5165        CD
5166        ** Failers
5167        AC
5168        CB
5169    
5170    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
5171        AB
5172        CD
5173        ** Failers
5174        AC
5175        CB
5176    
5177    /--- An empty name does not pass back an empty string. It is the same as if no
5178    name were given. ---/
5179    
5180    /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K
5181        AB
5182        CD
5183    
5184    /--- PRUNE goes to next bumpalong; COMMIT does not. ---/
5185    
5186    /A(*PRUNE:A)B/K
5187        ACAB
5188    
5189    /--- Mark names can be duplicated ---/
5190    
5191    /A(*:A)B|X(*:A)Y/K
5192        AABC
5193        XXYZ
5194    
5195    /b(*:m)f|a(*:n)w/K
5196        aw
5197        ** Failers
5198        abc
5199    
5200    /b(*:m)f|aw/K
5201        abaw
5202        ** Failers
5203        abc
5204        abax
5205    
5206    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK
5207        AAAC
5208    
5209    /a(*PRUNE:X)bc|qq/KY
5210        ** Failers
5211        axy
5212    
5213    /a(*THEN:X)bc|qq/KY
5214        ** Failers
5215        axy
5216    
5217    /(?=a(*MARK:A)b)..x/K
5218        abxy
5219        ** Failers
5220        abpq
5221    
5222    /(?=a(*MARK:A)b)..(*:Y)x/K
5223        abxy
5224        ** Failers
5225        abpq
5226    
5227    /(?=a(*PRUNE:A)b)..x/K
5228        abxy
5229        ** Failers
5230        abpq
5231    
5232    /(?=a(*PRUNE:A)b)..(*:Y)x/K
5233        abxy
5234        ** Failers
5235        abpq
5236    
5237    /(?=a(*THEN:A)b)..x/K
5238        abxy
5239        ** Failers
5240        abpq
5241    
5242    /(?=a(*THEN:A)b)..(*:Y)x/K
5243        abxy
5244        ** Failers
5245        abpq
5246    
5247    /(another)?(\1?)test/
5248        hello world test
5249    
5250    /(another)?(\1+)test/
5251        hello world test
5252    
5253    /(a(*COMMIT)b){0}a(?1)|aac/
5254        aac
5255    
5256  /-- End of testinput1 --/  /-- End of testinput1 --/

Legend:
Removed from v.754  
changed lines
  Added in v.934

  ViewVC Help
Powered by ViewVC 1.1.5