# Diff of /code/trunk/testdata/testoutput11

revision 473 by ph10, Sat Jan 2 12:40:07 2010 UTC revision 510 by ph10, Sat Mar 27 17:45:29 2010 UTC
# Line 742  No match Line 742  No match
742      ac      ac
743   0:   0:
744
745    /(?>a\Kb)/
746        ab
747     0: b
748
749    /((?>a\Kb))/
750        ab
751     0: b
752     1: ab
753
754    /(a\Kb)/
755        ab
756     0: b
757     1: ab
758
759    /^a\Kcz|ac/
760        ac
761     0: ac
762
763    /(?>a\Kbz|ab)/
764        ab
765     0: ab
766
767    /^(?&t)(?(DEFINE)(?<t>a\Kb))\$/
768        ab
769     0: b
770
771    /^([^()]|\((?1)*\))*\$/
772        a(b)c
773     0: a(b)c
774     1: c
775        a(b(c)d)e
776     0: a(b(c)d)e
777     1: e
778
779    /(?P<L1>(?P<L2>0)(?P>L1)|(?P>L2))/
780        0
781     0: 0
782     1: 0
783        00
784     0: 00
785     1: 00
786     2: 0
787        0000
788     0: 0000
789     1: 0000
790     2: 0
791
792    /(?P<L1>(?P<L2>0)|(?P>L2)(?P>L1))/
793        0
794     0: 0
795     1: 0
796     2: 0
797        00
798     0: 0
799     1: 0
800     2: 0
801        0000
802     0: 0
803     1: 0
804     2: 0
805
806    /--- This one does fail, as expected, in Perl. It needs the complex item at the
807         end of the pattern. A single letter instead of (B|D) makes it not fail,
808         which I think is a Perl bug. --- /
809
810    /A(*COMMIT)(B|D)/
811        ACABX
812    No match
813
814    /--- Check the use of names for failure ---/
815
816    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
817        ** Failers
818    No match
819        AC
820    No match, mark = A
821        CB
822    No match, mark = B
823
824    /(*MARK:A)(*SKIP:B)(C|X)/K
825        C
826     0: C
827     1: C
828    MK: A
829        D
830    No match, mark = A
831
832    /^(A(*THEN:A)B|C(*THEN:B)D)/K
833        ** Failers
834    No match
835        CB
836    No match, mark = B
837
838    /^(?:A(*THEN:A)B|C(*THEN:B)D)/K
839        CB
840    No match, mark = B
841
842    /^(?>A(*THEN:A)B|C(*THEN:B)D)/K
843        CB
844    No match, mark = B
845
846    /--- This should succeed, as the skip causes bump to offset 1 (the mark). Note
847    that we have to have something complicated such as (B|Z) at the end because,
848    for Perl, a simple character somehow causes an unwanted optimization to mess
849    with the handling of backtracking verbs. ---/
850
851    /A(*MARK:A)A+(*SKIP:A)(B|Z) | AC/xK
852        AAAC
853     0: AC
854
855    /--- Test skipping over a non-matching mark. ---/
856
857    /A(*MARK:A)A+(*MARK:B)(*SKIP:A)(B|Z) | AC/xK
858        AAAC
859     0: AC
860
861    /--- Check shorthand for MARK ---/
862
863    /A(*:A)A+(*SKIP:A)(B|Z) | AC/xK
864        AAAC
865     0: AC
866
867    /--- This should succeed, as a non-existent skip name disables the skip ---/
868
869    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AC/xK
870        AAAC
871     0: AC
872
873    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AC(*:B)/xK
874        AAAC
875     0: AC
876    MK: B
877
878    /--- We use something more complicated than individual letters here, because
879    that causes different behaviour in Perl. Perhaps it disables some optimization;
880    anyway, the result now matches PCRE in that no tag is passed back for the
881    failures. ---/
882
883    /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
884        AABC
885     0: AB
886     1: A
887     2: B
888    MK: A
889        XXYZ
890     0: XXY
891     1: <unset>
892     2: <unset>
893     3: X
894     4: X
895     5: Y
896    MK: B
897        ** Failers
898    No match
899        XAQQ
900    No match
901        XAQQXZZ
902    No match
903        AXQQQ
904    No match
905        AXXQQQ
906    No match
907
908    /--- COMMIT at the start of a pattern should act like an anchor. Again,
909    however, we need the complication for Perl. ---/
910
911    /(*COMMIT)(A|P)(B|P)(C|P)/
912        ABCDEFG
913     0: ABC
914     1: A
915     2: B
916     3: C
917        ** Failers
918    No match
919        DEFGABC
920    No match
921
922    /--- COMMIT inside an atomic group can't stop backtracking over the group. ---/
923
924    /(\w+)(?>b(*COMMIT))\w{2}/
925        abbb
926     0: abbb
927     1: a
928
929    /(\w+)b(*COMMIT)\w{2}/
930        abbb
931    No match
932
933  /-- End of testinput11 --/  /-- End of testinput11 --/

Legend:
 Removed from v.473 changed lines Added in v.510