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

Diff of /code/trunk/testdata/testoutput11

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

revision 453 by ph10, Fri Sep 18 19:12:35 2009 UTC revision 619 by ph10, Sun Jul 17 13:23:14 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 501  No match Line 501  No match
501  No match  No match
502    
503  /(A (A|B(*ACCEPT)|C) D)(E)/x  /(A (A|B(*ACCEPT)|C) D)(E)/x
504        AB
505     0: AB
506     1: AB
507     2: B
508      ABX      ABX
509   0: AB   0: AB
510   1: AB   1: AB
# Line 577  No match Line 581  No match
581      the quick brown fox      the quick brown fox
582  No match  No match
583    
584    /(a)(?<=b(?1))/
585        baz
586     0: a
587     1: a
588        ** Failers
589    No match
590        caz
591    No match
592    
593    /(?<=b(?1))(a)/
594        zbaaz
595     0: a
596     1: a
597        ** Failers
598    No match
599        aaa
600    No match
601    
602    /(?<X>a)(?<=b(?&X))/
603        baz
604     0: a
605     1: a
606    
607    /^(?|(abc)|(def))\1/
608        abcabc
609     0: abcabc
610     1: abc
611        defdef
612     0: defdef
613     1: def
614        ** Failers
615    No match
616        abcdef
617    No match
618        defabc
619    No match
620    
621    /^(?|(abc)|(def))(?1)/
622        abcabc
623     0: abcabc
624     1: abc
625        defabc
626     0: defabc
627     1: def
628        ** Failers
629    No match
630        defdef
631    No match
632        abcdef
633    No match
634    
635    /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |b(?<quote> (?<apostrophe>')|(?<realquote>")) ) (?('quote')[a-z]+|[0-9]+)/xJ
636        a\"aaaaa
637     0: a"aaaaa
638     1: "
639     2: <unset>
640     3: "
641        b\"aaaaa
642     0: b"aaaaa
643     1: <unset>
644     2: <unset>
645     3: <unset>
646     4: "
647     5: <unset>
648     6: "
649        ** Failers
650    No match
651        b\"11111
652    No match
653    
654    /(?:(?1)|B)(A(*F)|C)/
655        ABCD
656     0: BC
657     1: C
658        CCD
659     0: CC
660     1: C
661        ** Failers
662    No match
663        CAD
664    No match
665    
666    /^(?:(?1)|B)(A(*F)|C)/
667        CCD
668     0: CC
669     1: C
670        BCD
671     0: BC
672     1: C
673        ** Failers
674    No match
675        ABCD
676    No match
677        CAD
678    No match
679        BAD
680    No match
681    
682    /(?:(?1)|B)(A(*ACCEPT)XX|C)D/
683        AAD
684     0: AA
685     1: A
686        ACD
687     0: ACD
688     1: C
689        BAD
690     0: BA
691     1: A
692        BCD
693     0: BCD
694     1: C
695        BAX
696     0: BA
697     1: A
698        ** Failers
699    No match
700        ACX
701    No match
702        ABC
703    No match
704    
705    /(?(DEFINE)(A))B(?1)C/
706        BAC
707     0: BAC
708    
709    /(?(DEFINE)((A)\2))B(?1)C/
710        BAAC
711     0: BAAC
712    
713    /(?<pn> \( ( [^()]++ | (?&pn) )* \) )/x
714        (ab(cd)ef)
715     0: (ab(cd)ef)
716     1: (ab(cd)ef)
717     2: ef
718    
719    /^(?!a(*SKIP)b)/
720        ac
721     0:
722    
723    /^(?=a(*SKIP)b|ac)/
724        ** Failers
725    No match
726        ac
727    No match
728    
729    /^(?=a(*THEN)b|ac)/
730        ac
731     0:
732    
733    /^(?=a(*PRUNE)b)/
734        ab
735     0:
736        ** Failers
737    No match
738        ac
739    No match
740    
741    /^(?=a(*ACCEPT)b)/
742        ac
743     0:
744    
745    /^(?(?!a(*SKIP)b))/
746        ac
747     0:
748    
749    /(?>a\Kb)/
750        ab
751     0: b
752    
753    /((?>a\Kb))/
754        ab
755     0: b
756     1: ab
757    
758    /(a\Kb)/
759        ab
760     0: b
761     1: ab
762    
763    /^a\Kcz|ac/
764        ac
765     0: ac
766    
767    /(?>a\Kbz|ab)/
768        ab
769     0: ab
770    
771    /^(?&t)(?(DEFINE)(?<t>a\Kb))$/
772        ab
773     0: b
774    
775    /^([^()]|\((?1)*\))*$/
776        a(b)c
777     0: a(b)c
778     1: c
779        a(b(c)d)e
780     0: a(b(c)d)e
781     1: e
782    
783    /(?P<L1>(?P<L2>0)(?P>L1)|(?P>L2))/
784        0
785     0: 0
786     1: 0
787        00
788     0: 00
789     1: 00
790     2: 0
791        0000
792     0: 0000
793     1: 0000
794     2: 0
795    
796    /(?P<L1>(?P<L2>0)|(?P>L2)(?P>L1))/
797        0
798     0: 0
799     1: 0
800     2: 0
801        00
802     0: 0
803     1: 0
804     2: 0
805        0000
806     0: 0
807     1: 0
808     2: 0
809    
810    /--- This one does fail, as expected, in Perl. It needs the complex item at the
811         end of the pattern. A single letter instead of (B|D) makes it not fail,
812         which I think is a Perl bug. --- /
813    
814    /A(*COMMIT)(B|D)/
815        ACABX
816    No match
817    
818    /--- Check the use of names for failure ---/
819    
820    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
821        ** Failers
822    No match
823        AC
824    No match, mark = A
825        CB
826    No match, mark = B
827    
828    /--- Force no study, otherwise mark is not seen. The studied version is in
829         test 2 because it isn't Perl-compatible. ---/
830    
831    /(*MARK:A)(*SKIP:B)(C|X)/KSS
832        C
833     0: C
834     1: C
835    MK: A
836        D
837    No match, mark = A
838    
839    /^(A(*THEN:A)B|C(*THEN:B)D)/K
840        ** Failers
841    No match
842        CB
843    No match, mark = B
844    
845    /^(?:A(*THEN:A)B|C(*THEN:B)D)/K
846        CB
847    No match, mark = B
848    
849    /^(?>A(*THEN:A)B|C(*THEN:B)D)/K
850        CB
851    No match, mark = B
852    
853    /--- This should succeed, as the skip causes bump to offset 1 (the mark). Note
854    that we have to have something complicated such as (B|Z) at the end because,
855    for Perl, a simple character somehow causes an unwanted optimization to mess
856    with the handling of backtracking verbs. ---/
857    
858    /A(*MARK:A)A+(*SKIP:A)(B|Z) | AC/xK
859        AAAC
860     0: AC
861    
862    /--- Test skipping over a non-matching mark. ---/
863    
864    /A(*MARK:A)A+(*MARK:B)(*SKIP:A)(B|Z) | AC/xK
865        AAAC
866     0: AC
867    
868    /--- Check shorthand for MARK ---/
869    
870    /A(*:A)A+(*SKIP:A)(B|Z) | AC/xK
871        AAAC
872     0: AC
873    
874    /--- Don't loop! Force no study, otherwise mark is not seen. ---/
875    
876    /(*:A)A+(*SKIP:A)(B|Z)/KSS
877        AAAC
878    No match, mark = A
879    
880    /--- This should succeed, as a non-existent skip name disables the skip ---/
881    
882    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AC/xK
883        AAAC
884     0: AC
885    
886    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AC(*:B)/xK
887        AAAC
888     0: AC
889    MK: B
890    
891    /--- We use something more complicated than individual letters here, because
892    that causes different behaviour in Perl. Perhaps it disables some optimization;
893    anyway, the result now matches PCRE in that no tag is passed back for the
894    failures. ---/
895    
896    /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
897        AABC
898     0: AB
899     1: A
900     2: B
901    MK: A
902        XXYZ
903     0: XXY
904     1: <unset>
905     2: <unset>
906     3: X
907     4: X
908     5: Y
909    MK: B
910        ** Failers
911    No match
912        XAQQ
913    No match
914        XAQQXZZ
915    No match
916        AXQQQ
917    No match
918        AXXQQQ
919    No match
920    
921    /--- COMMIT at the start of a pattern should act like an anchor. Again,
922    however, we need the complication for Perl. ---/
923    
924    /(*COMMIT)(A|P)(B|P)(C|P)/
925        ABCDEFG
926     0: ABC
927     1: A
928     2: B
929     3: C
930        ** Failers
931    No match
932        DEFGABC
933    No match
934    
935    /--- COMMIT inside an atomic group can't stop backtracking over the group. ---/
936    
937    /(\w+)(?>b(*COMMIT))\w{2}/
938        abbb
939     0: abbb
940     1: a
941    
942    /(\w+)b(*COMMIT)\w{2}/
943        abbb
944    No match
945    
946    /--- Check opening parens in comment when seeking forward reference. ---/
947    
948    /(?&t)(?#()(?(DEFINE)(?<t>a))/
949        bac
950     0: a
951    
952    /--- COMMIT should override THEN ---/
953    
954    /(?>(*COMMIT)(?>yes|no)(*THEN)(*F))?/
955      yes
956    No match
957    
958    /(?>(*COMMIT)(yes|no)(*THEN)(*F))?/
959      yes
960    No match
961    
962    /^((yes|no)(*THEN)(*F))?/
963      yes
964     0:
965    
966    /b?(*SKIP)c/
967        bc
968     0: bc
969        abc
970     0: bc
971    
972    /(*SKIP)bc/
973        a
974    No match
975    
976    /(*SKIP)b/
977        a
978    No match
979    
980    /(?P<abn>(?P=abn)xxx|)+/
981        xxx
982     0:
983     1:
984    
985    /(?i:([^b]))(?1)/
986        aa
987     0: aa
988     1: a
989        aA
990     0: aA
991     1: a
992        ** Failers
993     0: **
994     1: *
995        ab
996    No match
997        aB
998    No match
999        Ba
1000    No match
1001        ba
1002    No match
1003    
1004    /^(?&t)*+(?(DEFINE)(?<t>a))\w$/
1005        aaaaaaX
1006     0: aaaaaaX
1007        ** Failers
1008    No match
1009        aaaaaa
1010    No match
1011    
1012    /^(?&t)*(?(DEFINE)(?<t>a))\w$/
1013        aaaaaaX
1014     0: aaaaaaX
1015        aaaaaa
1016     0: aaaaaa
1017    
1018    /^(a)*+(\w)/
1019        aaaaX
1020     0: aaaaX
1021     1: a
1022     2: X
1023        YZ
1024     0: Y
1025     1: <unset>
1026     2: Y
1027        ** Failers
1028    No match
1029        aaaa
1030    No match
1031    
1032    /^(?:a)*+(\w)/
1033        aaaaX
1034     0: aaaaX
1035     1: X
1036        YZ
1037     0: Y
1038     1: Y
1039        ** Failers
1040    No match
1041        aaaa
1042    No match
1043    
1044    /^(a)++(\w)/
1045        aaaaX
1046     0: aaaaX
1047     1: a
1048     2: X
1049        ** Failers
1050    No match
1051        aaaa
1052    No match
1053        YZ
1054    No match
1055    
1056    /^(?:a)++(\w)/
1057        aaaaX
1058     0: aaaaX
1059     1: X
1060        ** Failers
1061    No match
1062        aaaa
1063    No match
1064        YZ
1065    No match
1066    
1067    /^(a)?+(\w)/
1068        aaaaX
1069     0: aa
1070     1: a
1071     2: a
1072        YZ
1073     0: Y
1074     1: <unset>
1075     2: Y
1076    
1077    /^(?:a)?+(\w)/
1078        aaaaX
1079     0: aa
1080     1: a
1081        YZ
1082     0: Y
1083     1: Y
1084    
1085    /^(a){2,}+(\w)/
1086        aaaaX
1087     0: aaaaX
1088     1: a
1089     2: X
1090        ** Failers
1091    No match
1092        aaa
1093    No match
1094        YZ
1095    No match
1096    
1097    /^(?:a){2,}+(\w)/
1098        aaaaX
1099     0: aaaaX
1100     1: X
1101        ** Failers
1102    No match
1103        aaa
1104    No match
1105        YZ
1106    No match
1107    
1108    /(a|)*(?1)b/
1109        b
1110     0: b
1111     1:
1112        ab
1113     0: ab
1114     1:
1115        aab
1116     0: aab
1117     1:
1118    
1119    /(a)++(?1)b/
1120        ** Failers
1121    No match
1122        ab
1123    No match
1124        aab
1125    No match
1126    
1127    /(a)*+(?1)b/
1128        ** Failers
1129    No match
1130        ab
1131    No match
1132        aab
1133    No match
1134    
1135    /(?1)(?:(b)){0}/
1136        b
1137     0: b
1138    
1139    /(foo ( \( ((?:(?> [^()]+ )|(?2))*) \) ) )/x
1140        foo(bar(baz)+baz(bop))
1141     0: foo(bar(baz)+baz(bop))
1142     1: foo(bar(baz)+baz(bop))
1143     2: (bar(baz)+baz(bop))
1144     3: bar(baz)+baz(bop)
1145    
1146    /(A (A|B(*ACCEPT)|C) D)(E)/x
1147        AB
1148     0: AB
1149     1: AB
1150     2: B
1151    
1152    /\A.*?(?:a|b(*THEN)c)/
1153        ba
1154     0: ba
1155    
1156    /\A.*?(?:a|bc)/
1157        ba
1158     0: ba
1159    
1160    /\A.*?(a|b(*THEN)c)/
1161        ba
1162     0: ba
1163     1: a
1164    
1165    /\A.*?(a|bc)/
1166        ba
1167     0: ba
1168     1: a
1169    
1170    /\A.*?(?:a|b(*THEN)c)++/
1171        ba
1172     0: ba
1173    
1174    /\A.*?(?:a|bc)++/
1175        ba
1176     0: ba
1177    
1178    /\A.*?(a|b(*THEN)c)++/
1179        ba
1180     0: ba
1181     1: a
1182    
1183    /\A.*?(a|bc)++/
1184        ba
1185     0: ba
1186     1: a
1187    
1188    /\A.*?(?:a|b(*THEN)c|d)/
1189        ba
1190     0: ba
1191    
1192    /\A.*?(?:a|bc|d)/
1193        ba
1194     0: ba
1195    
1196    /(?:(b))++/
1197        beetle
1198     0: b
1199     1: b
1200    
1201    /(?(?=(a(*ACCEPT)z))a)/
1202        a
1203     0: a
1204     1: a
1205    
1206  /-- End of testinput11 --/  /-- End of testinput11 --/

Legend:
Removed from v.453  
changed lines
  Added in v.619

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12