xref: /aosp_15_r20/external/pcre/testdata/testinput22 (revision 22dc650d8ae982c6770746019a6f94af92b0f024)
1*22dc650dSSadaf Ebrahimi# Tests of \C when Unicode support is available. Note that \C is not supported
2*22dc650dSSadaf Ebrahimi# for DFA matching in UTF mode, so this test is not run with -dfa. The output
3*22dc650dSSadaf Ebrahimi# of this test is different in 8-, 16-, and 32-bit modes. Some tests may match
4*22dc650dSSadaf Ebrahimi# in some widths and not in others.
5*22dc650dSSadaf Ebrahimi
6*22dc650dSSadaf Ebrahimi/ab\Cde/utf,info
7*22dc650dSSadaf Ebrahimi    abXde
8*22dc650dSSadaf Ebrahimi
9*22dc650dSSadaf Ebrahimi# This should produce an error diagnostic (\C in UTF lookbehind) in 8-bit and
10*22dc650dSSadaf Ebrahimi# 16-bit modes, but not in 32-bit mode.
11*22dc650dSSadaf Ebrahimi
12*22dc650dSSadaf Ebrahimi/(?<=ab\Cde)X/utf
13*22dc650dSSadaf Ebrahimi    ab!deXYZ
14*22dc650dSSadaf Ebrahimi
15*22dc650dSSadaf Ebrahimi# Autopossessification tests
16*22dc650dSSadaf Ebrahimi
17*22dc650dSSadaf Ebrahimi/\C+\X \X+\C/Bx
18*22dc650dSSadaf Ebrahimi
19*22dc650dSSadaf Ebrahimi/\C+\X \X+\C/Bx,utf
20*22dc650dSSadaf Ebrahimi
21*22dc650dSSadaf Ebrahimi/\C\X*TӅ;
22*22dc650dSSadaf Ebrahimi{0,6}\v+
23*22dc650dSSadaf EbrahimiF
24*22dc650dSSadaf Ebrahimi/utf
25*22dc650dSSadaf Ebrahimi\= Expect no match
26*22dc650dSSadaf Ebrahimi    Ӆ\x0a
27*22dc650dSSadaf Ebrahimi
28*22dc650dSSadaf Ebrahimi/\C(\W?ſ)'?{{/utf
29*22dc650dSSadaf Ebrahimi\= Expect no match
30*22dc650dSSadaf Ebrahimi    \\C(\\W?ſ)'?{{
31*22dc650dSSadaf Ebrahimi
32*22dc650dSSadaf Ebrahimi/X(\C{3})/utf
33*22dc650dSSadaf Ebrahimi    X\x{1234}
34*22dc650dSSadaf Ebrahimi    X\x{11234}Y
35*22dc650dSSadaf Ebrahimi    X\x{11234}YZ
36*22dc650dSSadaf Ebrahimi
37*22dc650dSSadaf Ebrahimi/X(\C{4})/utf
38*22dc650dSSadaf Ebrahimi    X\x{1234}YZ
39*22dc650dSSadaf Ebrahimi    X\x{11234}YZ
40*22dc650dSSadaf Ebrahimi    X\x{11234}YZW
41*22dc650dSSadaf Ebrahimi
42*22dc650dSSadaf Ebrahimi/X\C*/utf
43*22dc650dSSadaf Ebrahimi    XYZabcdce
44*22dc650dSSadaf Ebrahimi
45*22dc650dSSadaf Ebrahimi/X\C*?/utf
46*22dc650dSSadaf Ebrahimi    XYZabcde
47*22dc650dSSadaf Ebrahimi
48*22dc650dSSadaf Ebrahimi/X\C{3,5}/utf
49*22dc650dSSadaf Ebrahimi    Xabcdefg
50*22dc650dSSadaf Ebrahimi    X\x{1234}
51*22dc650dSSadaf Ebrahimi    X\x{1234}YZ
52*22dc650dSSadaf Ebrahimi    X\x{1234}\x{512}
53*22dc650dSSadaf Ebrahimi    X\x{1234}\x{512}YZ
54*22dc650dSSadaf Ebrahimi    X\x{11234}Y
55*22dc650dSSadaf Ebrahimi    X\x{11234}YZ
56*22dc650dSSadaf Ebrahimi    X\x{11234}\x{512}
57*22dc650dSSadaf Ebrahimi    X\x{11234}\x{512}YZ
58*22dc650dSSadaf Ebrahimi    X\x{11234}\x{512}\x{11234}Z
59*22dc650dSSadaf Ebrahimi
60*22dc650dSSadaf Ebrahimi/X\C{3,5}?/utf
61*22dc650dSSadaf Ebrahimi    Xabcdefg
62*22dc650dSSadaf Ebrahimi    X\x{1234}
63*22dc650dSSadaf Ebrahimi    X\x{1234}YZ
64*22dc650dSSadaf Ebrahimi    X\x{1234}\x{512}
65*22dc650dSSadaf Ebrahimi    X\x{11234}Y
66*22dc650dSSadaf Ebrahimi    X\x{11234}YZ
67*22dc650dSSadaf Ebrahimi    X\x{11234}\x{512}YZ
68*22dc650dSSadaf Ebrahimi    X\x{11234}
69*22dc650dSSadaf Ebrahimi
70*22dc650dSSadaf Ebrahimi/a\Cb/utf
71*22dc650dSSadaf Ebrahimi    aXb
72*22dc650dSSadaf Ebrahimi    a\nb
73*22dc650dSSadaf Ebrahimi    a\x{100}b
74*22dc650dSSadaf Ebrahimi
75*22dc650dSSadaf Ebrahimi/a\C\Cb/utf
76*22dc650dSSadaf Ebrahimi    a\x{100}b
77*22dc650dSSadaf Ebrahimi    a\x{12257}b
78*22dc650dSSadaf Ebrahimi    a\x{12257}\x{11234}b
79*22dc650dSSadaf Ebrahimi
80*22dc650dSSadaf Ebrahimi/ab\Cde/utf
81*22dc650dSSadaf Ebrahimi    abXde
82*22dc650dSSadaf Ebrahimi
83*22dc650dSSadaf Ebrahimi# This one is here not because it's different to Perl, but because the way
84*22dc650dSSadaf Ebrahimi# the captured single code unit is displayed. (In Perl it becomes a character,
85*22dc650dSSadaf Ebrahimi# and you can't tell the difference.)
86*22dc650dSSadaf Ebrahimi
87*22dc650dSSadaf Ebrahimi/X(\C)(.*)/utf
88*22dc650dSSadaf Ebrahimi    X\x{1234}
89*22dc650dSSadaf Ebrahimi    X\nabc
90*22dc650dSSadaf Ebrahimi
91*22dc650dSSadaf Ebrahimi# This one is here because Perl gives out a grumbly error message (quite
92*22dc650dSSadaf Ebrahimi# correctly, but that messes up comparisons).
93*22dc650dSSadaf Ebrahimi
94*22dc650dSSadaf Ebrahimi/a\Cb/utf
95*22dc650dSSadaf Ebrahimi\= Expect no match in 8-bit mode
96*22dc650dSSadaf Ebrahimi    a\x{100}b
97*22dc650dSSadaf Ebrahimi
98*22dc650dSSadaf Ebrahimi/^ab\C/utf,no_start_optimize
99*22dc650dSSadaf Ebrahimi\= Expect no match - tests \C at end of subject
100*22dc650dSSadaf Ebrahimi    ab
101*22dc650dSSadaf Ebrahimi
102*22dc650dSSadaf Ebrahimi/\C[^\v]+\x80/utf
103*22dc650dSSadaf Ebrahimi    [AΏBŀC]
104*22dc650dSSadaf Ebrahimi
105*22dc650dSSadaf Ebrahimi/\C[^\d]+\x80/utf
106*22dc650dSSadaf Ebrahimi    [AΏBŀC]
107*22dc650dSSadaf Ebrahimi
108# End of testinput22
109