]> git.ipfire.org Git - thirdparty/glibc.git/blame - posix/tst-fnmatch.input
Update copyright dates with scripts/update-copyrights
[thirdparty/glibc.git] / posix / tst-fnmatch.input
CommitLineData
83b1b6d8 1# Tests for fnmatch.
6d7e8eda 2# Copyright (C) 2000-2023 Free Software Foundation, Inc.
83b1b6d8
UD
3# This file is part of the GNU C Library.
4# Contributes by Ulrich Drepper <drepper@redhat.com>.
5#
41bdb6e2 6
83b1b6d8 7# The GNU C Library is free software; you can redistribute it and/or
41bdb6e2
AJ
8# modify it under the terms of the GNU Lesser General Public
9# License as published by the Free Software Foundation; either
10# version 2.1 of the License, or (at your option) any later version.
11
83b1b6d8
UD
12# The GNU C Library is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
41bdb6e2
AJ
15# Lesser General Public License for more details.
16
17# You should have received a copy of the GNU Lesser General Public
59ba27a6 18# License along with the GNU C Library; if not, see
5a82c748 19# <https://www.gnu.org/licenses/>.
83b1b6d8
UD
20
21
22# Derived from the IEEE 2003.2 text. The standard only contains some
23# wording describing the situations to be tested. It does not specify
24# any specific tests. I.e., the tests below are in no case sufficient.
25# They are hopefully necessary, though.
7cd7d36f
CD
26#
27# See:
28#
29# http://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap09.html
30#
31# > RE Bracket Expression
32# >
33# > Range expressions are, historically, an integral part of REs.
34# > However, the requirements of "natural language behavior" and
35# > portability do conflict. In the POSIX locale, ranges must be treated
36# > according to the collating sequence and include such characters that
37# > fall within the range based on that collating sequence, regardless
38# > of character values. In other locales, ranges have unspecified behavior.
39# > ...
40# > The current standard leaves unspecified the behavior of a range
41# > expression outside the POSIX locale. This makes it clearer that
42# > conforming applications should avoid range expressions outside the
43# > POSIX locale, and it allows implementations and compatible user-mode
44# > matchers to interpret range expressions using native order, CEO,
45# > collation sequence, or other, more advanced techniques. The concerns
46# > which led to this change were raised in IEEE PASC interpretation
47# > 1003.2 #43 and others, and related to ambiguities in the
48# > specification of how multi-character collating elements should be
49# > handled in range expressions. These ambiguities had led to multiple
50# > interpretations of the specification, in conflicting ways, which led
51# > to varying implementations. As noted above, efforts were made to
52# > resolve the differences, but no solution has been found that would
53# > be specific enough to allow for portable software while not
54# > invalidating existing implementations.
55#
56# Therefore, using [a-z] does not make much sense except in the C/POSIX locale.
57# The new iso14651_t1_common lists upper case and lower case Latin characters
58# in a different order than the old one which causes surprising results
59# for example in the de_DE locale: [a-z] now includes A because A comes
60# after a in iso14651_t1_common but does not include Z because that comes
61# after z in iso14651_t1_common.
62#
63# This lead to several bugs and problems with user scripts that do not
64# expect [a-z] to match uppercase characters.
65#
66# See the following bugs:
67# https://sourceware.org/bugzilla/show_bug.cgi?id=23393
68# https://sourceware.org/bugzilla/show_bug.cgi?id=23420
69#
70# No consensus exists on how best to handle the changes so the
71# iso14651_t1_common collation element order (CEO) has been changed to
72# deinterlace the a-z and A-Z regions.
73#
74# With the deinterlacing commit ac3a3b4b0d561d776b60317d6a926050c8541655
75# could be reverted to re-test the correct non-interleaved expectations.
76#
77# Please note that despite the region being deinterlaced, the ordering
78# of collation remains the same. In glibc we implement CEO and because of
79# that we can reorder the elements to reorder ranges without impacting
80# collation which depends on weights. The collation element ordering
81# could have been changed to include just a-z, A-Z, and 0-9 in three
82# distinct blocks, but this needs more discussion by the community.
83b1b6d8
UD
83
84# B.6 004(C)
85C "!#%+,-./01234567889" "!#%+,-./01234567889" 0
86C ":;=@ABCDEFGHIJKLMNO" ":;=@ABCDEFGHIJKLMNO" 0
87C "PQRSTUVWXYZ]abcdefg" "PQRSTUVWXYZ]abcdefg" 0
88C "hijklmnopqrstuvwxyz" "hijklmnopqrstuvwxyz" 0
89C "^_{}~" "^_{}~" 0
90
91# B.6 005(C)
92C "\"$&'()" "\\\"\\$\\&\\'\\(\\)" 0
93C "*?[\\`|" "\\*\\?\\[\\\\\\`\\|" 0
94C "<>" "\\<\\>" 0
95
96# B.6 006(C)
97C "?*[" "[?*[][?*[][?*[]" 0
98C "a/b" "?/b" 0
99
100# B.6 007(C)
101C "a/b" "a?b" 0
102C "a/b" "a/?" 0
83b1b6d8
UD
103C "aa/b" "?/b" NOMATCH
104C "aa/b" "a?b" NOMATCH
105C "a/bb" "a/?" NOMATCH
106
107# B.6 009(C)
108C "abc" "[abc]" NOMATCH
109C "x" "[abc]" NOMATCH
110C "a" "[abc]" 0
111C "[" "[[abc]" 0
112C "a" "[][abc]" 0
113C "a]" "[]a]]" 0
114
115# B.6 010(C)
ab9afc21 116C "xyz" "[!abc]" NOMATCH
83b1b6d8
UD
117C "x" "[!abc]" 0
118C "a" "[!abc]" NOMATCH
119
120# B.6 011(C)
121C "]" "[][abc]" 0
122C "abc]" "[][abc]" NOMATCH
123C "[]abc" "[][]abc" NOMATCH
794c3ad3 124C "]" "[!]]" NOMATCH
83b1b6d8 125C "aa]" "[!]a]" NOMATCH
794c3ad3
UD
126C "]" "[!a]" 0
127C "]]" "[!a]]" 0
83b1b6d8
UD
128
129# B.6 012(C)
f3e29a1a
UD
130C "a" "[[.a.]]" 0
131C "-" "[[.-.]]" 0
132C "-" "[[.-.][.].]]" 0
133C "-" "[[.].][.-.]]" 0
134C "-" "[[.-.][=u=]]" 0
135C "-" "[[.-.][:alpha:]]" 0
136C "a" "[![.a.]]" NOMATCH
83b1b6d8
UD
137
138# B.6 013(C)
f3e29a1a
UD
139C "a" "[[.b.]]" NOMATCH
140C "a" "[[.b.][.c.]]" NOMATCH
141C "a" "[[.b.][=b=]]" NOMATCH
83b1b6d8 142
83b1b6d8
UD
143
144# B.6 015(C)
ecce00a9
UD
145C "a" "[[=a=]]" 0
146C "b" "[[=a=]b]" 0
147C "b" "[[=a=][=b=]]" 0
f3e29a1a
UD
148C "a" "[[=a=][=b=]]" 0
149C "a" "[[=a=][.b.]]" 0
150C "a" "[[=a=][:digit:]]" 0
83b1b6d8
UD
151
152# B.6 016(C)
ecce00a9
UD
153C "=" "[[=a=]b]" NOMATCH
154C "]" "[[=a=]b]" NOMATCH
f3e29a1a
UD
155C "a" "[[=b=][=c=]]" NOMATCH
156C "a" "[[=b=][.].]]" NOMATCH
157C "a" "[[=b=][:digit:]]" NOMATCH
83b1b6d8
UD
158
159# B.6 017(C)
ab9afc21
UD
160C "a" "[[:alnum:]]" 0
161C "a" "[![:alnum:]]" NOMATCH
162C "-" "[[:alnum:]]" NOMATCH
163C "a]a" "[[:alnum:]]a" NOMATCH
164C "-" "[[:alnum:]-]" 0
165C "aa" "[[:alnum:]]a" 0
166C "-" "[![:alnum:]]" 0
167C "]" "[!][:alnum:]]" NOMATCH
168C "[" "[![:alnum:][]" NOMATCH
169C "a" "[[:alnum:]]" 0
170C "b" "[[:alnum:]]" 0
171C "c" "[[:alnum:]]" 0
172C "d" "[[:alnum:]]" 0
173C "e" "[[:alnum:]]" 0
174C "f" "[[:alnum:]]" 0
175C "g" "[[:alnum:]]" 0
176C "h" "[[:alnum:]]" 0
177C "i" "[[:alnum:]]" 0
178C "j" "[[:alnum:]]" 0
179C "k" "[[:alnum:]]" 0
180C "l" "[[:alnum:]]" 0
181C "m" "[[:alnum:]]" 0
182C "n" "[[:alnum:]]" 0
183C "o" "[[:alnum:]]" 0
184C "p" "[[:alnum:]]" 0
185C "q" "[[:alnum:]]" 0
186C "r" "[[:alnum:]]" 0
187C "s" "[[:alnum:]]" 0
188C "t" "[[:alnum:]]" 0
189C "u" "[[:alnum:]]" 0
190C "v" "[[:alnum:]]" 0
191C "w" "[[:alnum:]]" 0
192C "x" "[[:alnum:]]" 0
193C "y" "[[:alnum:]]" 0
194C "z" "[[:alnum:]]" 0
195C "A" "[[:alnum:]]" 0
196C "B" "[[:alnum:]]" 0
197C "C" "[[:alnum:]]" 0
198C "D" "[[:alnum:]]" 0
199C "E" "[[:alnum:]]" 0
200C "F" "[[:alnum:]]" 0
201C "G" "[[:alnum:]]" 0
202C "H" "[[:alnum:]]" 0
203C "I" "[[:alnum:]]" 0
204C "J" "[[:alnum:]]" 0
205C "K" "[[:alnum:]]" 0
206C "L" "[[:alnum:]]" 0
207C "M" "[[:alnum:]]" 0
208C "N" "[[:alnum:]]" 0
209C "O" "[[:alnum:]]" 0
210C "P" "[[:alnum:]]" 0
211C "Q" "[[:alnum:]]" 0
212C "R" "[[:alnum:]]" 0
213C "S" "[[:alnum:]]" 0
214C "T" "[[:alnum:]]" 0
215C "U" "[[:alnum:]]" 0
216C "V" "[[:alnum:]]" 0
217C "W" "[[:alnum:]]" 0
218C "X" "[[:alnum:]]" 0
219C "Y" "[[:alnum:]]" 0
220C "Z" "[[:alnum:]]" 0
221C "0" "[[:alnum:]]" 0
222C "1" "[[:alnum:]]" 0
223C "2" "[[:alnum:]]" 0
224C "3" "[[:alnum:]]" 0
225C "4" "[[:alnum:]]" 0
226C "5" "[[:alnum:]]" 0
227C "6" "[[:alnum:]]" 0
228C "7" "[[:alnum:]]" 0
229C "8" "[[:alnum:]]" 0
230C "9" "[[:alnum:]]" 0
231C "!" "[[:alnum:]]" NOMATCH
232C "#" "[[:alnum:]]" NOMATCH
233C "%" "[[:alnum:]]" NOMATCH
234C "+" "[[:alnum:]]" NOMATCH
235C "," "[[:alnum:]]" NOMATCH
236C "-" "[[:alnum:]]" NOMATCH
237C "." "[[:alnum:]]" NOMATCH
238C "/" "[[:alnum:]]" NOMATCH
239C ":" "[[:alnum:]]" NOMATCH
240C ";" "[[:alnum:]]" NOMATCH
241C "=" "[[:alnum:]]" NOMATCH
242C "@" "[[:alnum:]]" NOMATCH
243C "[" "[[:alnum:]]" NOMATCH
244C "\\" "[[:alnum:]]" NOMATCH
245C "]" "[[:alnum:]]" NOMATCH
246C "^" "[[:alnum:]]" NOMATCH
247C "_" "[[:alnum:]]" NOMATCH
248C "{" "[[:alnum:]]" NOMATCH
249C "}" "[[:alnum:]]" NOMATCH
250C "~" "[[:alnum:]]" NOMATCH
251C "\"" "[[:alnum:]]" NOMATCH
252C "$" "[[:alnum:]]" NOMATCH
253C "&" "[[:alnum:]]" NOMATCH
254C "'" "[[:alnum:]]" NOMATCH
255C "(" "[[:alnum:]]" NOMATCH
256C ")" "[[:alnum:]]" NOMATCH
257C "*" "[[:alnum:]]" NOMATCH
258C "?" "[[:alnum:]]" NOMATCH
259C "`" "[[:alnum:]]" NOMATCH
260C "|" "[[:alnum:]]" NOMATCH
261C "<" "[[:alnum:]]" NOMATCH
262C ">" "[[:alnum:]]" NOMATCH
263C "\t" "[[:cntrl:]]" 0
264C "t" "[[:cntrl:]]" NOMATCH
265C "t" "[[:lower:]]" 0
266C "\t" "[[:lower:]]" NOMATCH
267C "T" "[[:lower:]]" NOMATCH
268C "\t" "[[:space:]]" 0
269C "t" "[[:space:]]" NOMATCH
270C "t" "[[:alpha:]]" 0
271C "\t" "[[:alpha:]]" NOMATCH
272C "0" "[[:digit:]]" 0
273C "\t" "[[:digit:]]" NOMATCH
274C "t" "[[:digit:]]" NOMATCH
275C "\t" "[[:print:]]" NOMATCH
276C "t" "[[:print:]]" 0
277C "T" "[[:upper:]]" 0
278C "\t" "[[:upper:]]" NOMATCH
279C "t" "[[:upper:]]" NOMATCH
280C "\t" "[[:blank:]]" 0
281C "t" "[[:blank:]]" NOMATCH
282C "\t" "[[:graph:]]" NOMATCH
283C "t" "[[:graph:]]" 0
284C "." "[[:punct:]]" 0
285C "t" "[[:punct:]]" NOMATCH
286C "\t" "[[:punct:]]" NOMATCH
287C "0" "[[:xdigit:]]" 0
288C "\t" "[[:xdigit:]]" NOMATCH
289C "a" "[[:xdigit:]]" 0
290C "A" "[[:xdigit:]]" 0
291C "t" "[[:xdigit:]]" NOMATCH
292C "a" "[[alpha]]" NOMATCH
293C "a" "[[alpha:]]" NOMATCH
294C "a]" "[[alpha]]" 0
295C "a]" "[[alpha:]]" 0
f3e29a1a
UD
296C "a" "[[:alpha:][.b.]]" 0
297C "a" "[[:alpha:][=b=]]" 0
298C "a" "[[:alpha:][:digit:]]" 0
299C "a" "[[:digit:][:alpha:]]" 0
83b1b6d8
UD
300
301# B.6 018(C)
ab9afc21
UD
302C "a" "[a-c]" 0
303C "b" "[a-c]" 0
304C "c" "[a-c]" 0
305C "a" "[b-c]" NOMATCH
306C "d" "[b-c]" NOMATCH
307C "B" "[a-c]" NOMATCH
308C "b" "[A-C]" NOMATCH
309C "" "[a-c]" NOMATCH
310C "as" "[a-ca-z]" NOMATCH
f3e29a1a
UD
311C "a" "[[.a.]-c]" 0
312C "a" "[a-[.c.]]" 0
313C "a" "[[.a.]-[.c.]]" 0
314C "b" "[[.a.]-c]" 0
315C "b" "[a-[.c.]]" 0
316C "b" "[[.a.]-[.c.]]" 0
317C "c" "[[.a.]-c]" 0
318C "c" "[a-[.c.]]" 0
319C "c" "[[.a.]-[.c.]]" 0
320C "d" "[[.a.]-c]" NOMATCH
321C "d" "[a-[.c.]]" NOMATCH
322C "d" "[[.a.]-[.c.]]" NOMATCH
83b1b6d8
UD
323
324# B.6 019(C)
f3e29a1a
UD
325C "a" "[c-a]" NOMATCH
326C "a" "[[.c.]-a]" NOMATCH
327C "a" "[c-[.a.]]" NOMATCH
328C "a" "[[.c.]-[.a.]]" NOMATCH
329C "c" "[c-a]" NOMATCH
330C "c" "[[.c.]-a]" NOMATCH
331C "c" "[c-[.a.]]" NOMATCH
332C "c" "[[.c.]-[.a.]]" NOMATCH
83b1b6d8
UD
333
334# B.6 020(C)
ab9afc21
UD
335C "a" "[a-c0-9]" 0
336C "d" "[a-c0-9]" NOMATCH
337C "B" "[a-c0-9]" NOMATCH
83b1b6d8
UD
338
339# B.6 021(C)
ab9afc21
UD
340C "-" "[-a]" 0
341C "a" "[-b]" NOMATCH
342C "-" "[!-a]" NOMATCH
343C "a" "[!-b]" 0
344C "-" "[a-c-0-9]" 0
345C "b" "[a-c-0-9]" 0
346C "a:" "a[0-9-a]" NOMATCH
347C "a:" "a[09-a]" 0
83b1b6d8
UD
348
349# B.6 024(C)
ab9afc21
UD
350C "" "*" 0
351C "asd/sdf" "*" 0
83b1b6d8
UD
352
353# B.6 025(C)
ab9afc21
UD
354C "as" "[a-c][a-z]" 0
355C "as" "??" 0
83b1b6d8
UD
356
357# B.6 026(C)
ab9afc21
UD
358C "asd/sdf" "as*df" 0
359C "asd/sdf" "as*" 0
360C "asd/sdf" "*df" 0
361C "asd/sdf" "as*dg" NOMATCH
362C "asdf" "as*df" 0
363C "asdf" "as*df?" NOMATCH
364C "asdf" "as*??" 0
365C "asdf" "a*???" 0
366C "asdf" "*????" 0
367C "asdf" "????*" 0
368C "asdf" "??*?" 0
83b1b6d8
UD
369
370# B.6 027(C)
ab9afc21
UD
371C "/" "/" 0
372C "/" "/*" 0
373C "/" "*/" 0
374C "/" "/?" NOMATCH
375C "/" "?/" NOMATCH
376C "/" "?" 0
377C "." "?" 0
378C "/." "??" 0
379C "/" "[!a-c]" 0
380C "." "[!a-c]" 0
f5c68a01
UD
381
382# B.6 029(C)
ab9afc21
UD
383C "/" "/" 0 PATHNAME
384C "//" "//" 0 PATHNAME
385C "/.a" "/*" 0 PATHNAME
386C "/.a" "/?a" 0 PATHNAME
387C "/.a" "/[!a-z]a" 0 PATHNAME
388C "/.a/.b" "/*/?b" 0 PATHNAME
f5c68a01
UD
389
390# B.6 030(C)
ab9afc21
UD
391C "/" "?" NOMATCH PATHNAME
392C "/" "*" NOMATCH PATHNAME
f5c68a01 393C "a/b" "a?b" NOMATCH PATHNAME
ab9afc21 394C "/.a/.b" "/*b" NOMATCH PATHNAME
f5c68a01
UD
395
396# B.6 031(C)
ab9afc21
UD
397C "/$" "\\/\\$" 0
398C "/[" "\\/\\[" 0
794c3ad3
UD
399C "/[" "\\/[" 0
400C "/[]" "\\/\\[]" 0
f5c68a01
UD
401
402# B.6 032(C)
ab9afc21
UD
403C "/$" "\\/\\$" NOMATCH NOESCAPE
404C "/\\$" "\\/\\$" NOMATCH NOESCAPE
405C "\\/\\$" "\\/\\$" 0 NOESCAPE
f5c68a01
UD
406
407# B.6 033(C)
ab9afc21 408C ".asd" ".*" 0 PERIOD
955994e1 409C "/.asd" "*" 0 PERIOD
ab9afc21
UD
410C "/as/.df" "*/?*f" 0 PERIOD
411C "..asd" ".[!a-z]*" 0 PERIOD
f5c68a01
UD
412
413# B.6 034(C)
ab9afc21
UD
414C ".asd" "*" NOMATCH PERIOD
415C ".asd" "?asd" NOMATCH PERIOD
416C ".asd" "[!a-z]*" NOMATCH PERIOD
f5c68a01
UD
417
418# B.6 035(C)
ab9afc21
UD
419C "/." "/." 0 PATHNAME|PERIOD
420C "/.a./.b." "/.*/.*" 0 PATHNAME|PERIOD
421C "/.a./.b." "/.??/.??" 0 PATHNAME|PERIOD
f5c68a01
UD
422
423# B.6 036(C)
ab9afc21
UD
424C "/." "*" NOMATCH PATHNAME|PERIOD
425C "/." "/*" NOMATCH PATHNAME|PERIOD
426C "/." "/?" NOMATCH PATHNAME|PERIOD
427C "/." "/[!a-z]" NOMATCH PATHNAME|PERIOD
428C "/a./.b." "/*/*" NOMATCH PATHNAME|PERIOD
429C "/a./.b." "/??/???" NOMATCH PATHNAME|PERIOD
430
955994e1
UD
431# Some home-grown tests.
432C "foobar" "foo*[abc]z" NOMATCH
433C "foobaz" "foo*[abc][xyz]" 0
434C "foobaz" "foo?*[abc][xyz]" 0
435C "foobaz" "foo?*[abc][x/yz]" 0
436C "foobaz" "foo?*[abc]/[xyz]" NOMATCH PATHNAME
437C "a" "a/" NOMATCH PATHNAME
438C "a/" "a" NOMATCH PATHNAME
439C "//a" "/a" NOMATCH PATHNAME
440C "/a" "//a" NOMATCH PATHNAME
95eaff64
UD
441C "az" "[a-]z" 0
442C "bz" "[ab-]z" 0
443C "cz" "[ab-]z" NOMATCH
444C "-z" "[ab-]z" 0
445C "az" "[-a]z" 0
446C "bz" "[-ab]z" 0
447C "cz" "[-ab]z" NOMATCH
448C "-z" "[-ab]z" 0
aae95a1b
UD
449C "\\" "[\\\\-a]" 0
450C "_" "[\\\\-a]" 0
451C "a" "[\\\\-a]" 0
452C "-" "[\\\\-a]" NOMATCH
453C "\\" "[\\]-a]" NOMATCH
454C "_" "[\\]-a]" 0
455C "a" "[\\]-a]" 0
456C "]" "[\\]-a]" 0
457C "-" "[\\]-a]" NOMATCH
458C "\\" "[!\\\\-a]" NOMATCH
459C "_" "[!\\\\-a]" NOMATCH
460C "a" "[!\\\\-a]" NOMATCH
461C "-" "[!\\\\-a]" 0
462C "!" "[\\!-]" 0
463C "-" "[\\!-]" 0
464C "\\" "[\\!-]" NOMATCH
465C "Z" "[Z-\\\\]" 0
466C "[" "[Z-\\\\]" 0
467C "\\" "[Z-\\\\]" 0
468C "-" "[Z-\\\\]" NOMATCH
469C "Z" "[Z-\\]]" 0
470C "[" "[Z-\\]]" 0
471C "\\" "[Z-\\]]" 0
472C "]" "[Z-\\]]" 0
473C "-" "[Z-\\]]" NOMATCH
955994e1 474
466f2be6
CD
475# B.6 004(C)
476C.UTF-8 "!#%+,-./01234567889" "!#%+,-./01234567889" 0
477C.UTF-8 ":;=@ABCDEFGHIJKLMNO" ":;=@ABCDEFGHIJKLMNO" 0
478C.UTF-8 "PQRSTUVWXYZ]abcdefg" "PQRSTUVWXYZ]abcdefg" 0
479C.UTF-8 "hijklmnopqrstuvwxyz" "hijklmnopqrstuvwxyz" 0
480C.UTF-8 "^_{}~" "^_{}~" 0
481
482# B.6 005(C)
483C.UTF-8 "\"$&'()" "\\\"\\$\\&\\'\\(\\)" 0
484C.UTF-8 "*?[\\`|" "\\*\\?\\[\\\\\\`\\|" 0
485C.UTF-8 "<>" "\\<\\>" 0
486
487# B.6 006(C)
488C.UTF-8 "?*[" "[?*[][?*[][?*[]" 0
489C.UTF-8 "a/b" "?/b" 0
490
491# B.6 007(C)
492C.UTF-8 "a/b" "a?b" 0
493C.UTF-8 "a/b" "a/?" 0
494C.UTF-8 "aa/b" "?/b" NOMATCH
495C.UTF-8 "aa/b" "a?b" NOMATCH
496C.UTF-8 "a/bb" "a/?" NOMATCH
497
498# B.6 009(C)
499C.UTF-8 "abc" "[abc]" NOMATCH
500C.UTF-8 "x" "[abc]" NOMATCH
501C.UTF-8 "a" "[abc]" 0
502C.UTF-8 "[" "[[abc]" 0
503C.UTF-8 "a" "[][abc]" 0
504C.UTF-8 "a]" "[]a]]" 0
505
506# B.6 010(C)
507C.UTF-8 "xyz" "[!abc]" NOMATCH
508C.UTF-8 "x" "[!abc]" 0
509C.UTF-8 "a" "[!abc]" NOMATCH
510
511# B.6 011(C)
512C.UTF-8 "]" "[][abc]" 0
513C.UTF-8 "abc]" "[][abc]" NOMATCH
514C.UTF-8 "[]abc" "[][]abc" NOMATCH
515C.UTF-8 "]" "[!]]" NOMATCH
516C.UTF-8 "aa]" "[!]a]" NOMATCH
517C.UTF-8 "]" "[!a]" 0
518C.UTF-8 "]]" "[!a]]" 0
519
520# B.6 012(C)
521C.UTF-8 "a" "[[.a.]]" 0
522C.UTF-8 "-" "[[.-.]]" 0
523C.UTF-8 "-" "[[.-.][.].]]" 0
524C.UTF-8 "-" "[[.].][.-.]]" 0
525C.UTF-8 "-" "[[.-.][=u=]]" 0
526C.UTF-8 "-" "[[.-.][:alpha:]]" 0
527C.UTF-8 "a" "[![.a.]]" NOMATCH
528
529# B.6 013(C)
530C.UTF-8 "a" "[[.b.]]" NOMATCH
531C.UTF-8 "a" "[[.b.][.c.]]" NOMATCH
532C.UTF-8 "a" "[[.b.][=b=]]" NOMATCH
533
534
535# B.6 015(C)
536C.UTF-8 "a" "[[=a=]]" 0
537C.UTF-8 "b" "[[=a=]b]" 0
538C.UTF-8 "b" "[[=a=][=b=]]" 0
539C.UTF-8 "a" "[[=a=][=b=]]" 0
540C.UTF-8 "a" "[[=a=][.b.]]" 0
541C.UTF-8 "a" "[[=a=][:digit:]]" 0
542
543# B.6 016(C)
544C.UTF-8 "=" "[[=a=]b]" NOMATCH
545C.UTF-8 "]" "[[=a=]b]" NOMATCH
546C.UTF-8 "a" "[[=b=][=c=]]" NOMATCH
547C.UTF-8 "a" "[[=b=][.].]]" NOMATCH
548C.UTF-8 "a" "[[=b=][:digit:]]" NOMATCH
549
550# B.6 017(C)
551C.UTF-8 "a" "[[:alnum:]]" 0
552C.UTF-8 "a" "[![:alnum:]]" NOMATCH
553C.UTF-8 "-" "[[:alnum:]]" NOMATCH
554C.UTF-8 "a]a" "[[:alnum:]]a" NOMATCH
555C.UTF-8 "-" "[[:alnum:]-]" 0
556C.UTF-8 "aa" "[[:alnum:]]a" 0
557C.UTF-8 "-" "[![:alnum:]]" 0
558C.UTF-8 "]" "[!][:alnum:]]" NOMATCH
559C.UTF-8 "[" "[![:alnum:][]" NOMATCH
560C.UTF-8 "a" "[[:alnum:]]" 0
561C.UTF-8 "b" "[[:alnum:]]" 0
562C.UTF-8 "c" "[[:alnum:]]" 0
563C.UTF-8 "d" "[[:alnum:]]" 0
564C.UTF-8 "e" "[[:alnum:]]" 0
565C.UTF-8 "f" "[[:alnum:]]" 0
566C.UTF-8 "g" "[[:alnum:]]" 0
567C.UTF-8 "h" "[[:alnum:]]" 0
568C.UTF-8 "i" "[[:alnum:]]" 0
569C.UTF-8 "j" "[[:alnum:]]" 0
570C.UTF-8 "k" "[[:alnum:]]" 0
571C.UTF-8 "l" "[[:alnum:]]" 0
572C.UTF-8 "m" "[[:alnum:]]" 0
573C.UTF-8 "n" "[[:alnum:]]" 0
574C.UTF-8 "o" "[[:alnum:]]" 0
575C.UTF-8 "p" "[[:alnum:]]" 0
576C.UTF-8 "q" "[[:alnum:]]" 0
577C.UTF-8 "r" "[[:alnum:]]" 0
578C.UTF-8 "s" "[[:alnum:]]" 0
579C.UTF-8 "t" "[[:alnum:]]" 0
580C.UTF-8 "u" "[[:alnum:]]" 0
581C.UTF-8 "v" "[[:alnum:]]" 0
582C.UTF-8 "w" "[[:alnum:]]" 0
583C.UTF-8 "x" "[[:alnum:]]" 0
584C.UTF-8 "y" "[[:alnum:]]" 0
585C.UTF-8 "z" "[[:alnum:]]" 0
586C.UTF-8 "A" "[[:alnum:]]" 0
587C.UTF-8 "B" "[[:alnum:]]" 0
588C.UTF-8 "C" "[[:alnum:]]" 0
589C.UTF-8 "D" "[[:alnum:]]" 0
590C.UTF-8 "E" "[[:alnum:]]" 0
591C.UTF-8 "F" "[[:alnum:]]" 0
592C.UTF-8 "G" "[[:alnum:]]" 0
593C.UTF-8 "H" "[[:alnum:]]" 0
594C.UTF-8 "I" "[[:alnum:]]" 0
595C.UTF-8 "J" "[[:alnum:]]" 0
596C.UTF-8 "K" "[[:alnum:]]" 0
597C.UTF-8 "L" "[[:alnum:]]" 0
598C.UTF-8 "M" "[[:alnum:]]" 0
599C.UTF-8 "N" "[[:alnum:]]" 0
600C.UTF-8 "O" "[[:alnum:]]" 0
601C.UTF-8 "P" "[[:alnum:]]" 0
602C.UTF-8 "Q" "[[:alnum:]]" 0
603C.UTF-8 "R" "[[:alnum:]]" 0
604C.UTF-8 "S" "[[:alnum:]]" 0
605C.UTF-8 "T" "[[:alnum:]]" 0
606C.UTF-8 "U" "[[:alnum:]]" 0
607C.UTF-8 "V" "[[:alnum:]]" 0
608C.UTF-8 "W" "[[:alnum:]]" 0
609C.UTF-8 "X" "[[:alnum:]]" 0
610C.UTF-8 "Y" "[[:alnum:]]" 0
611C.UTF-8 "Z" "[[:alnum:]]" 0
612C.UTF-8 "0" "[[:alnum:]]" 0
613C.UTF-8 "1" "[[:alnum:]]" 0
614C.UTF-8 "2" "[[:alnum:]]" 0
615C.UTF-8 "3" "[[:alnum:]]" 0
616C.UTF-8 "4" "[[:alnum:]]" 0
617C.UTF-8 "5" "[[:alnum:]]" 0
618C.UTF-8 "6" "[[:alnum:]]" 0
619C.UTF-8 "7" "[[:alnum:]]" 0
620C.UTF-8 "8" "[[:alnum:]]" 0
621C.UTF-8 "9" "[[:alnum:]]" 0
622C.UTF-8 "!" "[[:alnum:]]" NOMATCH
623C.UTF-8 "#" "[[:alnum:]]" NOMATCH
624C.UTF-8 "%" "[[:alnum:]]" NOMATCH
625C.UTF-8 "+" "[[:alnum:]]" NOMATCH
626C.UTF-8 "," "[[:alnum:]]" NOMATCH
627C.UTF-8 "-" "[[:alnum:]]" NOMATCH
628C.UTF-8 "." "[[:alnum:]]" NOMATCH
629C.UTF-8 "/" "[[:alnum:]]" NOMATCH
630C.UTF-8 ":" "[[:alnum:]]" NOMATCH
631C.UTF-8 ";" "[[:alnum:]]" NOMATCH
632C.UTF-8 "=" "[[:alnum:]]" NOMATCH
633C.UTF-8 "@" "[[:alnum:]]" NOMATCH
634C.UTF-8 "[" "[[:alnum:]]" NOMATCH
635C.UTF-8 "\\" "[[:alnum:]]" NOMATCH
636C.UTF-8 "]" "[[:alnum:]]" NOMATCH
637C.UTF-8 "^" "[[:alnum:]]" NOMATCH
638C.UTF-8 "_" "[[:alnum:]]" NOMATCH
639C.UTF-8 "{" "[[:alnum:]]" NOMATCH
640C.UTF-8 "}" "[[:alnum:]]" NOMATCH
641C.UTF-8 "~" "[[:alnum:]]" NOMATCH
642C.UTF-8 "\"" "[[:alnum:]]" NOMATCH
643C.UTF-8 "$" "[[:alnum:]]" NOMATCH
644C.UTF-8 "&" "[[:alnum:]]" NOMATCH
645C.UTF-8 "'" "[[:alnum:]]" NOMATCH
646C.UTF-8 "(" "[[:alnum:]]" NOMATCH
647C.UTF-8 ")" "[[:alnum:]]" NOMATCH
648C.UTF-8 "*" "[[:alnum:]]" NOMATCH
649C.UTF-8 "?" "[[:alnum:]]" NOMATCH
650C.UTF-8 "`" "[[:alnum:]]" NOMATCH
651C.UTF-8 "|" "[[:alnum:]]" NOMATCH
652C.UTF-8 "<" "[[:alnum:]]" NOMATCH
653C.UTF-8 ">" "[[:alnum:]]" NOMATCH
654C.UTF-8 "\t" "[[:cntrl:]]" 0
655C.UTF-8 "t" "[[:cntrl:]]" NOMATCH
656C.UTF-8 "t" "[[:lower:]]" 0
657C.UTF-8 "\t" "[[:lower:]]" NOMATCH
658C.UTF-8 "T" "[[:lower:]]" NOMATCH
659C.UTF-8 "\t" "[[:space:]]" 0
660C.UTF-8 "t" "[[:space:]]" NOMATCH
661C.UTF-8 "t" "[[:alpha:]]" 0
662C.UTF-8 "\t" "[[:alpha:]]" NOMATCH
663C.UTF-8 "0" "[[:digit:]]" 0
664C.UTF-8 "\t" "[[:digit:]]" NOMATCH
665C.UTF-8 "t" "[[:digit:]]" NOMATCH
666C.UTF-8 "\t" "[[:print:]]" NOMATCH
667C.UTF-8 "t" "[[:print:]]" 0
668C.UTF-8 "T" "[[:upper:]]" 0
669C.UTF-8 "\t" "[[:upper:]]" NOMATCH
670C.UTF-8 "t" "[[:upper:]]" NOMATCH
671C.UTF-8 "\t" "[[:blank:]]" 0
672C.UTF-8 "t" "[[:blank:]]" NOMATCH
673C.UTF-8 "\t" "[[:graph:]]" NOMATCH
674C.UTF-8 "t" "[[:graph:]]" 0
675C.UTF-8 "." "[[:punct:]]" 0
676C.UTF-8 "t" "[[:punct:]]" NOMATCH
677C.UTF-8 "\t" "[[:punct:]]" NOMATCH
678C.UTF-8 "0" "[[:xdigit:]]" 0
679C.UTF-8 "\t" "[[:xdigit:]]" NOMATCH
680C.UTF-8 "a" "[[:xdigit:]]" 0
681C.UTF-8 "A" "[[:xdigit:]]" 0
682C.UTF-8 "t" "[[:xdigit:]]" NOMATCH
683C.UTF-8 "a" "[[alpha]]" NOMATCH
684C.UTF-8 "a" "[[alpha:]]" NOMATCH
685C.UTF-8 "a]" "[[alpha]]" 0
686C.UTF-8 "a]" "[[alpha:]]" 0
687C.UTF-8 "a" "[[:alpha:][.b.]]" 0
688C.UTF-8 "a" "[[:alpha:][=b=]]" 0
689C.UTF-8 "a" "[[:alpha:][:digit:]]" 0
690C.UTF-8 "a" "[[:digit:][:alpha:]]" 0
691
692# B.6 018(C)
693C.UTF-8 "a" "[a-c]" 0
694C.UTF-8 "b" "[a-c]" 0
695C.UTF-8 "c" "[a-c]" 0
696C.UTF-8 "a" "[b-c]" NOMATCH
697C.UTF-8 "d" "[b-c]" NOMATCH
698C.UTF-8 "B" "[a-c]" NOMATCH
699C.UTF-8 "b" "[A-C]" NOMATCH
700C.UTF-8 "" "[a-c]" NOMATCH
701C.UTF-8 "as" "[a-ca-z]" NOMATCH
702C.UTF-8 "a" "[[.a.]-c]" 0
703C.UTF-8 "a" "[a-[.c.]]" 0
704C.UTF-8 "a" "[[.a.]-[.c.]]" 0
705C.UTF-8 "b" "[[.a.]-c]" 0
706C.UTF-8 "b" "[a-[.c.]]" 0
707C.UTF-8 "b" "[[.a.]-[.c.]]" 0
708C.UTF-8 "c" "[[.a.]-c]" 0
709C.UTF-8 "c" "[a-[.c.]]" 0
710C.UTF-8 "c" "[[.a.]-[.c.]]" 0
711C.UTF-8 "d" "[[.a.]-c]" NOMATCH
712C.UTF-8 "d" "[a-[.c.]]" NOMATCH
713C.UTF-8 "d" "[[.a.]-[.c.]]" NOMATCH
714
715# B.6 019(C)
716C.UTF-8 "a" "[c-a]" NOMATCH
717C.UTF-8 "a" "[[.c.]-a]" NOMATCH
718C.UTF-8 "a" "[c-[.a.]]" NOMATCH
719C.UTF-8 "a" "[[.c.]-[.a.]]" NOMATCH
720C.UTF-8 "c" "[c-a]" NOMATCH
721C.UTF-8 "c" "[[.c.]-a]" NOMATCH
722C.UTF-8 "c" "[c-[.a.]]" NOMATCH
723C.UTF-8 "c" "[[.c.]-[.a.]]" NOMATCH
724
725# B.6 020(C)
726C.UTF-8 "a" "[a-c0-9]" 0
727C.UTF-8 "d" "[a-c0-9]" NOMATCH
728C.UTF-8 "B" "[a-c0-9]" NOMATCH
729
730# B.6 021(C)
731C.UTF-8 "-" "[-a]" 0
732C.UTF-8 "a" "[-b]" NOMATCH
733C.UTF-8 "-" "[!-a]" NOMATCH
734C.UTF-8 "a" "[!-b]" 0
735C.UTF-8 "-" "[a-c-0-9]" 0
736C.UTF-8 "b" "[a-c-0-9]" 0
737C.UTF-8 "a:" "a[0-9-a]" NOMATCH
738C.UTF-8 "a:" "a[09-a]" 0
739
740# B.6 024(C)
741C.UTF-8 "" "*" 0
742C.UTF-8 "asd/sdf" "*" 0
743
744# B.6 025(C)
745C.UTF-8 "as" "[a-c][a-z]" 0
746C.UTF-8 "as" "??" 0
747
748# B.6 026(C)
749C.UTF-8 "asd/sdf" "as*df" 0
750C.UTF-8 "asd/sdf" "as*" 0
751C.UTF-8 "asd/sdf" "*df" 0
752C.UTF-8 "asd/sdf" "as*dg" NOMATCH
753C.UTF-8 "asdf" "as*df" 0
754C.UTF-8 "asdf" "as*df?" NOMATCH
755C.UTF-8 "asdf" "as*??" 0
756C.UTF-8 "asdf" "a*???" 0
757C.UTF-8 "asdf" "*????" 0
758C.UTF-8 "asdf" "????*" 0
759C.UTF-8 "asdf" "??*?" 0
760
761# B.6 027(C)
762C.UTF-8 "/" "/" 0
763C.UTF-8 "/" "/*" 0
764C.UTF-8 "/" "*/" 0
765C.UTF-8 "/" "/?" NOMATCH
766C.UTF-8 "/" "?/" NOMATCH
767C.UTF-8 "/" "?" 0
768C.UTF-8 "." "?" 0
769C.UTF-8 "/." "??" 0
770C.UTF-8 "/" "[!a-c]" 0
771C.UTF-8 "." "[!a-c]" 0
772
773# B.6 029(C)
774C.UTF-8 "/" "/" 0 PATHNAME
775C.UTF-8 "//" "//" 0 PATHNAME
776C.UTF-8 "/.a" "/*" 0 PATHNAME
777C.UTF-8 "/.a" "/?a" 0 PATHNAME
778C.UTF-8 "/.a" "/[!a-z]a" 0 PATHNAME
779C.UTF-8 "/.a/.b" "/*/?b" 0 PATHNAME
780
781# B.6 030(C)
782C.UTF-8 "/" "?" NOMATCH PATHNAME
783C.UTF-8 "/" "*" NOMATCH PATHNAME
784C.UTF-8 "a/b" "a?b" NOMATCH PATHNAME
785C.UTF-8 "/.a/.b" "/*b" NOMATCH PATHNAME
786
787# B.6 031(C)
788C.UTF-8 "/$" "\\/\\$" 0
789C.UTF-8 "/[" "\\/\\[" 0
790C.UTF-8 "/[" "\\/[" 0
791C.UTF-8 "/[]" "\\/\\[]" 0
792
793# B.6 032(C)
794C.UTF-8 "/$" "\\/\\$" NOMATCH NOESCAPE
795C.UTF-8 "/\\$" "\\/\\$" NOMATCH NOESCAPE
796C.UTF-8 "\\/\\$" "\\/\\$" 0 NOESCAPE
797
798# B.6 033(C)
799C.UTF-8 ".asd" ".*" 0 PERIOD
800C.UTF-8 "/.asd" "*" 0 PERIOD
801C.UTF-8 "/as/.df" "*/?*f" 0 PERIOD
802C.UTF-8 "..asd" ".[!a-z]*" 0 PERIOD
803
804# B.6 034(C)
805C.UTF-8 ".asd" "*" NOMATCH PERIOD
806C.UTF-8 ".asd" "?asd" NOMATCH PERIOD
807C.UTF-8 ".asd" "[!a-z]*" NOMATCH PERIOD
808
809# B.6 035(C)
810C.UTF-8 "/." "/." 0 PATHNAME|PERIOD
811C.UTF-8 "/.a./.b." "/.*/.*" 0 PATHNAME|PERIOD
812C.UTF-8 "/.a./.b." "/.??/.??" 0 PATHNAME|PERIOD
813
814# B.6 036(C)
815C.UTF-8 "/." "*" NOMATCH PATHNAME|PERIOD
816C.UTF-8 "/." "/*" NOMATCH PATHNAME|PERIOD
817C.UTF-8 "/." "/?" NOMATCH PATHNAME|PERIOD
818C.UTF-8 "/." "/[!a-z]" NOMATCH PATHNAME|PERIOD
819C.UTF-8 "/a./.b." "/*/*" NOMATCH PATHNAME|PERIOD
820C.UTF-8 "/a./.b." "/??/???" NOMATCH PATHNAME|PERIOD
821
822# Some home-grown tests.
823C.UTF-8 "foobar" "foo*[abc]z" NOMATCH
824C.UTF-8 "foobaz" "foo*[abc][xyz]" 0
825C.UTF-8 "foobaz" "foo?*[abc][xyz]" 0
826C.UTF-8 "foobaz" "foo?*[abc][x/yz]" 0
827C.UTF-8 "foobaz" "foo?*[abc]/[xyz]" NOMATCH PATHNAME
828C.UTF-8 "a" "a/" NOMATCH PATHNAME
829C.UTF-8 "a/" "a" NOMATCH PATHNAME
830C.UTF-8 "//a" "/a" NOMATCH PATHNAME
831C.UTF-8 "/a" "//a" NOMATCH PATHNAME
832C.UTF-8 "az" "[a-]z" 0
833C.UTF-8 "bz" "[ab-]z" 0
834C.UTF-8 "cz" "[ab-]z" NOMATCH
835C.UTF-8 "-z" "[ab-]z" 0
836C.UTF-8 "az" "[-a]z" 0
837C.UTF-8 "bz" "[-ab]z" 0
838C.UTF-8 "cz" "[-ab]z" NOMATCH
839C.UTF-8 "-z" "[-ab]z" 0
840C.UTF-8 "\\" "[\\\\-a]" 0
841C.UTF-8 "_" "[\\\\-a]" 0
842C.UTF-8 "a" "[\\\\-a]" 0
843C.UTF-8 "-" "[\\\\-a]" NOMATCH
844C.UTF-8 "\\" "[\\]-a]" NOMATCH
845C.UTF-8 "_" "[\\]-a]" 0
846C.UTF-8 "a" "[\\]-a]" 0
847C.UTF-8 "]" "[\\]-a]" 0
848C.UTF-8 "-" "[\\]-a]" NOMATCH
849C.UTF-8 "\\" "[!\\\\-a]" NOMATCH
850C.UTF-8 "_" "[!\\\\-a]" NOMATCH
851C.UTF-8 "a" "[!\\\\-a]" NOMATCH
852C.UTF-8 "-" "[!\\\\-a]" 0
853C.UTF-8 "!" "[\\!-]" 0
854C.UTF-8 "-" "[\\!-]" 0
855C.UTF-8 "\\" "[\\!-]" NOMATCH
856C.UTF-8 "Z" "[Z-\\\\]" 0
857C.UTF-8 "[" "[Z-\\\\]" 0
858C.UTF-8 "\\" "[Z-\\\\]" 0
859C.UTF-8 "-" "[Z-\\\\]" NOMATCH
860C.UTF-8 "Z" "[Z-\\]]" 0
861C.UTF-8 "[" "[Z-\\]]" 0
862C.UTF-8 "\\" "[Z-\\]]" 0
863C.UTF-8 "]" "[Z-\\]]" 0
864C.UTF-8 "-" "[Z-\\]]" NOMATCH
865
ab9afc21
UD
866# Following are tests outside the scope of IEEE 2003.2 since they are using
867# locales other than the C locale. The main focus of the tests is on the
868# handling of ranges and the recognition of character (vs bytes).
869de_DE.ISO-8859-1 "a" "[a-z]" 0
870de_DE.ISO-8859-1 "z" "[a-z]" 0
69623c0d
DD
871de_DE.ISO-8859-1 "\344" "[a-z]" 0
872de_DE.ISO-8859-1 "\366" "[a-z]" 0
873de_DE.ISO-8859-1 "\374" "[a-z]" 0
7cd7d36f 874de_DE.ISO-8859-1 "A" "[a-z]" NOMATCH
ab9afc21 875de_DE.ISO-8859-1 "Z" "[a-z]" NOMATCH
69623c0d
DD
876de_DE.ISO-8859-1 "\304" "[a-z]" NOMATCH
877de_DE.ISO-8859-1 "\326" "[a-z]" NOMATCH
878de_DE.ISO-8859-1 "\334" "[a-z]" NOMATCH
ab9afc21 879de_DE.ISO-8859-1 "a" "[A-Z]" NOMATCH
7cd7d36f 880de_DE.ISO-8859-1 "z" "[A-Z]" NOMATCH
69623c0d
DD
881de_DE.ISO-8859-1 "\344" "[A-Z]" NOMATCH
882de_DE.ISO-8859-1 "\366" "[A-Z]" NOMATCH
883de_DE.ISO-8859-1 "\374" "[A-Z]" NOMATCH
ab9afc21
UD
884de_DE.ISO-8859-1 "A" "[A-Z]" 0
885de_DE.ISO-8859-1 "Z" "[A-Z]" 0
69623c0d
DD
886de_DE.ISO-8859-1 "\304" "[A-Z]" 0
887de_DE.ISO-8859-1 "\326" "[A-Z]" 0
888de_DE.ISO-8859-1 "\334" "[A-Z]" 0
ab9afc21
UD
889de_DE.ISO-8859-1 "a" "[[:lower:]]" 0
890de_DE.ISO-8859-1 "z" "[[:lower:]]" 0
69623c0d
DD
891de_DE.ISO-8859-1 "\344" "[[:lower:]]" 0
892de_DE.ISO-8859-1 "\366" "[[:lower:]]" 0
893de_DE.ISO-8859-1 "\374" "[[:lower:]]" 0
ab9afc21
UD
894de_DE.ISO-8859-1 "A" "[[:lower:]]" NOMATCH
895de_DE.ISO-8859-1 "Z" "[[:lower:]]" NOMATCH
69623c0d
DD
896de_DE.ISO-8859-1 "\304" "[[:lower:]]" NOMATCH
897de_DE.ISO-8859-1 "\326" "[[:lower:]]" NOMATCH
898de_DE.ISO-8859-1 "\334" "[[:lower:]]" NOMATCH
ab9afc21
UD
899de_DE.ISO-8859-1 "a" "[[:upper:]]" NOMATCH
900de_DE.ISO-8859-1 "z" "[[:upper:]]" NOMATCH
69623c0d
DD
901de_DE.ISO-8859-1 "\344" "[[:upper:]]" NOMATCH
902de_DE.ISO-8859-1 "\366" "[[:upper:]]" NOMATCH
903de_DE.ISO-8859-1 "\374" "[[:upper:]]" NOMATCH
ab9afc21
UD
904de_DE.ISO-8859-1 "A" "[[:upper:]]" 0
905de_DE.ISO-8859-1 "Z" "[[:upper:]]" 0
69623c0d
DD
906de_DE.ISO-8859-1 "\304" "[[:upper:]]" 0
907de_DE.ISO-8859-1 "\326" "[[:upper:]]" 0
908de_DE.ISO-8859-1 "\334" "[[:upper:]]" 0
ab9afc21
UD
909de_DE.ISO-8859-1 "a" "[[:alpha:]]" 0
910de_DE.ISO-8859-1 "z" "[[:alpha:]]" 0
69623c0d
DD
911de_DE.ISO-8859-1 "\344" "[[:alpha:]]" 0
912de_DE.ISO-8859-1 "\366" "[[:alpha:]]" 0
913de_DE.ISO-8859-1 "\374" "[[:alpha:]]" 0
ab9afc21
UD
914de_DE.ISO-8859-1 "A" "[[:alpha:]]" 0
915de_DE.ISO-8859-1 "Z" "[[:alpha:]]" 0
69623c0d
DD
916de_DE.ISO-8859-1 "\304" "[[:alpha:]]" 0
917de_DE.ISO-8859-1 "\326" "[[:alpha:]]" 0
918de_DE.ISO-8859-1 "\334" "[[:alpha:]]" 0
ecce00a9
UD
919
920de_DE.ISO-8859-1 "a" "[[=a=]b]" 0
69623c0d
DD
921de_DE.ISO-8859-1 "\342" "[[=a=]b]" 0
922de_DE.ISO-8859-1 "\340" "[[=a=]b]" 0
923de_DE.ISO-8859-1 "\341" "[[=a=]b]" 0
924de_DE.ISO-8859-1 "\344" "[[=a=]b]" 0
ecce00a9
UD
925de_DE.ISO-8859-1 "b" "[[=a=]b]" 0
926de_DE.ISO-8859-1 "c" "[[=a=]b]" NOMATCH
69623c0d
DD
927de_DE.ISO-8859-1 "a" "[[=\342=]b]" 0
928de_DE.ISO-8859-1 "\342" "[[=\342=]b]" 0
929de_DE.ISO-8859-1 "\340" "[[=\342=]b]" 0
930de_DE.ISO-8859-1 "\341" "[[=\342=]b]" 0
931de_DE.ISO-8859-1 "\344" "[[=\342=]b]" 0
932de_DE.ISO-8859-1 "b" "[[=\342=]b]" 0
933de_DE.ISO-8859-1 "c" "[[=\342=]b]" NOMATCH
934de_DE.ISO-8859-1 "a" "[[=\340=]b]" 0
935de_DE.ISO-8859-1 "\342" "[[=\340=]b]" 0
936de_DE.ISO-8859-1 "\340" "[[=\340=]b]" 0
937de_DE.ISO-8859-1 "\341" "[[=\340=]b]" 0
938de_DE.ISO-8859-1 "\344" "[[=\340=]b]" 0
939de_DE.ISO-8859-1 "b" "[[=\340=]b]" 0
940de_DE.ISO-8859-1 "c" "[[=\340=]b]" NOMATCH
941de_DE.ISO-8859-1 "a" "[[=\341=]b]" 0
942de_DE.ISO-8859-1 "\342" "[[=\341=]b]" 0
943de_DE.ISO-8859-1 "\340" "[[=\341=]b]" 0
944de_DE.ISO-8859-1 "\341" "[[=\341=]b]" 0
945de_DE.ISO-8859-1 "\344" "[[=\341=]b]" 0
946de_DE.ISO-8859-1 "b" "[[=\341=]b]" 0
947de_DE.ISO-8859-1 "c" "[[=\341=]b]" NOMATCH
948de_DE.ISO-8859-1 "a" "[[=\344=]b]" 0
949de_DE.ISO-8859-1 "\342" "[[=\344=]b]" 0
950de_DE.ISO-8859-1 "\340" "[[=\344=]b]" 0
951de_DE.ISO-8859-1 "\341" "[[=\344=]b]" 0
952de_DE.ISO-8859-1 "\344" "[[=\344=]b]" 0
953de_DE.ISO-8859-1 "b" "[[=\344=]b]" 0
954de_DE.ISO-8859-1 "c" "[[=\344=]b]" NOMATCH
a4607c1f 955
5d916713
UD
956de_DE.ISO-8859-1 "aa" "[[.a.]]a" 0
957de_DE.ISO-8859-1 "ba" "[[.a.]]a" NOMATCH
958
f798bf32
UD
959
960# And with a multibyte character set.
7cd7d36f
CD
961en_US.UTF-8 "a" "[a-z]" 0
962en_US.UTF-8 "z" "[a-z]" 0
963en_US.UTF-8 "A" "[a-z]" NOMATCH
964en_US.UTF-8 "Z" "[a-z]" NOMATCH
965en_US.UTF-8 "a" "[A-Z]" NOMATCH
966en_US.UTF-8 "z" "[A-Z]" NOMATCH
967en_US.UTF-8 "A" "[A-Z]" 0
968en_US.UTF-8 "Z" "[A-Z]" 0
969en_US.UTF-8 "0" "[0-9]" 0
970en_US.UTF-8 "9" "[0-9]" 0
f798bf32
UD
971de_DE.UTF-8 "a" "[a-z]" 0
972de_DE.UTF-8 "z" "[a-z]" 0
973de_DE.UTF-8 "ä" "[a-z]" 0
974de_DE.UTF-8 "ö" "[a-z]" 0
975de_DE.UTF-8 "ü" "[a-z]" 0
7cd7d36f 976de_DE.UTF-8 "A" "[a-z]" NOMATCH
f798bf32 977de_DE.UTF-8 "Z" "[a-z]" NOMATCH
7cd7d36f
CD
978de_DE.UTF-8 "Ä" "[a-z]" NOMATCH
979de_DE.UTF-8 "Ö" "[a-z]" NOMATCH
980de_DE.UTF-8 "Ü" "[a-z]" NOMATCH
f798bf32 981de_DE.UTF-8 "a" "[A-Z]" NOMATCH
7cd7d36f
CD
982de_DE.UTF-8 "z" "[A-Z]" NOMATCH
983de_DE.UTF-8 "ä" "[A-Z]" NOMATCH
984de_DE.UTF-8 "ö" "[A-Z]" NOMATCH
985de_DE.UTF-8 "ü" "[A-Z]" NOMATCH
f798bf32
UD
986de_DE.UTF-8 "A" "[A-Z]" 0
987de_DE.UTF-8 "Z" "[A-Z]" 0
988de_DE.UTF-8 "Ä" "[A-Z]" 0
989de_DE.UTF-8 "Ö" "[A-Z]" 0
990de_DE.UTF-8 "Ü" "[A-Z]" 0
991de_DE.UTF-8 "a" "[[:lower:]]" 0
992de_DE.UTF-8 "z" "[[:lower:]]" 0
993de_DE.UTF-8 "ä" "[[:lower:]]" 0
994de_DE.UTF-8 "ö" "[[:lower:]]" 0
995de_DE.UTF-8 "ü" "[[:lower:]]" 0
996de_DE.UTF-8 "A" "[[:lower:]]" NOMATCH
997de_DE.UTF-8 "Z" "[[:lower:]]" NOMATCH
998de_DE.UTF-8 "Ä" "[[:lower:]]" NOMATCH
999de_DE.UTF-8 "Ö" "[[:lower:]]" NOMATCH
1000de_DE.UTF-8 "Ü" "[[:lower:]]" NOMATCH
1001de_DE.UTF-8 "a" "[[:upper:]]" NOMATCH
1002de_DE.UTF-8 "z" "[[:upper:]]" NOMATCH
1003de_DE.UTF-8 "ä" "[[:upper:]]" NOMATCH
1004de_DE.UTF-8 "ö" "[[:upper:]]" NOMATCH
1005de_DE.UTF-8 "ü" "[[:upper:]]" NOMATCH
1006de_DE.UTF-8 "A" "[[:upper:]]" 0
1007de_DE.UTF-8 "Z" "[[:upper:]]" 0
1008de_DE.UTF-8 "Ä" "[[:upper:]]" 0
1009de_DE.UTF-8 "Ö" "[[:upper:]]" 0
1010de_DE.UTF-8 "Ü" "[[:upper:]]" 0
1011de_DE.UTF-8 "a" "[[:alpha:]]" 0
1012de_DE.UTF-8 "z" "[[:alpha:]]" 0
1013de_DE.UTF-8 "ä" "[[:alpha:]]" 0
1014de_DE.UTF-8 "ö" "[[:alpha:]]" 0
1015de_DE.UTF-8 "ü" "[[:alpha:]]" 0
1016de_DE.UTF-8 "A" "[[:alpha:]]" 0
1017de_DE.UTF-8 "Z" "[[:alpha:]]" 0
1018de_DE.UTF-8 "Ä" "[[:alpha:]]" 0
1019de_DE.UTF-8 "Ö" "[[:alpha:]]" 0
1020de_DE.UTF-8 "Ü" "[[:alpha:]]" 0
1021
1022de_DE.UTF-8 "a" "[[=a=]b]" 0
1023de_DE.UTF-8 "â" "[[=a=]b]" 0
1024de_DE.UTF-8 "à" "[[=a=]b]" 0
1025de_DE.UTF-8 "á" "[[=a=]b]" 0
1026de_DE.UTF-8 "ä" "[[=a=]b]" 0
1027de_DE.UTF-8 "b" "[[=a=]b]" 0
1028de_DE.UTF-8 "c" "[[=a=]b]" NOMATCH
1029de_DE.UTF-8 "a" "[[=â=]b]" 0
1030de_DE.UTF-8 "â" "[[=â=]b]" 0
1031de_DE.UTF-8 "à" "[[=â=]b]" 0
1032de_DE.UTF-8 "á" "[[=â=]b]" 0
1033de_DE.UTF-8 "ä" "[[=â=]b]" 0
1034de_DE.UTF-8 "b" "[[=â=]b]" 0
1035de_DE.UTF-8 "c" "[[=â=]b]" NOMATCH
1036de_DE.UTF-8 "a" "[[=à=]b]" 0
1037de_DE.UTF-8 "â" "[[=à=]b]" 0
1038de_DE.UTF-8 "à" "[[=à=]b]" 0
1039de_DE.UTF-8 "á" "[[=à=]b]" 0
1040de_DE.UTF-8 "ä" "[[=à=]b]" 0
1041de_DE.UTF-8 "b" "[[=à=]b]" 0
1042de_DE.UTF-8 "c" "[[=à=]b]" NOMATCH
1043de_DE.UTF-8 "a" "[[=á=]b]" 0
1044de_DE.UTF-8 "â" "[[=á=]b]" 0
1045de_DE.UTF-8 "à" "[[=á=]b]" 0
1046de_DE.UTF-8 "á" "[[=á=]b]" 0
1047de_DE.UTF-8 "ä" "[[=á=]b]" 0
1048de_DE.UTF-8 "b" "[[=á=]b]" 0
1049de_DE.UTF-8 "c" "[[=á=]b]" NOMATCH
1050de_DE.UTF-8 "a" "[[=ä=]b]" 0
1051de_DE.UTF-8 "â" "[[=ä=]b]" 0
1052de_DE.UTF-8 "à" "[[=ä=]b]" 0
1053de_DE.UTF-8 "á" "[[=ä=]b]" 0
1054de_DE.UTF-8 "ä" "[[=ä=]b]" 0
1055de_DE.UTF-8 "b" "[[=ä=]b]" 0
1056de_DE.UTF-8 "c" "[[=ä=]b]" NOMATCH
1057
5d916713
UD
1058de_DE.UTF-8 "aa" "[[.a.]]a" 0
1059de_DE.UTF-8 "ba" "[[.a.]]a" NOMATCH
1060
f798bf32 1061
a4607c1f
UD
1062# Test of GNU extensions.
1063C "x" "x" 0 PATHNAME|LEADING_DIR
1064C "x/y" "x" 0 PATHNAME|LEADING_DIR
1065C "x/y/z" "x" 0 PATHNAME|LEADING_DIR
1066C "x" "*" 0 PATHNAME|LEADING_DIR
1067C "x/y" "*" 0 PATHNAME|LEADING_DIR
1068C "x/y/z" "*" 0 PATHNAME|LEADING_DIR
1069C "x" "*x" 0 PATHNAME|LEADING_DIR
a79328c7 1070
a4607c1f
UD
1071C "x/y" "*x" 0 PATHNAME|LEADING_DIR
1072C "x/y/z" "*x" 0 PATHNAME|LEADING_DIR
1073C "x" "x*" 0 PATHNAME|LEADING_DIR
1074C "x/y" "x*" 0 PATHNAME|LEADING_DIR
1075C "x/y/z" "x*" 0 PATHNAME|LEADING_DIR
1076C "x" "a" NOMATCH PATHNAME|LEADING_DIR
1077C "x/y" "a" NOMATCH PATHNAME|LEADING_DIR
1078C "x/y/z" "a" NOMATCH PATHNAME|LEADING_DIR
1079C "x" "x/y" NOMATCH PATHNAME|LEADING_DIR
1080C "x/y" "x/y" 0 PATHNAME|LEADING_DIR
1081C "x/y/z" "x/y" 0 PATHNAME|LEADING_DIR
1082C "x" "x?y" NOMATCH PATHNAME|LEADING_DIR
1083C "x/y" "x?y" NOMATCH PATHNAME|LEADING_DIR
1084C "x/y/z" "x?y" NOMATCH PATHNAME|LEADING_DIR
955994e1 1085
466f2be6
CD
1086# Duplicate the "Test of GNU extensions." tests but for C.UTF-8.
1087C.UTF-8 "x" "x" 0 PATHNAME|LEADING_DIR
1088C.UTF-8 "x/y" "x" 0 PATHNAME|LEADING_DIR
1089C.UTF-8 "x/y/z" "x" 0 PATHNAME|LEADING_DIR
1090C.UTF-8 "x" "*" 0 PATHNAME|LEADING_DIR
1091C.UTF-8 "x/y" "*" 0 PATHNAME|LEADING_DIR
1092C.UTF-8 "x/y/z" "*" 0 PATHNAME|LEADING_DIR
1093C.UTF-8 "x" "*x" 0 PATHNAME|LEADING_DIR
1094
1095C.UTF-8 "x/y" "*x" 0 PATHNAME|LEADING_DIR
1096C.UTF-8 "x/y/z" "*x" 0 PATHNAME|LEADING_DIR
1097C.UTF-8 "x" "x*" 0 PATHNAME|LEADING_DIR
1098C.UTF-8 "x/y" "x*" 0 PATHNAME|LEADING_DIR
1099C.UTF-8 "x/y/z" "x*" 0 PATHNAME|LEADING_DIR
1100C.UTF-8 "x" "a" NOMATCH PATHNAME|LEADING_DIR
1101C.UTF-8 "x/y" "a" NOMATCH PATHNAME|LEADING_DIR
1102C.UTF-8 "x/y/z" "a" NOMATCH PATHNAME|LEADING_DIR
1103C.UTF-8 "x" "x/y" NOMATCH PATHNAME|LEADING_DIR
1104C.UTF-8 "x/y" "x/y" 0 PATHNAME|LEADING_DIR
1105C.UTF-8 "x/y/z" "x/y" 0 PATHNAME|LEADING_DIR
1106C.UTF-8 "x" "x?y" NOMATCH PATHNAME|LEADING_DIR
1107C.UTF-8 "x/y" "x?y" NOMATCH PATHNAME|LEADING_DIR
1108C.UTF-8 "x/y/z" "x?y" NOMATCH PATHNAME|LEADING_DIR
1109
1110# Bug 14185
1111en_US.UTF-8 "\366.csv" "*.csv" 0
1112
955994e1
UD
1113# ksh style matching.
1114C "abcd" "?@(a|b)*@(c)d" 0 EXTMATCH
1115C "/dev/udp/129.22.8.102/45" "/dev/@(tcp|udp)/*/*" 0 PATHNAME|EXTMATCH
1116C "12" "[1-9]*([0-9])" 0 EXTMATCH
1117C "12abc" "[1-9]*([0-9])" NOMATCH EXTMATCH
1118C "1" "[1-9]*([0-9])" 0 EXTMATCH
1119C "07" "+([0-7])" 0 EXTMATCH
1120C "0377" "+([0-7])" 0 EXTMATCH
1121C "09" "+([0-7])" NOMATCH EXTMATCH
1122C "paragraph" "para@(chute|graph)" 0 EXTMATCH
1123C "paramour" "para@(chute|graph)" NOMATCH EXTMATCH
1124C "para991" "para?([345]|99)1" 0 EXTMATCH
1125C "para381" "para?([345]|99)1" NOMATCH EXTMATCH
1126C "paragraph" "para*([0-9])" NOMATCH EXTMATCH
1127C "para" "para*([0-9])" 0 EXTMATCH
1128C "para13829383746592" "para*([0-9])" 0 EXTMATCH
1129C "paragraph" "para+([0-9])" NOMATCH EXTMATCH
1130C "para" "para+([0-9])" NOMATCH EXTMATCH
1131C "para987346523" "para+([0-9])" 0 EXTMATCH
1132C "paragraph" "para!(*.[0-9])" 0 EXTMATCH
1133C "para.38" "para!(*.[0-9])" 0 EXTMATCH
1134C "para.graph" "para!(*.[0-9])" 0 EXTMATCH
1135C "para39" "para!(*.[0-9])" 0 EXTMATCH
1136C "" "*(0|1|3|5|7|9)" 0 EXTMATCH
1137C "137577991" "*(0|1|3|5|7|9)" 0 EXTMATCH
1138C "2468" "*(0|1|3|5|7|9)" NOMATCH EXTMATCH
1139C "1358" "*(0|1|3|5|7|9)" NOMATCH EXTMATCH
1140C "file.c" "*.c?(c)" 0 EXTMATCH
1141C "file.C" "*.c?(c)" NOMATCH EXTMATCH
1142C "file.cc" "*.c?(c)" 0 EXTMATCH
1143C "file.ccc" "*.c?(c)" NOMATCH EXTMATCH
1144C "parse.y" "!(*.c|*.h|Makefile.in|config*|README)" 0 EXTMATCH
1145C "shell.c" "!(*.c|*.h|Makefile.in|config*|README)" NOMATCH EXTMATCH
1146C "Makefile" "!(*.c|*.h|Makefile.in|config*|README)" 0 EXTMATCH
1147C "VMS.FILE;1" "*\;[1-9]*([0-9])" 0 EXTMATCH
1148C "VMS.FILE;0" "*\;[1-9]*([0-9])" NOMATCH EXTMATCH
1149C "VMS.FILE;" "*\;[1-9]*([0-9])" NOMATCH EXTMATCH
1150C "VMS.FILE;139" "*\;[1-9]*([0-9])" 0 EXTMATCH
1151C "VMS.FILE;1N" "*\;[1-9]*([0-9])" NOMATCH EXTMATCH
1152C "abcfefg" "ab**(e|f)" 0 EXTMATCH
1153C "abcfefg" "ab**(e|f)g" 0 EXTMATCH
1154C "ab" "ab*+(e|f)" NOMATCH EXTMATCH
1155C "abef" "ab***ef" 0 EXTMATCH
1156C "abef" "ab**" 0 EXTMATCH
1157C "fofo" "*(f*(o))" 0 EXTMATCH
1158C "ffo" "*(f*(o))" 0 EXTMATCH
1159C "foooofo" "*(f*(o))" 0 EXTMATCH
1160C "foooofof" "*(f*(o))" 0 EXTMATCH
1161C "fooofoofofooo" "*(f*(o))" 0 EXTMATCH
1162C "foooofof" "*(f+(o))" NOMATCH EXTMATCH
1163C "xfoooofof" "*(f*(o))" NOMATCH EXTMATCH
1164C "foooofofx" "*(f*(o))" NOMATCH EXTMATCH
1165C "ofxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
1166C "ofooofoofofooo" "*(f*(o))" NOMATCH EXTMATCH
1167C "foooxfooxfoxfooox" "*(f*(o)x)" 0 EXTMATCH
1168C "foooxfooxofoxfooox" "*(f*(o)x)" NOMATCH EXTMATCH
1169C "foooxfooxfxfooox" "*(f*(o)x)" 0 EXTMATCH
1170C "ofxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
1171C "ofoooxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
1172C "ofoooxoofxoofoooxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
1173C "ofoooxoofxoofoooxoofxoo" "*(*(of*(o)x)o)" 0 EXTMATCH
1174C "ofoooxoofxoofoooxoofxofo" "*(*(of*(o)x)o)" NOMATCH EXTMATCH
1175C "ofoooxoofxoofoooxoofxooofxofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
1176C "aac" "*(@(a))a@(c)" 0 EXTMATCH
1177C "ac" "*(@(a))a@(c)" 0 EXTMATCH
1178C "c" "*(@(a))a@(c)" NOMATCH EXTMATCH
1179C "aaac" "*(@(a))a@(c)" 0 EXTMATCH
1180C "baaac" "*(@(a))a@(c)" NOMATCH EXTMATCH
1181C "abcd" "?@(a|b)*@(c)d" 0 EXTMATCH
1182C "abcd" "@(ab|a*@(b))*(c)d" 0 EXTMATCH
1183C "acd" "@(ab|a*(b))*(c)d" 0 EXTMATCH
1184C "abbcd" "@(ab|a*(b))*(c)d" 0 EXTMATCH
1185C "effgz" "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1186C "efgz" "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1187C "egz" "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1188C "egzefffgzbcdij" "*(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1189C "egz" "@(b+(c)d|e+(f)g?|?(h)i@(j|k))" NOMATCH EXTMATCH
1190C "ofoofo" "*(of+(o))" 0 EXTMATCH
1191C "oxfoxoxfox" "*(oxf+(ox))" 0 EXTMATCH
1192C "oxfoxfox" "*(oxf+(ox))" NOMATCH EXTMATCH
1193C "ofoofo" "*(of+(o)|f)" 0 EXTMATCH
1194C "foofoofo" "@(foo|f|fo)*(f|of+(o))" 0 EXTMATCH
1195C "oofooofo" "*(of|oof+(o))" 0 EXTMATCH
1196C "fffooofoooooffoofffooofff" "*(*(f)*(o))" 0 EXTMATCH
1197C "fofoofoofofoo" "*(fo|foo)" 0 EXTMATCH
1198C "foo" "!(x)" 0 EXTMATCH
1199C "foo" "!(x)*" 0 EXTMATCH
1200C "foo" "!(foo)" NOMATCH EXTMATCH
1201C "foo" "!(foo)*" 0 EXTMATCH
1202C "foobar" "!(foo)" 0 EXTMATCH
1203C "foobar" "!(foo)*" 0 EXTMATCH
1204C "moo.cow" "!(*.*).!(*.*)" 0 EXTMATCH
1205C "mad.moo.cow" "!(*.*).!(*.*)" NOMATCH EXTMATCH
1206C "mucca.pazza" "mu!(*(c))?.pa!(*(z))?" NOMATCH EXTMATCH
1207C "fff" "!(f)" 0 EXTMATCH
1208C "fff" "*(!(f))" 0 EXTMATCH
1209C "fff" "+(!(f))" 0 EXTMATCH
1210C "ooo" "!(f)" 0 EXTMATCH
1211C "ooo" "*(!(f))" 0 EXTMATCH
1212C "ooo" "+(!(f))" 0 EXTMATCH
1213C "foo" "!(f)" 0 EXTMATCH
1214C "foo" "*(!(f))" 0 EXTMATCH
1215C "foo" "+(!(f))" 0 EXTMATCH
1216C "f" "!(f)" NOMATCH EXTMATCH
1217C "f" "*(!(f))" NOMATCH EXTMATCH
1218C "f" "+(!(f))" NOMATCH EXTMATCH
1219C "foot" "@(!(z*)|*x)" 0 EXTMATCH
1220C "zoot" "@(!(z*)|*x)" NOMATCH EXTMATCH
1221C "foox" "@(!(z*)|*x)" 0 EXTMATCH
1222C "zoox" "@(!(z*)|*x)" 0 EXTMATCH
70dfcd9b 1223C "foo" "*(!(foo))" 0 EXTMATCH
955994e1
UD
1224C "foob" "!(foo)b*" NOMATCH EXTMATCH
1225C "foobb" "!(foo)b*" 0 EXTMATCH
1226C "[" "*([a[])" 0 EXTMATCH
1227C "]" "*([]a[])" 0 EXTMATCH
1228C "a" "*([]a[])" 0 EXTMATCH
1229C "b" "*([!]a[])" 0 EXTMATCH
1230C "[" "*([!]a[]|[[])" 0 EXTMATCH
1231C "]" "*([!]a[]|[]])" 0 EXTMATCH
1232C "[" "!([!]a[])" 0 EXTMATCH
1233C "]" "!([!]a[])" 0 EXTMATCH
1234C ")" "*([)])" 0 EXTMATCH
1235C "*" "*([*(])" 0 EXTMATCH
228293b5 1236C "abcd" "*!(|a)cd" 0 EXTMATCH
821a6bb4 1237C "ab/.a" "+([abc])/*" NOMATCH EXTMATCH|PATHNAME|PERIOD
228293b5
UD
1238C "" "" 0
1239C "" "" 0 EXTMATCH
1240C "" "*([abc])" 0 EXTMATCH
1241C "" "?([abc])" 0 EXTMATCH
466f2be6
CD
1242
1243# Duplicate the "ksh style matching." for C.UTF-8.
1244C.UTF-8 "abcd" "?@(a|b)*@(c)d" 0 EXTMATCH
1245C.UTF-8 "/dev/udp/129.22.8.102/45" "/dev/@(tcp|udp)/*/*" 0 PATHNAME|EXTMATCH
1246C.UTF-8 "12" "[1-9]*([0-9])" 0 EXTMATCH
1247C.UTF-8 "12abc" "[1-9]*([0-9])" NOMATCH EXTMATCH
1248C.UTF-8 "1" "[1-9]*([0-9])" 0 EXTMATCH
1249C.UTF-8 "07" "+([0-7])" 0 EXTMATCH
1250C.UTF-8 "0377" "+([0-7])" 0 EXTMATCH
1251C.UTF-8 "09" "+([0-7])" NOMATCH EXTMATCH
1252C.UTF-8 "paragraph" "para@(chute|graph)" 0 EXTMATCH
1253C.UTF-8 "paramour" "para@(chute|graph)" NOMATCH EXTMATCH
1254C.UTF-8 "para991" "para?([345]|99)1" 0 EXTMATCH
1255C.UTF-8 "para381" "para?([345]|99)1" NOMATCH EXTMATCH
1256C.UTF-8 "paragraph" "para*([0-9])" NOMATCH EXTMATCH
1257C.UTF-8 "para" "para*([0-9])" 0 EXTMATCH
1258C.UTF-8 "para13829383746592" "para*([0-9])" 0 EXTMATCH
1259C.UTF-8 "paragraph" "para+([0-9])" NOMATCH EXTMATCH
1260C.UTF-8 "para" "para+([0-9])" NOMATCH EXTMATCH
1261C.UTF-8 "para987346523" "para+([0-9])" 0 EXTMATCH
1262C.UTF-8 "paragraph" "para!(*.[0-9])" 0 EXTMATCH
1263C.UTF-8 "para.38" "para!(*.[0-9])" 0 EXTMATCH
1264C.UTF-8 "para.graph" "para!(*.[0-9])" 0 EXTMATCH
1265C.UTF-8 "para39" "para!(*.[0-9])" 0 EXTMATCH
1266C.UTF-8 "" "*(0|1|3|5|7|9)" 0 EXTMATCH
1267C.UTF-8 "137577991" "*(0|1|3|5|7|9)" 0 EXTMATCH
1268C.UTF-8 "2468" "*(0|1|3|5|7|9)" NOMATCH EXTMATCH
1269C.UTF-8 "1358" "*(0|1|3|5|7|9)" NOMATCH EXTMATCH
1270C.UTF-8 "file.c" "*.c?(c)" 0 EXTMATCH
1271C.UTF-8 "file.C" "*.c?(c)" NOMATCH EXTMATCH
1272C.UTF-8 "file.cc" "*.c?(c)" 0 EXTMATCH
1273C.UTF-8 "file.ccc" "*.c?(c)" NOMATCH EXTMATCH
1274C.UTF-8 "parse.y" "!(*.c|*.h|Makefile.in|config*|README)" 0 EXTMATCH
1275C.UTF-8 "shell.c" "!(*.c|*.h|Makefile.in|config*|README)" NOMATCH EXTMATCH
1276C.UTF-8 "Makefile" "!(*.c|*.h|Makefile.in|config*|README)" 0 EXTMATCH
1277C.UTF-8 "VMS.FILE;1" "*\;[1-9]*([0-9])" 0 EXTMATCH
1278C.UTF-8 "VMS.FILE;0" "*\;[1-9]*([0-9])" NOMATCH EXTMATCH
1279C.UTF-8 "VMS.FILE;" "*\;[1-9]*([0-9])" NOMATCH EXTMATCH
1280C.UTF-8 "VMS.FILE;139" "*\;[1-9]*([0-9])" 0 EXTMATCH
1281C.UTF-8 "VMS.FILE;1N" "*\;[1-9]*([0-9])" NOMATCH EXTMATCH
1282C.UTF-8 "abcfefg" "ab**(e|f)" 0 EXTMATCH
1283C.UTF-8 "abcfefg" "ab**(e|f)g" 0 EXTMATCH
1284C.UTF-8 "ab" "ab*+(e|f)" NOMATCH EXTMATCH
1285C.UTF-8 "abef" "ab***ef" 0 EXTMATCH
1286C.UTF-8 "abef" "ab**" 0 EXTMATCH
1287C.UTF-8 "fofo" "*(f*(o))" 0 EXTMATCH
1288C.UTF-8 "ffo" "*(f*(o))" 0 EXTMATCH
1289C.UTF-8 "foooofo" "*(f*(o))" 0 EXTMATCH
1290C.UTF-8 "foooofof" "*(f*(o))" 0 EXTMATCH
1291C.UTF-8 "fooofoofofooo" "*(f*(o))" 0 EXTMATCH
1292C.UTF-8 "foooofof" "*(f+(o))" NOMATCH EXTMATCH
1293C.UTF-8 "xfoooofof" "*(f*(o))" NOMATCH EXTMATCH
1294C.UTF-8 "foooofofx" "*(f*(o))" NOMATCH EXTMATCH
1295C.UTF-8 "ofxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
1296C.UTF-8 "ofooofoofofooo" "*(f*(o))" NOMATCH EXTMATCH
1297C.UTF-8 "foooxfooxfoxfooox" "*(f*(o)x)" 0 EXTMATCH
1298C.UTF-8 "foooxfooxofoxfooox" "*(f*(o)x)" NOMATCH EXTMATCH
1299C.UTF-8 "foooxfooxfxfooox" "*(f*(o)x)" 0 EXTMATCH
1300C.UTF-8 "ofxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
1301C.UTF-8 "ofoooxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
1302C.UTF-8 "ofoooxoofxoofoooxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
1303C.UTF-8 "ofoooxoofxoofoooxoofxoo" "*(*(of*(o)x)o)" 0 EXTMATCH
1304C.UTF-8 "ofoooxoofxoofoooxoofxofo" "*(*(of*(o)x)o)" NOMATCH EXTMATCH
1305C.UTF-8 "ofoooxoofxoofoooxoofxooofxofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
1306C.UTF-8 "aac" "*(@(a))a@(c)" 0 EXTMATCH
1307C.UTF-8 "ac" "*(@(a))a@(c)" 0 EXTMATCH
1308C.UTF-8 "c" "*(@(a))a@(c)" NOMATCH EXTMATCH
1309C.UTF-8 "aaac" "*(@(a))a@(c)" 0 EXTMATCH
1310C.UTF-8 "baaac" "*(@(a))a@(c)" NOMATCH EXTMATCH
1311C.UTF-8 "abcd" "?@(a|b)*@(c)d" 0 EXTMATCH
1312C.UTF-8 "abcd" "@(ab|a*@(b))*(c)d" 0 EXTMATCH
1313C.UTF-8 "acd" "@(ab|a*(b))*(c)d" 0 EXTMATCH
1314C.UTF-8 "abbcd" "@(ab|a*(b))*(c)d" 0 EXTMATCH
1315C.UTF-8 "effgz" "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1316C.UTF-8 "efgz" "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1317C.UTF-8 "egz" "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1318C.UTF-8 "egzefffgzbcdij" "*(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1319C.UTF-8 "egz" "@(b+(c)d|e+(f)g?|?(h)i@(j|k))" NOMATCH EXTMATCH
1320C.UTF-8 "ofoofo" "*(of+(o))" 0 EXTMATCH
1321C.UTF-8 "oxfoxoxfox" "*(oxf+(ox))" 0 EXTMATCH
1322C.UTF-8 "oxfoxfox" "*(oxf+(ox))" NOMATCH EXTMATCH
1323C.UTF-8 "ofoofo" "*(of+(o)|f)" 0 EXTMATCH
1324C.UTF-8 "foofoofo" "@(foo|f|fo)*(f|of+(o))" 0 EXTMATCH
1325C.UTF-8 "oofooofo" "*(of|oof+(o))" 0 EXTMATCH
1326C.UTF-8 "fffooofoooooffoofffooofff" "*(*(f)*(o))" 0 EXTMATCH
1327C.UTF-8 "fofoofoofofoo" "*(fo|foo)" 0 EXTMATCH
1328C.UTF-8 "foo" "!(x)" 0 EXTMATCH
1329C.UTF-8 "foo" "!(x)*" 0 EXTMATCH
1330C.UTF-8 "foo" "!(foo)" NOMATCH EXTMATCH
1331C.UTF-8 "foo" "!(foo)*" 0 EXTMATCH
1332C.UTF-8 "foobar" "!(foo)" 0 EXTMATCH
1333C.UTF-8 "foobar" "!(foo)*" 0 EXTMATCH
1334C.UTF-8 "moo.cow" "!(*.*).!(*.*)" 0 EXTMATCH
1335C.UTF-8 "mad.moo.cow" "!(*.*).!(*.*)" NOMATCH EXTMATCH
1336C.UTF-8 "mucca.pazza" "mu!(*(c))?.pa!(*(z))?" NOMATCH EXTMATCH
1337C.UTF-8 "fff" "!(f)" 0 EXTMATCH
1338C.UTF-8 "fff" "*(!(f))" 0 EXTMATCH
1339C.UTF-8 "fff" "+(!(f))" 0 EXTMATCH
1340C.UTF-8 "ooo" "!(f)" 0 EXTMATCH
1341C.UTF-8 "ooo" "*(!(f))" 0 EXTMATCH
1342C.UTF-8 "ooo" "+(!(f))" 0 EXTMATCH
1343C.UTF-8 "foo" "!(f)" 0 EXTMATCH
1344C.UTF-8 "foo" "*(!(f))" 0 EXTMATCH
1345C.UTF-8 "foo" "+(!(f))" 0 EXTMATCH
1346C.UTF-8 "f" "!(f)" NOMATCH EXTMATCH
1347C.UTF-8 "f" "*(!(f))" NOMATCH EXTMATCH
1348C.UTF-8 "f" "+(!(f))" NOMATCH EXTMATCH
1349C.UTF-8 "foot" "@(!(z*)|*x)" 0 EXTMATCH
1350C.UTF-8 "zoot" "@(!(z*)|*x)" NOMATCH EXTMATCH
1351C.UTF-8 "foox" "@(!(z*)|*x)" 0 EXTMATCH
1352C.UTF-8 "zoox" "@(!(z*)|*x)" 0 EXTMATCH
1353C.UTF-8 "foo" "*(!(foo))" 0 EXTMATCH
1354C.UTF-8 "foob" "!(foo)b*" NOMATCH EXTMATCH
1355C.UTF-8 "foobb" "!(foo)b*" 0 EXTMATCH
1356C.UTF-8 "[" "*([a[])" 0 EXTMATCH
1357C.UTF-8 "]" "*([]a[])" 0 EXTMATCH
1358C.UTF-8 "a" "*([]a[])" 0 EXTMATCH
1359C.UTF-8 "b" "*([!]a[])" 0 EXTMATCH
1360C.UTF-8 "[" "*([!]a[]|[[])" 0 EXTMATCH
1361C.UTF-8 "]" "*([!]a[]|[]])" 0 EXTMATCH
1362C.UTF-8 "[" "!([!]a[])" 0 EXTMATCH
1363C.UTF-8 "]" "!([!]a[])" 0 EXTMATCH
1364C.UTF-8 ")" "*([)])" 0 EXTMATCH
1365C.UTF-8 "*" "*([*(])" 0 EXTMATCH
1366C.UTF-8 "abcd" "*!(|a)cd" 0 EXTMATCH
1367C.UTF-8 "ab/.a" "+([abc])/*" NOMATCH EXTMATCH|PATHNAME|PERIOD
1368C.UTF-8 "" "" 0
1369C.UTF-8 "" "" 0 EXTMATCH
1370C.UTF-8 "" "*([abc])" 0 EXTMATCH
1371C.UTF-8 "" "?([abc])" 0 EXTMATCH