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

Diff of /code/trunk/testdata/testinput11

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

revision 454 by ph10, Tue Sep 22 09:42:11 2009 UTC revision 716 by ph10, Tue Oct 4 16:38:05 2011 UTC
# Line 1  Line 1 
1  /-- These tests are for the Perl 5.10 features that PCRE supports. --/  /-- These tests are for the Perl >= 5.10 features that PCRE supports. --/
2    
3  /\H\h\V\v/  /\H\h\V\v/
4      X X\x0a      X X\x0a
# Line 246  Line 246 
246      aaabccc      aaabccc
247    
248  /(A (A|B(*ACCEPT)|C) D)(E)/x  /(A (A|B(*ACCEPT)|C) D)(E)/x
249        AB
250      ABX      ABX
251      AADE      AADE
252      ACDE      ACDE
# Line 283  Line 284 
284  /(?<X>a)(?<=b(?&X))/  /(?<X>a)(?<=b(?&X))/
285      baz      baz
286    
287    /^(?|(abc)|(def))\1/
288        abcabc
289        defdef
290        ** Failers
291        abcdef
292        defabc
293    
294    /^(?|(abc)|(def))(?1)/
295        abcabc
296        defabc
297        ** Failers
298        defdef
299        abcdef
300    
301    /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |b(?<quote> (?<apostrophe>')|(?<realquote>")) ) (?('quote')[a-z]+|[0-9]+)/xJ
302        a\"aaaaa
303        b\"aaaaa
304        ** Failers
305        b\"11111
306    
307    /(?:(?1)|B)(A(*F)|C)/
308        ABCD
309        CCD
310        ** Failers
311        CAD
312    
313    /^(?:(?1)|B)(A(*F)|C)/
314        CCD
315        BCD
316        ** Failers
317        ABCD
318        CAD
319        BAD
320    
321    /(?:(?1)|B)(A(*ACCEPT)XX|C)D/
322        AAD
323        ACD
324        BAD
325        BCD
326        BAX
327        ** Failers
328        ACX
329        ABC
330    
331    /(?(DEFINE)(A))B(?1)C/
332        BAC
333    
334    /(?(DEFINE)((A)\2))B(?1)C/
335        BAAC
336    
337    /(?<pn> \( ( [^()]++ | (?&pn) )* \) )/x
338        (ab(cd)ef)
339    
340    /^(?!a(*SKIP)b)/
341        ac
342    
343    /^(?=a(*SKIP)b|ac)/
344        ** Failers
345        ac
346    
347    /^(?=a(*THEN)b|ac)/
348        ac
349    
350    /^(?=a(*PRUNE)b)/
351        ab
352        ** Failers
353        ac
354    
355    /^(?=a(*ACCEPT)b)/
356        ac
357    
358    /^(?(?!a(*SKIP)b))/
359        ac
360    
361    /(?>a\Kb)/
362        ab
363    
364    /((?>a\Kb))/
365        ab
366    
367    /(a\Kb)/
368        ab
369    
370    /^a\Kcz|ac/
371        ac
372    
373    /(?>a\Kbz|ab)/
374        ab
375    
376    /^(?&t)(?(DEFINE)(?<t>a\Kb))$/
377        ab
378    
379    /^([^()]|\((?1)*\))*$/
380        a(b)c
381        a(b(c)d)e
382    
383    /(?P<L1>(?P<L2>0)(?P>L1)|(?P>L2))/
384        0
385        00
386        0000
387    
388    /(?P<L1>(?P<L2>0)|(?P>L2)(?P>L1))/
389        0
390        00
391        0000
392    
393    /--- This one does fail, as expected, in Perl. It needs the complex item at the
394         end of the pattern. A single letter instead of (B|D) makes it not fail,
395         which I think is a Perl bug. --- /
396    
397    /A(*COMMIT)(B|D)/
398        ACABX
399    
400    /--- Check the use of names for failure ---/
401    
402    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
403        ** Failers
404        AC
405        CB
406    
407    /--- Force no study, otherwise mark is not seen. The studied version is in
408         test 2 because it isn't Perl-compatible. ---/
409    
410    /(*MARK:A)(*SKIP:B)(C|X)/KSS
411        C
412        D
413    
414    /^(A(*THEN:A)B|C(*THEN:B)D)/K
415        ** Failers
416        CB
417    
418    /^(?:A(*THEN:A)B|C(*THEN:B)D)/K
419        CB
420    
421    /^(?>A(*THEN:A)B|C(*THEN:B)D)/K
422        CB
423    
424    /--- This should succeed, as the skip causes bump to offset 1 (the mark). Note
425    that we have to have something complicated such as (B|Z) at the end because,
426    for Perl, a simple character somehow causes an unwanted optimization to mess
427    with the handling of backtracking verbs. ---/
428    
429    /A(*MARK:A)A+(*SKIP:A)(B|Z) | AC/xK
430        AAAC
431    
432    /--- Test skipping over a non-matching mark. ---/
433    
434    /A(*MARK:A)A+(*MARK:B)(*SKIP:A)(B|Z) | AC/xK
435        AAAC
436    
437    /--- Check shorthand for MARK ---/
438    
439    /A(*:A)A+(*SKIP:A)(B|Z) | AC/xK
440        AAAC
441    
442    /--- Don't loop! Force no study, otherwise mark is not seen. ---/
443    
444    /(*:A)A+(*SKIP:A)(B|Z)/KSS
445        AAAC
446    
447    /--- This should succeed, as a non-existent skip name disables the skip ---/
448    
449    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AC/xK
450        AAAC
451    
452    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AC(*:B)/xK
453        AAAC
454    
455    /--- We use something more complicated than individual letters here, because
456    that causes different behaviour in Perl. Perhaps it disables some optimization;
457    anyway, the result now matches PCRE in that no tag is passed back for the
458    failures. ---/
459    
460    /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
461        AABC
462        XXYZ
463        ** Failers
464        XAQQ
465        XAQQXZZ
466        AXQQQ
467        AXXQQQ
468    
469    /--- COMMIT at the start of a pattern should act like an anchor. Again,
470    however, we need the complication for Perl. ---/
471    
472    /(*COMMIT)(A|P)(B|P)(C|P)/
473        ABCDEFG
474        ** Failers
475        DEFGABC
476    
477    /--- COMMIT inside an atomic group can't stop backtracking over the group. ---/
478    
479    /(\w+)(?>b(*COMMIT))\w{2}/
480        abbb
481    
482    /(\w+)b(*COMMIT)\w{2}/
483        abbb
484    
485    /--- Check opening parens in comment when seeking forward reference. ---/
486    
487    /(?&t)(?#()(?(DEFINE)(?<t>a))/
488        bac
489    
490    /--- COMMIT should override THEN ---/
491    
492    /(?>(*COMMIT)(?>yes|no)(*THEN)(*F))?/
493      yes
494    
495    /(?>(*COMMIT)(yes|no)(*THEN)(*F))?/
496      yes
497    
498    /b?(*SKIP)c/
499        bc
500        abc
501    
502    /(*SKIP)bc/
503        a
504    
505    /(*SKIP)b/
506        a
507    
508    /(?P<abn>(?P=abn)xxx|)+/
509        xxx
510    
511    /(?i:([^b]))(?1)/
512        aa
513        aA
514        ** Failers
515        ab
516        aB
517        Ba
518        ba
519    
520    /^(?&t)*+(?(DEFINE)(?<t>a))\w$/
521        aaaaaaX
522        ** Failers
523        aaaaaa
524    
525    /^(?&t)*(?(DEFINE)(?<t>a))\w$/
526        aaaaaaX
527        aaaaaa
528    
529    /^(a)*+(\w)/
530        aaaaX
531        YZ
532        ** Failers
533        aaaa
534    
535    /^(?:a)*+(\w)/
536        aaaaX
537        YZ
538        ** Failers
539        aaaa
540    
541    /^(a)++(\w)/
542        aaaaX
543        ** Failers
544        aaaa
545        YZ
546    
547    /^(?:a)++(\w)/
548        aaaaX
549        ** Failers
550        aaaa
551        YZ
552    
553    /^(a)?+(\w)/
554        aaaaX
555        YZ
556    
557    /^(?:a)?+(\w)/
558        aaaaX
559        YZ
560    
561    /^(a){2,}+(\w)/
562        aaaaX
563        ** Failers
564        aaa
565        YZ
566    
567    /^(?:a){2,}+(\w)/
568        aaaaX
569        ** Failers
570        aaa
571        YZ
572    
573    /(a|)*(?1)b/
574        b
575        ab
576        aab
577    
578    /(a)++(?1)b/
579        ** Failers
580        ab
581        aab
582    
583    /(a)*+(?1)b/
584        ** Failers
585        ab
586        aab
587    
588    /(?1)(?:(b)){0}/
589        b
590    
591    /(foo ( \( ((?:(?> [^()]+ )|(?2))*) \) ) )/x
592        foo(bar(baz)+baz(bop))
593    
594    /(A (A|B(*ACCEPT)|C) D)(E)/x
595        AB
596    
597    /\A.*?(?:a|b(*THEN)c)/
598        ba
599    
600    /\A.*?(?:a|bc)/
601        ba
602    
603    /\A.*?(a|b(*THEN)c)/
604        ba
605    
606    /\A.*?(a|bc)/
607        ba
608    
609    /\A.*?(?:a|b(*THEN)c)++/
610        ba
611    
612    /\A.*?(?:a|bc)++/
613        ba
614    
615    /\A.*?(a|b(*THEN)c)++/
616        ba
617    
618    /\A.*?(a|bc)++/
619        ba
620    
621    /\A.*?(?:a|b(*THEN)c|d)/
622        ba
623    
624    /\A.*?(?:a|bc|d)/
625        ba
626    
627    /(?:(b))++/
628        beetle
629    
630    /(?(?=(a(*ACCEPT)z))a)/
631        a
632    
633    /^(a)(?1)+ab/
634        aaaab
635    
636    /^(a)(?1)++ab/
637        aaaab
638    
639    /^(?=a(*:M))aZ/K
640        aZbc
641    
642    /^(?!(*:M)b)aZ/K
643        aZbc
644    
645    /(?(DEFINE)(a))?b(?1)/
646        backgammon
647    
648    /^\N+/
649        abc\ndef
650    
651    /^\N{1,}/
652        abc\ndef
653    
654    /(?(R)a+|(?R)b)/
655        aaaabcde
656    
657    /(?(R)a+|((?R))b)/
658        aaaabcde
659    
660    /((?(R)a+|(?1)b))/
661        aaaabcde
662    
663    /((?(R1)a+|(?1)b))/
664        aaaabcde
665    
666    /a(*:any
667    name)/K
668        abc
669    
670    /(?>(?&t)c|(?&t))(?(DEFINE)(?<t>a|b(*PRUNE)c))/
671        a
672        ba
673        bba
674    
675    /--- Checking revised (*THEN) handling ---/
676    
677    /--- Capture ---/
678    
679    /^.*? (a(*THEN)b) c/x
680        aabc
681    
682    /^.*? (a(*THEN)b|(*F)) c/x
683        aabc
684    
685    /^.*? ( (a(*THEN)b) | (*F) ) c/x
686        aabc
687    
688    /^.*? ( (a(*THEN)b) ) c/x
689        aabc
690    
691    /--- Non-capture ---/
692    
693    /^.*? (?:a(*THEN)b) c/x
694        aabc
695    
696    /^.*? (?:a(*THEN)b|(*F)) c/x
697        aabc
698    
699    /^.*? (?: (?:a(*THEN)b) | (*F) ) c/x
700        aabc
701    
702    /^.*? (?: (?:a(*THEN)b) ) c/x
703        aabc
704    
705    /--- Atomic ---/
706    
707    /^.*? (?>a(*THEN)b) c/x
708        aabc
709    
710    /^.*? (?>a(*THEN)b|(*F)) c/x
711        aabc
712    
713    /^.*? (?> (?>a(*THEN)b) | (*F) ) c/x
714        aabc
715    
716    /^.*? (?> (?>a(*THEN)b) ) c/x
717        aabc
718    
719    /--- Possessive capture ---/
720    
721    /^.*? (a(*THEN)b)++ c/x
722        aabc
723    
724    /^.*? (a(*THEN)b|(*F))++ c/x
725        aabc
726    
727    /^.*? ( (a(*THEN)b)++ | (*F) )++ c/x
728        aabc
729    
730    /^.*? ( (a(*THEN)b)++ )++ c/x
731        aabc
732    
733    /--- Possessive non-capture ---/
734    
735    /^.*? (?:a(*THEN)b)++ c/x
736        aabc
737    
738    /^.*? (?:a(*THEN)b|(*F))++ c/x
739        aabc
740    
741    /^.*? (?: (?:a(*THEN)b)++ | (*F) )++ c/x
742        aabc
743    
744    /^.*? (?: (?:a(*THEN)b)++ )++ c/x
745        aabc
746    
747    /--- Condition assertion ---/
748    
749    /^(?(?=a(*THEN)b)ab|ac)/
750        ac
751    
752    /--- Condition ---/
753    
754    /^.*?(?(?=a)a|b(*THEN)c)/
755        ba
756    
757    /^.*?(?:(?(?=a)a|b(*THEN)c)|d)/
758        ba
759    
760    /^.*?(?(?=a)a(*THEN)b|c)/
761        ac
762    
763    /--- Assertion ---/
764    
765    /^.*(?=a(*THEN)b)/
766        aabc
767    
768    /------------------------------/
769    
770  /-- End of testinput11 --/  /-- End of testinput11 --/

Legend:
Removed from v.454  
changed lines
  Added in v.716

  ViewVC Help
Powered by ViewVC 1.1.5