/[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 771 by ph10, Tue Nov 29 15:34:12 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    /--- COMMIT at the start of a pattern should act like an anchor. Again,
456    however, we need the complication for Perl. ---/
457    
458    /(*COMMIT)(A|P)(B|P)(C|P)/
459        ABCDEFG
460        ** Failers
461        DEFGABC
462    
463    /--- COMMIT inside an atomic group can't stop backtracking over the group. ---/
464    
465    /(\w+)(?>b(*COMMIT))\w{2}/
466        abbb
467    
468    /(\w+)b(*COMMIT)\w{2}/
469        abbb
470    
471    /--- Check opening parens in comment when seeking forward reference. ---/
472    
473    /(?&t)(?#()(?(DEFINE)(?<t>a))/
474        bac
475    
476    /--- COMMIT should override THEN ---/
477    
478    /(?>(*COMMIT)(?>yes|no)(*THEN)(*F))?/
479      yes
480    
481    /(?>(*COMMIT)(yes|no)(*THEN)(*F))?/
482      yes
483    
484    /b?(*SKIP)c/
485        bc
486        abc
487    
488    /(*SKIP)bc/
489        a
490    
491    /(*SKIP)b/
492        a
493    
494    /(?P<abn>(?P=abn)xxx|)+/
495        xxx
496    
497    /(?i:([^b]))(?1)/
498        aa
499        aA
500        ** Failers
501        ab
502        aB
503        Ba
504        ba
505    
506    /^(?&t)*+(?(DEFINE)(?<t>a))\w$/
507        aaaaaaX
508        ** Failers
509        aaaaaa
510    
511    /^(?&t)*(?(DEFINE)(?<t>a))\w$/
512        aaaaaaX
513        aaaaaa
514    
515    /^(a)*+(\w)/
516        aaaaX
517        YZ
518        ** Failers
519        aaaa
520    
521    /^(?:a)*+(\w)/
522        aaaaX
523        YZ
524        ** Failers
525        aaaa
526    
527    /^(a)++(\w)/
528        aaaaX
529        ** Failers
530        aaaa
531        YZ
532    
533    /^(?:a)++(\w)/
534        aaaaX
535        ** Failers
536        aaaa
537        YZ
538    
539    /^(a)?+(\w)/
540        aaaaX
541        YZ
542    
543    /^(?:a)?+(\w)/
544        aaaaX
545        YZ
546    
547    /^(a){2,}+(\w)/
548        aaaaX
549        ** Failers
550        aaa
551        YZ
552    
553    /^(?:a){2,}+(\w)/
554        aaaaX
555        ** Failers
556        aaa
557        YZ
558    
559    /(a|)*(?1)b/
560        b
561        ab
562        aab
563    
564    /(a)++(?1)b/
565        ** Failers
566        ab
567        aab
568    
569    /(a)*+(?1)b/
570        ** Failers
571        ab
572        aab
573    
574    /(?1)(?:(b)){0}/
575        b
576    
577    /(foo ( \( ((?:(?> [^()]+ )|(?2))*) \) ) )/x
578        foo(bar(baz)+baz(bop))
579    
580    /(A (A|B(*ACCEPT)|C) D)(E)/x
581        AB
582    
583    /\A.*?(?:a|b(*THEN)c)/
584        ba
585    
586    /\A.*?(?:a|bc)/
587        ba
588    
589    /\A.*?(a|b(*THEN)c)/
590        ba
591    
592    /\A.*?(a|bc)/
593        ba
594    
595    /\A.*?(?:a|b(*THEN)c)++/
596        ba
597    
598    /\A.*?(?:a|bc)++/
599        ba
600    
601    /\A.*?(a|b(*THEN)c)++/
602        ba
603    
604    /\A.*?(a|bc)++/
605        ba
606    
607    /\A.*?(?:a|b(*THEN)c|d)/
608        ba
609    
610    /\A.*?(?:a|bc|d)/
611        ba
612    
613    /(?:(b))++/
614        beetle
615    
616    /(?(?=(a(*ACCEPT)z))a)/
617        a
618    
619    /^(a)(?1)+ab/
620        aaaab
621    
622    /^(a)(?1)++ab/
623        aaaab
624    
625    /^(?=a(*:M))aZ/K
626        aZbc
627    
628    /^(?!(*:M)b)aZ/K
629        aZbc
630    
631    /(?(DEFINE)(a))?b(?1)/
632        backgammon
633    
634    /^\N+/
635        abc\ndef
636    
637    /^\N{1,}/
638        abc\ndef
639    
640    /(?(R)a+|(?R)b)/
641        aaaabcde
642    
643    /(?(R)a+|((?R))b)/
644        aaaabcde
645    
646    /((?(R)a+|(?1)b))/
647        aaaabcde
648    
649    /((?(R1)a+|(?1)b))/
650        aaaabcde
651    
652    /a(*:any
653    name)/K
654        abc
655    
656    /(?>(?&t)c|(?&t))(?(DEFINE)(?<t>a|b(*PRUNE)c))/
657        a
658        ba
659        bba
660    
661    /--- Checking revised (*THEN) handling ---/
662    
663    /--- Capture ---/
664    
665    /^.*? (a(*THEN)b) c/x
666        aabc
667    
668    /^.*? (a(*THEN)b|(*F)) c/x
669        aabc
670    
671    /^.*? ( (a(*THEN)b) | (*F) ) c/x
672        aabc
673    
674    /^.*? ( (a(*THEN)b) ) c/x
675        aabc
676    
677    /--- Non-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    /--- Atomic ---/
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    /--- Possessive capture ---/
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 non-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    /--- Condition assertion ---/
734    
735    /^(?(?=a(*THEN)b)ab|ac)/
736        ac
737    
738    /--- Condition ---/
739    
740    /^.*?(?(?=a)a|b(*THEN)c)/
741        ba
742    
743    /^.*?(?:(?(?=a)a|b(*THEN)c)|d)/
744        ba
745    
746    /^.*?(?(?=a)a(*THEN)b|c)/
747        ac
748    
749    /--- Assertion ---/
750    
751    /^.*(?=a(*THEN)b)/
752        aabc
753    
754    /------------------------------/
755    
756    /(?>a(*:m))/imsxSK
757        a
758    
759    /(?>(a)(*:m))/imsxSK
760        a
761    
762    /(?<=a(*ACCEPT)b)c/
763        xacd
764    
765    /(?<=(a(*ACCEPT)b))c/
766        xacd
767    
768    /(?<=(a(*COMMIT)b))c/
769        xabcd
770        ** Failers
771        xacd
772    
773    /(?<!a(*FAIL)b)c/
774        xcd
775        acd
776    
777    /(?<=a(*:N)b)c/K
778        xabcd
779    
780    /(?<=a(*PRUNE)b)c/
781        xabcd
782    
783    /(?<=a(*SKIP)b)c/
784        xabcd
785    
786    /(?<=a(*THEN)b)c/
787        xabcd
788    
789    /(a)(?2){2}(.)/
790        abcd
791    
792    /(*MARK:A)(*PRUNE:B)(C|X)/KS
793        C
794        D
795    
796    /(*MARK:A)(*PRUNE:B)(C|X)/KSS
797        C
798        D
799    
800    /(*MARK:A)(*THEN:B)(C|X)/KS
801        C
802        D
803    
804    /(*MARK:A)(*THEN:B)(C|X)/KSY
805        C
806        D
807    
808    /(*MARK:A)(*THEN:B)(C|X)/KSS
809        C
810        D
811    
812    /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/
813    
814    /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK
815        AAAC
816    
817    /--- Same --/
818    
819    /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK
820        AAAC
821    
822    /A(*:A)A+(*SKIP)(B|Z) | AC/xK
823        AAAC
824    
825    /--- This should fail, as a null name is the same as no name ---/
826    
827    /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK
828        AAAC
829    
830    /--- A check on what happens after hitting a mark and them bumping along to
831    something that does not even start. Perl reports tags after the failures here,
832    though it does not when the individual letters are made into something
833    more complicated. ---/
834    
835    /A(*:A)B|XX(*:B)Y/K
836        AABC
837        XXYZ
838        ** Failers
839        XAQQ
840        XAQQXZZ
841        AXQQQ
842        AXXQQQ
843    
844    /^(A(*THEN:A)B|C(*THEN:B)D)/K
845        AB
846        CD
847        ** Failers
848        AC
849        CB
850    
851    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
852        AB
853        CD
854        ** Failers
855        AC
856        CB
857    
858    /--- An empty name does not pass back an empty string. It is the same as if no
859    name were given. ---/
860    
861    /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K
862        AB
863        CD
864    
865    /--- PRUNE goes to next bumpalong; COMMIT does not. ---/
866    
867    /A(*PRUNE:A)B/K
868        ACAB
869    
870    /--- Mark names can be duplicated ---/
871    
872    /A(*:A)B|X(*:A)Y/K
873        AABC
874        XXYZ
875    
876    /b(*:m)f|a(*:n)w/K
877        aw
878        ** Failers
879        abc
880    
881    /b(*:m)f|aw/K
882        abaw
883        ** Failers
884        abc
885        abax
886    
887    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK
888        AAAC
889    
890    /a(*PRUNE:X)bc|qq/KY
891        ** Failers
892        axy
893    
894    /a(*THEN:X)bc|qq/KY
895        ** Failers
896        axy
897    
898    /(?=a(*MARK:A)b)..x/K
899        abxy
900        ** Failers
901        abpq
902    
903    /(?=a(*MARK:A)b)..(*:Y)x/K
904        abxy
905        ** Failers
906        abpq
907    
908    /(?=a(*PRUNE:A)b)..x/K
909        abxy
910        ** Failers
911        abpq
912    
913    /(?=a(*PRUNE:A)b)..(*:Y)x/K
914        abxy
915        ** Failers
916        abpq
917    
918    /(?=a(*THEN:A)b)..x/K
919        abxy
920        ** Failers
921        abpq
922    
923    /(?=a(*THEN:A)b)..(*:Y)x/K
924        abxy
925        ** Failers
926        abpq
927    
928  /-- End of testinput11 --/  /-- End of testinput11 --/

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

  ViewVC Help
Powered by ViewVC 1.1.5