xref: /aosp_15_r20/external/pcre/testdata/testinput24 (revision 22dc650d8ae982c6770746019a6f94af92b0f024)
1*22dc650dSSadaf Ebrahimi# This file tests the auxiliary pattern conversion features of the PCRE2
2*22dc650dSSadaf Ebrahimi# library, in non-UTF mode.
3*22dc650dSSadaf Ebrahimi
4*22dc650dSSadaf Ebrahimi#forbid_utf
5*22dc650dSSadaf Ebrahimi#newline_default lf any anycrlf
6*22dc650dSSadaf Ebrahimi
7*22dc650dSSadaf Ebrahimi# -------- Tests of glob conversion --------
8*22dc650dSSadaf Ebrahimi
9*22dc650dSSadaf Ebrahimi# Set the glob separator explicitly so that different OS defaults are not a
10*22dc650dSSadaf Ebrahimi# problem. Then test various errors.
11*22dc650dSSadaf Ebrahimi
12*22dc650dSSadaf Ebrahimi#pattern convert=glob,convert_glob_escape=\,convert_glob_separator=/
13*22dc650dSSadaf Ebrahimi
14*22dc650dSSadaf Ebrahimi/abc/posix
15*22dc650dSSadaf Ebrahimi
16*22dc650dSSadaf Ebrahimi# Separator must be / \ or .
17*22dc650dSSadaf Ebrahimi
18*22dc650dSSadaf Ebrahimi/a*b/convert_glob_separator=%
19*22dc650dSSadaf Ebrahimi
20*22dc650dSSadaf Ebrahimi# Can't have separator in a class
21*22dc650dSSadaf Ebrahimi
22*22dc650dSSadaf Ebrahimi"[ab/cd]"
23*22dc650dSSadaf Ebrahimi
24*22dc650dSSadaf Ebrahimi"[,-/]"
25*22dc650dSSadaf Ebrahimi
26*22dc650dSSadaf Ebrahimi/[ab/
27*22dc650dSSadaf Ebrahimi
28*22dc650dSSadaf Ebrahimi# Length check
29*22dc650dSSadaf Ebrahimi
30*22dc650dSSadaf Ebrahimi/abc/convert_length=11
31*22dc650dSSadaf Ebrahimi
32*22dc650dSSadaf Ebrahimi/abc/convert_length=12
33*22dc650dSSadaf Ebrahimi
34*22dc650dSSadaf Ebrahimi# Now some actual tests
35*22dc650dSSadaf Ebrahimi
36*22dc650dSSadaf Ebrahimi/a?b[]xy]*c/
37*22dc650dSSadaf Ebrahimi    azb]1234c
38*22dc650dSSadaf Ebrahimi
39*22dc650dSSadaf Ebrahimi# Tests from the gitwildmatch list, with some additions
40*22dc650dSSadaf Ebrahimi
41*22dc650dSSadaf Ebrahimi/foo/
42*22dc650dSSadaf Ebrahimi    foo
43*22dc650dSSadaf Ebrahimi/= Expect no match
44*22dc650dSSadaf Ebrahimi    bar
45*22dc650dSSadaf Ebrahimi
46*22dc650dSSadaf Ebrahimi//
47*22dc650dSSadaf Ebrahimi    \
48*22dc650dSSadaf Ebrahimi
49*22dc650dSSadaf Ebrahimi/???/
50*22dc650dSSadaf Ebrahimi    foo
51*22dc650dSSadaf Ebrahimi\= Expect no match
52*22dc650dSSadaf Ebrahimi    foobar
53*22dc650dSSadaf Ebrahimi
54*22dc650dSSadaf Ebrahimi/*/
55*22dc650dSSadaf Ebrahimi    foo
56*22dc650dSSadaf Ebrahimi    \
57*22dc650dSSadaf Ebrahimi
58*22dc650dSSadaf Ebrahimi/f*/
59*22dc650dSSadaf Ebrahimi    foo
60*22dc650dSSadaf Ebrahimi    f
61*22dc650dSSadaf Ebrahimi
62*22dc650dSSadaf Ebrahimi/*f/
63*22dc650dSSadaf Ebrahimi    oof
64*22dc650dSSadaf Ebrahimi\= Expect no match
65*22dc650dSSadaf Ebrahimi    foo
66*22dc650dSSadaf Ebrahimi
67*22dc650dSSadaf Ebrahimi/*foo*/
68*22dc650dSSadaf Ebrahimi    foo
69*22dc650dSSadaf Ebrahimi    food
70*22dc650dSSadaf Ebrahimi    aprilfool
71*22dc650dSSadaf Ebrahimi
72*22dc650dSSadaf Ebrahimi/*ob*a*r*/
73*22dc650dSSadaf Ebrahimi    foobar
74*22dc650dSSadaf Ebrahimi
75*22dc650dSSadaf Ebrahimi/*ab/
76*22dc650dSSadaf Ebrahimi    aaaaaaabababab
77*22dc650dSSadaf Ebrahimi
78*22dc650dSSadaf Ebrahimi/foo\*/
79*22dc650dSSadaf Ebrahimi    foo*
80*22dc650dSSadaf Ebrahimi
81*22dc650dSSadaf Ebrahimi/foo\*bar/
82*22dc650dSSadaf Ebrahimi\= Expect no match
83*22dc650dSSadaf Ebrahimi    foobar
84*22dc650dSSadaf Ebrahimi
85*22dc650dSSadaf Ebrahimi/f\\oo/
86*22dc650dSSadaf Ebrahimi    f\\oo
87*22dc650dSSadaf Ebrahimi
88*22dc650dSSadaf Ebrahimi/*[al]?/
89*22dc650dSSadaf Ebrahimi    ball
90*22dc650dSSadaf Ebrahimi
91*22dc650dSSadaf Ebrahimi/[ten]/
92*22dc650dSSadaf Ebrahimi\= Expect no match
93*22dc650dSSadaf Ebrahimi    ten
94*22dc650dSSadaf Ebrahimi
95*22dc650dSSadaf Ebrahimi/t[a-g]n/
96*22dc650dSSadaf Ebrahimi    ten
97*22dc650dSSadaf Ebrahimi
98*22dc650dSSadaf Ebrahimi/a[]]b/
99*22dc650dSSadaf Ebrahimi    a]b
100*22dc650dSSadaf Ebrahimi
101*22dc650dSSadaf Ebrahimi/a[]a-]b/
102*22dc650dSSadaf Ebrahimi
103*22dc650dSSadaf Ebrahimi/a[]-]b/
104*22dc650dSSadaf Ebrahimi    a-b
105*22dc650dSSadaf Ebrahimi    a]b
106*22dc650dSSadaf Ebrahimi\= Expect no match
107*22dc650dSSadaf Ebrahimi    aab
108*22dc650dSSadaf Ebrahimi
109*22dc650dSSadaf Ebrahimi/a[]a-z]b/
110*22dc650dSSadaf Ebrahimi    aab
111*22dc650dSSadaf Ebrahimi
112*22dc650dSSadaf Ebrahimi/]/
113*22dc650dSSadaf Ebrahimi    ]
114*22dc650dSSadaf Ebrahimi
115*22dc650dSSadaf Ebrahimi/t[!a-g]n/
116*22dc650dSSadaf Ebrahimi    ton
117*22dc650dSSadaf Ebrahimi\= Expect no match
118*22dc650dSSadaf Ebrahimi    ten
119*22dc650dSSadaf Ebrahimi
120*22dc650dSSadaf Ebrahimi'[[:alpha:]][[:digit:]][[:upper:]]'
121*22dc650dSSadaf Ebrahimi    a1B
122*22dc650dSSadaf Ebrahimi
123*22dc650dSSadaf Ebrahimi'[[:digit:][:upper:][:space:]]'
124*22dc650dSSadaf Ebrahimi    A
125*22dc650dSSadaf Ebrahimi    1
126*22dc650dSSadaf Ebrahimi    \ \=
127*22dc650dSSadaf Ebrahimi\= Expect no match
128*22dc650dSSadaf Ebrahimi    a
129*22dc650dSSadaf Ebrahimi    .
130*22dc650dSSadaf Ebrahimi
131*22dc650dSSadaf Ebrahimi'[a-c[:digit:]x-z]'
132*22dc650dSSadaf Ebrahimi    5
133*22dc650dSSadaf Ebrahimi    b
134*22dc650dSSadaf Ebrahimi    y
135*22dc650dSSadaf Ebrahimi\= Expect no match
136*22dc650dSSadaf Ebrahimi    q
137*22dc650dSSadaf Ebrahimi
138*22dc650dSSadaf Ebrahimi# End of gitwildmatch tests
139*22dc650dSSadaf Ebrahimi
140*22dc650dSSadaf Ebrahimi/*.j?g/
141*22dc650dSSadaf Ebrahimi    pic01.jpg
142*22dc650dSSadaf Ebrahimi    .jpg
143*22dc650dSSadaf Ebrahimi    pic02.jxg
144*22dc650dSSadaf Ebrahimi\= Expect no match
145*22dc650dSSadaf Ebrahimi    pic03.j/g
146*22dc650dSSadaf Ebrahimi
147*22dc650dSSadaf Ebrahimi/A[+-0]B/
148*22dc650dSSadaf Ebrahimi    A+B
149*22dc650dSSadaf Ebrahimi    A.B
150*22dc650dSSadaf Ebrahimi    A0B
151*22dc650dSSadaf Ebrahimi\= Expect no match
152*22dc650dSSadaf Ebrahimi    A/B
153*22dc650dSSadaf Ebrahimi
154*22dc650dSSadaf Ebrahimi/*x?z/
155*22dc650dSSadaf Ebrahimi    abc.xyz
156*22dc650dSSadaf Ebrahimi\= Expect no match
157*22dc650dSSadaf Ebrahimi    .xyz
158*22dc650dSSadaf Ebrahimi
159*22dc650dSSadaf Ebrahimi/?x?z/
160*22dc650dSSadaf Ebrahimi    axyz
161*22dc650dSSadaf Ebrahimi\= Expect no match
162*22dc650dSSadaf Ebrahimi    .xyz
163*22dc650dSSadaf Ebrahimi
164*22dc650dSSadaf Ebrahimi"[,-0]x?z"
165*22dc650dSSadaf Ebrahimi    ,xyz
166*22dc650dSSadaf Ebrahimi\= Expect no match
167*22dc650dSSadaf Ebrahimi    /xyz
168*22dc650dSSadaf Ebrahimi    .xyz
169*22dc650dSSadaf Ebrahimi
170*22dc650dSSadaf Ebrahimi".x*"
171*22dc650dSSadaf Ebrahimi    .xabc
172*22dc650dSSadaf Ebrahimi
173*22dc650dSSadaf Ebrahimi/a[--0]z/
174*22dc650dSSadaf Ebrahimi    a-z
175*22dc650dSSadaf Ebrahimi    a.z
176*22dc650dSSadaf Ebrahimi    a0z
177*22dc650dSSadaf Ebrahimi\= Expect no match
178*22dc650dSSadaf Ebrahimi    a/z
179*22dc650dSSadaf Ebrahimi    a1z
180*22dc650dSSadaf Ebrahimi
181*22dc650dSSadaf Ebrahimi/<[a-c-d]>/
182*22dc650dSSadaf Ebrahimi    <a>
183*22dc650dSSadaf Ebrahimi    <b>
184*22dc650dSSadaf Ebrahimi    <c>
185*22dc650dSSadaf Ebrahimi    <d>
186*22dc650dSSadaf Ebrahimi    <->
187*22dc650dSSadaf Ebrahimi
188*22dc650dSSadaf Ebrahimi/a[[:digit:].]z/
189*22dc650dSSadaf Ebrahimi    a1z
190*22dc650dSSadaf Ebrahimi    a.z
191*22dc650dSSadaf Ebrahimi\= Expect no match
192*22dc650dSSadaf Ebrahimi    a:z
193*22dc650dSSadaf Ebrahimi
194*22dc650dSSadaf Ebrahimi/a[[:digit].]z/
195*22dc650dSSadaf Ebrahimi    a[.]z
196*22dc650dSSadaf Ebrahimi    a:.]z
197*22dc650dSSadaf Ebrahimi    ad.]z
198*22dc650dSSadaf Ebrahimi
199*22dc650dSSadaf Ebrahimi/<[[:a[:digit:]b]>/
200*22dc650dSSadaf Ebrahimi    <[>
201*22dc650dSSadaf Ebrahimi    <:>
202*22dc650dSSadaf Ebrahimi    <a>
203*22dc650dSSadaf Ebrahimi    <9>
204*22dc650dSSadaf Ebrahimi    <b>
205*22dc650dSSadaf Ebrahimi\= Expect no match
206*22dc650dSSadaf Ebrahimi    <d>
207*22dc650dSSadaf Ebrahimi
208*22dc650dSSadaf Ebrahimi/a*b/convert_glob_separator=\
209*22dc650dSSadaf Ebrahimi
210*22dc650dSSadaf Ebrahimi/a*b/convert_glob_separator=.
211*22dc650dSSadaf Ebrahimi
212*22dc650dSSadaf Ebrahimi/a*b/convert_glob_separator=/
213*22dc650dSSadaf Ebrahimi
214*22dc650dSSadaf Ebrahimi# Non control character checking
215*22dc650dSSadaf Ebrahimi
216*22dc650dSSadaf Ebrahimi/A\B\\C\D/
217*22dc650dSSadaf Ebrahimi
218*22dc650dSSadaf Ebrahimi/\\{}\?\*+\[\]()|.^$/
219*22dc650dSSadaf Ebrahimi
220*22dc650dSSadaf Ebrahimi/*a*\/*b*/
221*22dc650dSSadaf Ebrahimi
222*22dc650dSSadaf Ebrahimi/?a?\/?b?/
223*22dc650dSSadaf Ebrahimi
224*22dc650dSSadaf Ebrahimi/[a\\b\c][]][-][\]\-]/
225*22dc650dSSadaf Ebrahimi
226*22dc650dSSadaf Ebrahimi/[^a\\b\c][!]][!-][^\]\-]/
227*22dc650dSSadaf Ebrahimi
228*22dc650dSSadaf Ebrahimi/[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:word:][:xdigit:]]/
229*22dc650dSSadaf Ebrahimi
230*22dc650dSSadaf Ebrahimi"[/-/]"
231*22dc650dSSadaf Ebrahimi
232*22dc650dSSadaf Ebrahimi/[-----]/
233*22dc650dSSadaf Ebrahimi
234*22dc650dSSadaf Ebrahimi/[------]/
235*22dc650dSSadaf Ebrahimi
236*22dc650dSSadaf Ebrahimi/[!------]/
237*22dc650dSSadaf Ebrahimi
238*22dc650dSSadaf Ebrahimi/[[:alpha:]-a]/
239*22dc650dSSadaf Ebrahimi
240*22dc650dSSadaf Ebrahimi/[[:alpha:]][[:punct:]][[:ascii:]]/
241*22dc650dSSadaf Ebrahimi
242*22dc650dSSadaf Ebrahimi/[a-[:alpha:]]/
243*22dc650dSSadaf Ebrahimi
244*22dc650dSSadaf Ebrahimi/[[:alpha:/
245*22dc650dSSadaf Ebrahimi
246*22dc650dSSadaf Ebrahimi/[[:alpha:]/
247*22dc650dSSadaf Ebrahimi
248*22dc650dSSadaf Ebrahimi/[[:alphaa:]]/
249*22dc650dSSadaf Ebrahimi
250*22dc650dSSadaf Ebrahimi/[[:xdigi:]]/
251*22dc650dSSadaf Ebrahimi
252*22dc650dSSadaf Ebrahimi/[[:xdigit::]]/
253*22dc650dSSadaf Ebrahimi
254*22dc650dSSadaf Ebrahimi/****/
255*22dc650dSSadaf Ebrahimi
256*22dc650dSSadaf Ebrahimi/**\/abc/
257*22dc650dSSadaf Ebrahimi  abc
258*22dc650dSSadaf Ebrahimi  x/abc
259*22dc650dSSadaf Ebrahimi  xabc
260*22dc650dSSadaf Ebrahimi
261*22dc650dSSadaf Ebrahimi/abc\/**/
262*22dc650dSSadaf Ebrahimi
263*22dc650dSSadaf Ebrahimi/abc\/**\/abc/
264*22dc650dSSadaf Ebrahimi
265*22dc650dSSadaf Ebrahimi/**\/*a*b*g*n*t/
266*22dc650dSSadaf Ebrahimi  abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt
267*22dc650dSSadaf Ebrahimi
268*22dc650dSSadaf Ebrahimi/**\/*a*\/**/
269*22dc650dSSadaf Ebrahimi  xx/xx/xx/xax/xx/xb
270*22dc650dSSadaf Ebrahimi
271*22dc650dSSadaf Ebrahimi/**\/*a*/
272*22dc650dSSadaf Ebrahimi  xx/xx/xx/xax
273*22dc650dSSadaf Ebrahimi  xx/xx/xx/xax/xx
274*22dc650dSSadaf Ebrahimi
275*22dc650dSSadaf Ebrahimi/**\/*a*\/**\/*b*/
276*22dc650dSSadaf Ebrahimi  xx/xx/xx/xax/xx/xb
277*22dc650dSSadaf Ebrahimi  xx/xx/xx/xax/xx/x
278*22dc650dSSadaf Ebrahimi
279*22dc650dSSadaf Ebrahimi"**a"convert=glob
280*22dc650dSSadaf Ebrahimi  a
281*22dc650dSSadaf Ebrahimi  c/b/a
282*22dc650dSSadaf Ebrahimi  c/b/aaa
283*22dc650dSSadaf Ebrahimi
284*22dc650dSSadaf Ebrahimi"a**/b"convert=glob
285*22dc650dSSadaf Ebrahimi  a/b
286*22dc650dSSadaf Ebrahimi  ab
287*22dc650dSSadaf Ebrahimi
288*22dc650dSSadaf Ebrahimi"a/**b"convert=glob
289*22dc650dSSadaf Ebrahimi  a/b
290*22dc650dSSadaf Ebrahimi  ab
291*22dc650dSSadaf Ebrahimi
292*22dc650dSSadaf Ebrahimi#pattern convert=glob:glob_no_starstar
293*22dc650dSSadaf Ebrahimi
294*22dc650dSSadaf Ebrahimi/***/
295*22dc650dSSadaf Ebrahimi
296*22dc650dSSadaf Ebrahimi/**a**/
297*22dc650dSSadaf Ebrahimi
298*22dc650dSSadaf Ebrahimi#pattern convert=unset
299*22dc650dSSadaf Ebrahimi#pattern convert=glob:glob_no_wild_separator
300*22dc650dSSadaf Ebrahimi
301*22dc650dSSadaf Ebrahimi/*/
302*22dc650dSSadaf Ebrahimi
303*22dc650dSSadaf Ebrahimi/*a*/
304*22dc650dSSadaf Ebrahimi
305*22dc650dSSadaf Ebrahimi/**a**/
306*22dc650dSSadaf Ebrahimi
307*22dc650dSSadaf Ebrahimi/a*b/
308*22dc650dSSadaf Ebrahimi
309*22dc650dSSadaf Ebrahimi/*a*b*/
310*22dc650dSSadaf Ebrahimi
311*22dc650dSSadaf Ebrahimi/??a??/
312*22dc650dSSadaf Ebrahimi
313*22dc650dSSadaf Ebrahimi#pattern convert=unset
314*22dc650dSSadaf Ebrahimi#pattern convert=glob,convert_glob_escape=0
315*22dc650dSSadaf Ebrahimi
316*22dc650dSSadaf Ebrahimi/a\b\cd/
317*22dc650dSSadaf Ebrahimi
318*22dc650dSSadaf Ebrahimi/**\/a/
319*22dc650dSSadaf Ebrahimi
320*22dc650dSSadaf Ebrahimi/a`*b/convert_glob_escape=`
321*22dc650dSSadaf Ebrahimi
322*22dc650dSSadaf Ebrahimi/a`*b/convert_glob_escape=0
323*22dc650dSSadaf Ebrahimi
324*22dc650dSSadaf Ebrahimi/a`*b/convert_glob_escape=x
325*22dc650dSSadaf Ebrahimi
326*22dc650dSSadaf Ebrahimi# -------- Tests of extended POSIX conversion --------
327*22dc650dSSadaf Ebrahimi
328*22dc650dSSadaf Ebrahimi#pattern convert=unset:posix_extended
329*22dc650dSSadaf Ebrahimi
330*22dc650dSSadaf Ebrahimi/<[[:a[:digit:]b]>/
331*22dc650dSSadaf Ebrahimi    <[>
332*22dc650dSSadaf Ebrahimi    <:>
333*22dc650dSSadaf Ebrahimi    <a>
334*22dc650dSSadaf Ebrahimi    <9>
335*22dc650dSSadaf Ebrahimi    <b>
336*22dc650dSSadaf Ebrahimi\= Expect no match
337*22dc650dSSadaf Ebrahimi    <d>
338*22dc650dSSadaf Ebrahimi
339*22dc650dSSadaf Ebrahimi/a+\1b\\c|d[ab\c]/
340*22dc650dSSadaf Ebrahimi
341*22dc650dSSadaf Ebrahimi/<[]bc]>/
342*22dc650dSSadaf Ebrahimi    <]>
343*22dc650dSSadaf Ebrahimi    <b>
344*22dc650dSSadaf Ebrahimi    <c>
345*22dc650dSSadaf Ebrahimi
346*22dc650dSSadaf Ebrahimi/<[^]bc]>/
347*22dc650dSSadaf Ebrahimi    <.>
348*22dc650dSSadaf Ebrahimi\= Expect no match
349*22dc650dSSadaf Ebrahimi    <]>
350*22dc650dSSadaf Ebrahimi    <b>
351*22dc650dSSadaf Ebrahimi
352*22dc650dSSadaf Ebrahimi/(a)\1b/
353*22dc650dSSadaf Ebrahimi    a1b
354*22dc650dSSadaf Ebrahimi\= Expect no match
355*22dc650dSSadaf Ebrahimi    aab
356*22dc650dSSadaf Ebrahimi
357*22dc650dSSadaf Ebrahimi/(ab)c)d]/
358*22dc650dSSadaf Ebrahimi    Xabc)d]Y
359*22dc650dSSadaf Ebrahimi
360*22dc650dSSadaf Ebrahimi/a***b/
361*22dc650dSSadaf Ebrahimi
362*22dc650dSSadaf Ebrahimi# -------- Tests of basic POSIX conversion --------
363*22dc650dSSadaf Ebrahimi
364*22dc650dSSadaf Ebrahimi#pattern convert=unset:posix_basic
365*22dc650dSSadaf Ebrahimi
366*22dc650dSSadaf Ebrahimi/a*b+c\+[def](ab)\(cd\)/
367*22dc650dSSadaf Ebrahimi
368*22dc650dSSadaf Ebrahimi/\(a\)\1b/
369*22dc650dSSadaf Ebrahimi    aab
370*22dc650dSSadaf Ebrahimi\= Expect no match
371*22dc650dSSadaf Ebrahimi    a1b
372*22dc650dSSadaf Ebrahimi
373*22dc650dSSadaf Ebrahimi/how.to how\.to/
374*22dc650dSSadaf Ebrahimi    how\nto how.to
375*22dc650dSSadaf Ebrahimi\= Expect no match
376*22dc650dSSadaf Ebrahimi    how\x{0}to how.to
377*22dc650dSSadaf Ebrahimi
378*22dc650dSSadaf Ebrahimi/^how to \^how to/
379*22dc650dSSadaf Ebrahimi
380*22dc650dSSadaf Ebrahimi/^*abc/
381*22dc650dSSadaf Ebrahimi
382*22dc650dSSadaf Ebrahimi/*abc/
383*22dc650dSSadaf Ebrahimi    X*abcY
384*22dc650dSSadaf Ebrahimi
385*22dc650dSSadaf Ebrahimi/**abc/
386*22dc650dSSadaf Ebrahimi    XabcY
387*22dc650dSSadaf Ebrahimi    X*abcY
388*22dc650dSSadaf Ebrahimi    X**abcY
389*22dc650dSSadaf Ebrahimi
390*22dc650dSSadaf Ebrahimi/*ab\(*cd\)/
391*22dc650dSSadaf Ebrahimi
392*22dc650dSSadaf Ebrahimi/^b\(c^d\)\(^e^f\)/
393*22dc650dSSadaf Ebrahimi
394*22dc650dSSadaf Ebrahimi/a***b/
395*22dc650dSSadaf Ebrahimi
396*22dc650dSSadaf Ebrahimi# End of testinput24
397