2 # Copyright (C) 2000-2023 Free Software Foundation, Inc.
3 # This file is part of the GNU C Library.
4 # Contributes by Ulrich Drepper <drepper@redhat.com>.
7 # The GNU C Library is free software; you can redistribute it and/or
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.
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
15 # Lesser General Public License for more details.
17 # You should have received a copy of the GNU Lesser General Public
18 # License along with the GNU C Library; if not, see
19 # <https://www.gnu.org/licenses/>.
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.
29 # http://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap09.html
31 # > RE Bracket Expression
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.
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.
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.
63 # This lead to several bugs and problems with user scripts that do not
64 # expect [a-z] to match uppercase characters.
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
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.
74 # With the deinterlacing commit ac3a3b4b0d561d776b60317d6a926050c8541655
75 # could be reverted to re-test the correct non-interleaved expectations.
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.
85 C "!#%+,-./01234567889" "!#%+,-./01234567889" 0
86 C ":;=@ABCDEFGHIJKLMNO" ":;=@ABCDEFGHIJKLMNO" 0
87 C "PQRSTUVWXYZ]abcdefg" "PQRSTUVWXYZ]abcdefg" 0
88 C "hijklmnopqrstuvwxyz" "hijklmnopqrstuvwxyz" 0
92 C "\"$&'()" "\\\"\\$\\&\\'\\(\\)" 0
93 C "*?[\\`|" "\\*\\?\\[\\\\\\`\\|" 0
97 C "?*[" "[?*[][?*[][?*[]" 0
103 C "aa/b" "?/b" NOMATCH
104 C "aa/b" "a?b" NOMATCH
105 C "a/bb" "a/?" NOMATCH
108 C "abc" "[abc]" NOMATCH
109 C "x" "[abc]" NOMATCH
116 C "xyz" "[!abc]" NOMATCH
118 C "a" "[!abc]" NOMATCH
122 C "abc]" "[][abc]" NOMATCH
123 C "[]abc" "[][]abc" NOMATCH
125 C "aa]" "[!]a]" NOMATCH
132 C "-" "[[.-.][.].]]" 0
133 C "-" "[[.].][.-.]]" 0
134 C "-" "[[.-.][=u=]]" 0
135 C "-" "[[.-.][:alpha:]]" 0
136 C "a" "[![.a.]]" NOMATCH
139 C "a" "[[.b.]]" NOMATCH
140 C "a" "[[.b.][.c.]]" NOMATCH
141 C "a" "[[.b.][=b=]]" NOMATCH
147 C "b" "[[=a=][=b=]]" 0
148 C "a" "[[=a=][=b=]]" 0
149 C "a" "[[=a=][.b.]]" 0
150 C "a" "[[=a=][:digit:]]" 0
153 C "=" "[[=a=]b]" NOMATCH
154 C "]" "[[=a=]b]" NOMATCH
155 C "a" "[[=b=][=c=]]" NOMATCH
156 C "a" "[[=b=][.].]]" NOMATCH
157 C "a" "[[=b=][:digit:]]" NOMATCH
160 C "a" "[[:alnum:]]" 0
161 C "a" "[![:alnum:]]" NOMATCH
162 C "-" "[[:alnum:]]" NOMATCH
163 C "a]a" "[[:alnum:]]a" NOMATCH
164 C "-" "[[:alnum:]-]" 0
165 C "aa" "[[:alnum:]]a" 0
166 C "-" "[![:alnum:]]" 0
167 C "]" "[!][:alnum:]]" NOMATCH
168 C "[" "[![:alnum:][]" NOMATCH
169 C "a" "[[:alnum:]]" 0
170 C "b" "[[:alnum:]]" 0
171 C "c" "[[:alnum:]]" 0
172 C "d" "[[:alnum:]]" 0
173 C "e" "[[:alnum:]]" 0
174 C "f" "[[:alnum:]]" 0
175 C "g" "[[:alnum:]]" 0
176 C "h" "[[:alnum:]]" 0
177 C "i" "[[:alnum:]]" 0
178 C "j" "[[:alnum:]]" 0
179 C "k" "[[:alnum:]]" 0
180 C "l" "[[:alnum:]]" 0
181 C "m" "[[:alnum:]]" 0
182 C "n" "[[:alnum:]]" 0
183 C "o" "[[:alnum:]]" 0
184 C "p" "[[:alnum:]]" 0
185 C "q" "[[:alnum:]]" 0
186 C "r" "[[:alnum:]]" 0
187 C "s" "[[:alnum:]]" 0
188 C "t" "[[:alnum:]]" 0
189 C "u" "[[:alnum:]]" 0
190 C "v" "[[:alnum:]]" 0
191 C "w" "[[:alnum:]]" 0
192 C "x" "[[:alnum:]]" 0
193 C "y" "[[:alnum:]]" 0
194 C "z" "[[:alnum:]]" 0
195 C "A" "[[:alnum:]]" 0
196 C "B" "[[:alnum:]]" 0
197 C "C" "[[:alnum:]]" 0
198 C "D" "[[:alnum:]]" 0
199 C "E" "[[:alnum:]]" 0
200 C "F" "[[:alnum:]]" 0
201 C "G" "[[:alnum:]]" 0
202 C "H" "[[:alnum:]]" 0
203 C "I" "[[:alnum:]]" 0
204 C "J" "[[:alnum:]]" 0
205 C "K" "[[:alnum:]]" 0
206 C "L" "[[:alnum:]]" 0
207 C "M" "[[:alnum:]]" 0
208 C "N" "[[:alnum:]]" 0
209 C "O" "[[:alnum:]]" 0
210 C "P" "[[:alnum:]]" 0
211 C "Q" "[[:alnum:]]" 0
212 C "R" "[[:alnum:]]" 0
213 C "S" "[[:alnum:]]" 0
214 C "T" "[[:alnum:]]" 0
215 C "U" "[[:alnum:]]" 0
216 C "V" "[[:alnum:]]" 0
217 C "W" "[[:alnum:]]" 0
218 C "X" "[[:alnum:]]" 0
219 C "Y" "[[:alnum:]]" 0
220 C "Z" "[[:alnum:]]" 0
221 C "0" "[[:alnum:]]" 0
222 C "1" "[[:alnum:]]" 0
223 C "2" "[[:alnum:]]" 0
224 C "3" "[[:alnum:]]" 0
225 C "4" "[[:alnum:]]" 0
226 C "5" "[[:alnum:]]" 0
227 C "6" "[[:alnum:]]" 0
228 C "7" "[[:alnum:]]" 0
229 C "8" "[[:alnum:]]" 0
230 C "9" "[[:alnum:]]" 0
231 C "!" "[[:alnum:]]" NOMATCH
232 C "#" "[[:alnum:]]" NOMATCH
233 C "%" "[[:alnum:]]" NOMATCH
234 C "+" "[[:alnum:]]" NOMATCH
235 C "," "[[:alnum:]]" NOMATCH
236 C "-" "[[:alnum:]]" NOMATCH
237 C "." "[[:alnum:]]" NOMATCH
238 C "/" "[[:alnum:]]" NOMATCH
239 C ":" "[[:alnum:]]" NOMATCH
240 C ";" "[[:alnum:]]" NOMATCH
241 C "=" "[[:alnum:]]" NOMATCH
242 C "@" "[[:alnum:]]" NOMATCH
243 C "[" "[[:alnum:]]" NOMATCH
244 C "\\" "[[:alnum:]]" NOMATCH
245 C "]" "[[:alnum:]]" NOMATCH
246 C "^" "[[:alnum:]]" NOMATCH
247 C "_" "[[:alnum:]]" NOMATCH
248 C "{" "[[:alnum:]]" NOMATCH
249 C "}" "[[:alnum:]]" NOMATCH
250 C "~" "[[:alnum:]]" NOMATCH
251 C "\"" "[[:alnum:]]" NOMATCH
252 C "$" "[[:alnum:]]" NOMATCH
253 C "&" "[[:alnum:]]" NOMATCH
254 C "'" "[[:alnum:]]" NOMATCH
255 C "(" "[[:alnum:]]" NOMATCH
256 C ")" "[[:alnum:]]" NOMATCH
257 C "*" "[[:alnum:]]" NOMATCH
258 C "?" "[[:alnum:]]" NOMATCH
259 C "`" "[[:alnum:]]" NOMATCH
260 C "|" "[[:alnum:]]" NOMATCH
261 C "<" "[[:alnum:]]" NOMATCH
262 C ">" "[[:alnum:]]" NOMATCH
263 C "\t" "[[:cntrl:]]" 0
264 C "t" "[[:cntrl:]]" NOMATCH
265 C "t" "[[:lower:]]" 0
266 C "\t" "[[:lower:]]" NOMATCH
267 C "T" "[[:lower:]]" NOMATCH
268 C "\t" "[[:space:]]" 0
269 C "t" "[[:space:]]" NOMATCH
270 C "t" "[[:alpha:]]" 0
271 C "\t" "[[:alpha:]]" NOMATCH
272 C "0" "[[:digit:]]" 0
273 C "\t" "[[:digit:]]" NOMATCH
274 C "t" "[[:digit:]]" NOMATCH
275 C "\t" "[[:print:]]" NOMATCH
276 C "t" "[[:print:]]" 0
277 C "T" "[[:upper:]]" 0
278 C "\t" "[[:upper:]]" NOMATCH
279 C "t" "[[:upper:]]" NOMATCH
280 C "\t" "[[:blank:]]" 0
281 C "t" "[[:blank:]]" NOMATCH
282 C "\t" "[[:graph:]]" NOMATCH
283 C "t" "[[:graph:]]" 0
284 C "." "[[:punct:]]" 0
285 C "t" "[[:punct:]]" NOMATCH
286 C "\t" "[[:punct:]]" NOMATCH
287 C "0" "[[:xdigit:]]" 0
288 C "\t" "[[:xdigit:]]" NOMATCH
289 C "a" "[[:xdigit:]]" 0
290 C "A" "[[:xdigit:]]" 0
291 C "t" "[[:xdigit:]]" NOMATCH
292 C "a" "[[alpha]]" NOMATCH
293 C "a" "[[alpha:]]" NOMATCH
295 C "a]" "[[alpha:]]" 0
296 C "a" "[[:alpha:][.b.]]" 0
297 C "a" "[[:alpha:][=b=]]" 0
298 C "a" "[[:alpha:][:digit:]]" 0
299 C "a" "[[:digit:][:alpha:]]" 0
305 C "a" "[b-c]" NOMATCH
306 C "d" "[b-c]" NOMATCH
307 C "B" "[a-c]" NOMATCH
308 C "b" "[A-C]" NOMATCH
310 C "as" "[a-ca-z]" NOMATCH
313 C "a" "[[.a.]-[.c.]]" 0
316 C "b" "[[.a.]-[.c.]]" 0
319 C "c" "[[.a.]-[.c.]]" 0
320 C "d" "[[.a.]-c]" NOMATCH
321 C "d" "[a-[.c.]]" NOMATCH
322 C "d" "[[.a.]-[.c.]]" NOMATCH
325 C "a" "[c-a]" NOMATCH
326 C "a" "[[.c.]-a]" NOMATCH
327 C "a" "[c-[.a.]]" NOMATCH
328 C "a" "[[.c.]-[.a.]]" NOMATCH
329 C "c" "[c-a]" NOMATCH
330 C "c" "[[.c.]-a]" NOMATCH
331 C "c" "[c-[.a.]]" NOMATCH
332 C "c" "[[.c.]-[.a.]]" NOMATCH
336 C "d" "[a-c0-9]" NOMATCH
337 C "B" "[a-c0-9]" NOMATCH
342 C "-" "[!-a]" NOMATCH
346 C "a:" "a[0-9-a]" NOMATCH
354 C "as" "[a-c][a-z]" 0
358 C "asd/sdf" "as*df" 0
361 C "asd/sdf" "as*dg" NOMATCH
363 C "asdf" "as*df?" NOMATCH
384 C "//" "//" 0 PATHNAME
385 C "/.a" "/*" 0 PATHNAME
386 C "/.a" "/?a" 0 PATHNAME
387 C "/.a" "/[!a-z]a" 0 PATHNAME
388 C "/.a/.b" "/*/?b" 0 PATHNAME
391 C "/" "?" NOMATCH PATHNAME
392 C "/" "*" NOMATCH PATHNAME
393 C "a/b" "a?b" NOMATCH PATHNAME
394 C "/.a/.b" "/*b" NOMATCH PATHNAME
403 C "/$" "\\/\\$" NOMATCH NOESCAPE
404 C "/\\$" "\\/\\$" NOMATCH NOESCAPE
405 C "\\/\\$" "\\/\\$" 0 NOESCAPE
408 C ".asd" ".*" 0 PERIOD
409 C "/.asd" "*" 0 PERIOD
410 C "/as/.df" "*/?*f" 0 PERIOD
411 C "..asd" ".[!a-z]*" 0 PERIOD
414 C ".asd" "*" NOMATCH PERIOD
415 C ".asd" "?asd" NOMATCH PERIOD
416 C ".asd" "[!a-z]*" NOMATCH PERIOD
419 C "/." "/." 0 PATHNAME|PERIOD
420 C "/.a./.b." "/.*/.*" 0 PATHNAME|PERIOD
421 C "/.a./.b." "/.??/.??" 0 PATHNAME|PERIOD
424 C "/." "*" NOMATCH PATHNAME|PERIOD
425 C "/." "/*" NOMATCH PATHNAME|PERIOD
426 C "/." "/?" NOMATCH PATHNAME|PERIOD
427 C "/." "/[!a-z]" NOMATCH PATHNAME|PERIOD
428 C "/a./.b." "/*/*" NOMATCH PATHNAME|PERIOD
429 C "/a./.b." "/??/???" NOMATCH PATHNAME|PERIOD
431 # Some home-grown tests.
432 C "foobar" "foo*[abc]z" NOMATCH
433 C "foobaz" "foo*[abc][xyz]" 0
434 C "foobaz" "foo?*[abc][xyz]" 0
435 C "foobaz" "foo?*[abc][x/yz]" 0
436 C "foobaz" "foo?*[abc]/[xyz]" NOMATCH PATHNAME
437 C "a" "a/" NOMATCH PATHNAME
438 C "a/" "a" NOMATCH PATHNAME
439 C "//a" "/a" NOMATCH PATHNAME
440 C "/a" "//a" NOMATCH PATHNAME
443 C "cz" "[ab-]z" NOMATCH
447 C "cz" "[-ab]z" NOMATCH
452 C "-" "[\\\\-a]" NOMATCH
453 C "\\" "[\\]-a]" NOMATCH
457 C "-" "[\\]-a]" NOMATCH
458 C "\\" "[!\\\\-a]" NOMATCH
459 C "_" "[!\\\\-a]" NOMATCH
460 C "a" "[!\\\\-a]" NOMATCH
464 C "\\" "[\\!-]" NOMATCH
468 C "-" "[Z-\\\\]" NOMATCH
473 C "-" "[Z-\\]]" NOMATCH
476 C.UTF-8 "!#%+,-./01234567889" "!#%+,-./01234567889" 0
477 C.UTF-8 ":;=@ABCDEFGHIJKLMNO" ":;=@ABCDEFGHIJKLMNO" 0
478 C.UTF-8 "PQRSTUVWXYZ]abcdefg" "PQRSTUVWXYZ]abcdefg" 0
479 C.UTF-8 "hijklmnopqrstuvwxyz" "hijklmnopqrstuvwxyz" 0
480 C.UTF-8 "^_{}~" "^_{}~" 0
483 C.UTF-8 "\"$&'()" "\\\"\\$\\&\\'\\(\\)" 0
484 C.UTF-8 "*?[\\`|" "\\*\\?\\[\\\\\\`\\|" 0
485 C.UTF-8 "<>" "\\<\\>" 0
488 C.UTF-8 "?*[" "[?*[][?*[][?*[]" 0
489 C.UTF-8 "a/b" "?/b" 0
492 C.UTF-8 "a/b" "a?b" 0
493 C.UTF-8 "a/b" "a/?" 0
494 C.UTF-8 "aa/b" "?/b" NOMATCH
495 C.UTF-8 "aa/b" "a?b" NOMATCH
496 C.UTF-8 "a/bb" "a/?" NOMATCH
499 C.UTF-8 "abc" "[abc]" NOMATCH
500 C.UTF-8 "x" "[abc]" NOMATCH
501 C.UTF-8 "a" "[abc]" 0
502 C.UTF-8 "[" "[[abc]" 0
503 C.UTF-8 "a" "[][abc]" 0
504 C.UTF-8 "a]" "[]a]]" 0
507 C.UTF-8 "xyz" "[!abc]" NOMATCH
508 C.UTF-8 "x" "[!abc]" 0
509 C.UTF-8 "a" "[!abc]" NOMATCH
512 C.UTF-8 "]" "[][abc]" 0
513 C.UTF-8 "abc]" "[][abc]" NOMATCH
514 C.UTF-8 "[]abc" "[][]abc" NOMATCH
515 C.UTF-8 "]" "[!]]" NOMATCH
516 C.UTF-8 "aa]" "[!]a]" NOMATCH
518 C.UTF-8 "]]" "[!a]]" 0
521 C.UTF-8 "a" "[[.a.]]" 0
522 C.UTF-8 "-" "[[.-.]]" 0
523 C.UTF-8 "-" "[[.-.][.].]]" 0
524 C.UTF-8 "-" "[[.].][.-.]]" 0
525 C.UTF-8 "-" "[[.-.][=u=]]" 0
526 C.UTF-8 "-" "[[.-.][:alpha:]]" 0
527 C.UTF-8 "a" "[![.a.]]" NOMATCH
530 C.UTF-8 "a" "[[.b.]]" NOMATCH
531 C.UTF-8 "a" "[[.b.][.c.]]" NOMATCH
532 C.UTF-8 "a" "[[.b.][=b=]]" NOMATCH
536 C.UTF-8 "a" "[[=a=]]" 0
537 C.UTF-8 "b" "[[=a=]b]" 0
538 C.UTF-8 "b" "[[=a=][=b=]]" 0
539 C.UTF-8 "a" "[[=a=][=b=]]" 0
540 C.UTF-8 "a" "[[=a=][.b.]]" 0
541 C.UTF-8 "a" "[[=a=][:digit:]]" 0
544 C.UTF-8 "=" "[[=a=]b]" NOMATCH
545 C.UTF-8 "]" "[[=a=]b]" NOMATCH
546 C.UTF-8 "a" "[[=b=][=c=]]" NOMATCH
547 C.UTF-8 "a" "[[=b=][.].]]" NOMATCH
548 C.UTF-8 "a" "[[=b=][:digit:]]" NOMATCH
551 C.UTF-8 "a" "[[:alnum:]]" 0
552 C.UTF-8 "a" "[![:alnum:]]" NOMATCH
553 C.UTF-8 "-" "[[:alnum:]]" NOMATCH
554 C.UTF-8 "a]a" "[[:alnum:]]a" NOMATCH
555 C.UTF-8 "-" "[[:alnum:]-]" 0
556 C.UTF-8 "aa" "[[:alnum:]]a" 0
557 C.UTF-8 "-" "[![:alnum:]]" 0
558 C.UTF-8 "]" "[!][:alnum:]]" NOMATCH
559 C.UTF-8 "[" "[![:alnum:][]" NOMATCH
560 C.UTF-8 "a" "[[:alnum:]]" 0
561 C.UTF-8 "b" "[[:alnum:]]" 0
562 C.UTF-8 "c" "[[:alnum:]]" 0
563 C.UTF-8 "d" "[[:alnum:]]" 0
564 C.UTF-8 "e" "[[:alnum:]]" 0
565 C.UTF-8 "f" "[[:alnum:]]" 0
566 C.UTF-8 "g" "[[:alnum:]]" 0
567 C.UTF-8 "h" "[[:alnum:]]" 0
568 C.UTF-8 "i" "[[:alnum:]]" 0
569 C.UTF-8 "j" "[[:alnum:]]" 0
570 C.UTF-8 "k" "[[:alnum:]]" 0
571 C.UTF-8 "l" "[[:alnum:]]" 0
572 C.UTF-8 "m" "[[:alnum:]]" 0
573 C.UTF-8 "n" "[[:alnum:]]" 0
574 C.UTF-8 "o" "[[:alnum:]]" 0
575 C.UTF-8 "p" "[[:alnum:]]" 0
576 C.UTF-8 "q" "[[:alnum:]]" 0
577 C.UTF-8 "r" "[[:alnum:]]" 0
578 C.UTF-8 "s" "[[:alnum:]]" 0
579 C.UTF-8 "t" "[[:alnum:]]" 0
580 C.UTF-8 "u" "[[:alnum:]]" 0
581 C.UTF-8 "v" "[[:alnum:]]" 0
582 C.UTF-8 "w" "[[:alnum:]]" 0
583 C.UTF-8 "x" "[[:alnum:]]" 0
584 C.UTF-8 "y" "[[:alnum:]]" 0
585 C.UTF-8 "z" "[[:alnum:]]" 0
586 C.UTF-8 "A" "[[:alnum:]]" 0
587 C.UTF-8 "B" "[[:alnum:]]" 0
588 C.UTF-8 "C" "[[:alnum:]]" 0
589 C.UTF-8 "D" "[[:alnum:]]" 0
590 C.UTF-8 "E" "[[:alnum:]]" 0
591 C.UTF-8 "F" "[[:alnum:]]" 0
592 C.UTF-8 "G" "[[:alnum:]]" 0
593 C.UTF-8 "H" "[[:alnum:]]" 0
594 C.UTF-8 "I" "[[:alnum:]]" 0
595 C.UTF-8 "J" "[[:alnum:]]" 0
596 C.UTF-8 "K" "[[:alnum:]]" 0
597 C.UTF-8 "L" "[[:alnum:]]" 0
598 C.UTF-8 "M" "[[:alnum:]]" 0
599 C.UTF-8 "N" "[[:alnum:]]" 0
600 C.UTF-8 "O" "[[:alnum:]]" 0
601 C.UTF-8 "P" "[[:alnum:]]" 0
602 C.UTF-8 "Q" "[[:alnum:]]" 0
603 C.UTF-8 "R" "[[:alnum:]]" 0
604 C.UTF-8 "S" "[[:alnum:]]" 0
605 C.UTF-8 "T" "[[:alnum:]]" 0
606 C.UTF-8 "U" "[[:alnum:]]" 0
607 C.UTF-8 "V" "[[:alnum:]]" 0
608 C.UTF-8 "W" "[[:alnum:]]" 0
609 C.UTF-8 "X" "[[:alnum:]]" 0
610 C.UTF-8 "Y" "[[:alnum:]]" 0
611 C.UTF-8 "Z" "[[:alnum:]]" 0
612 C.UTF-8 "0" "[[:alnum:]]" 0
613 C.UTF-8 "1" "[[:alnum:]]" 0
614 C.UTF-8 "2" "[[:alnum:]]" 0
615 C.UTF-8 "3" "[[:alnum:]]" 0
616 C.UTF-8 "4" "[[:alnum:]]" 0
617 C.UTF-8 "5" "[[:alnum:]]" 0
618 C.UTF-8 "6" "[[:alnum:]]" 0
619 C.UTF-8 "7" "[[:alnum:]]" 0
620 C.UTF-8 "8" "[[:alnum:]]" 0
621 C.UTF-8 "9" "[[:alnum:]]" 0
622 C.UTF-8 "!" "[[:alnum:]]" NOMATCH
623 C.UTF-8 "#" "[[:alnum:]]" NOMATCH
624 C.UTF-8 "%" "[[:alnum:]]" NOMATCH
625 C.UTF-8 "+" "[[:alnum:]]" NOMATCH
626 C.UTF-8 "," "[[:alnum:]]" NOMATCH
627 C.UTF-8 "-" "[[:alnum:]]" NOMATCH
628 C.UTF-8 "." "[[:alnum:]]" NOMATCH
629 C.UTF-8 "/" "[[:alnum:]]" NOMATCH
630 C.UTF-8 ":" "[[:alnum:]]" NOMATCH
631 C.UTF-8 ";" "[[:alnum:]]" NOMATCH
632 C.UTF-8 "=" "[[:alnum:]]" NOMATCH
633 C.UTF-8 "@" "[[:alnum:]]" NOMATCH
634 C.UTF-8 "[" "[[:alnum:]]" NOMATCH
635 C.UTF-8 "\\" "[[:alnum:]]" NOMATCH
636 C.UTF-8 "]" "[[:alnum:]]" NOMATCH
637 C.UTF-8 "^" "[[:alnum:]]" NOMATCH
638 C.UTF-8 "_" "[[:alnum:]]" NOMATCH
639 C.UTF-8 "{" "[[:alnum:]]" NOMATCH
640 C.UTF-8 "}" "[[:alnum:]]" NOMATCH
641 C.UTF-8 "~" "[[:alnum:]]" NOMATCH
642 C.UTF-8 "\"" "[[:alnum:]]" NOMATCH
643 C.UTF-8 "$" "[[:alnum:]]" NOMATCH
644 C.UTF-8 "&" "[[:alnum:]]" NOMATCH
645 C.UTF-8 "'" "[[:alnum:]]" NOMATCH
646 C.UTF-8 "(" "[[:alnum:]]" NOMATCH
647 C.UTF-8 ")" "[[:alnum:]]" NOMATCH
648 C.UTF-8 "*" "[[:alnum:]]" NOMATCH
649 C.UTF-8 "?" "[[:alnum:]]" NOMATCH
650 C.UTF-8 "`" "[[:alnum:]]" NOMATCH
651 C.UTF-8 "|" "[[:alnum:]]" NOMATCH
652 C.UTF-8 "<" "[[:alnum:]]" NOMATCH
653 C.UTF-8 ">" "[[:alnum:]]" NOMATCH
654 C.UTF-8 "\t" "[[:cntrl:]]" 0
655 C.UTF-8 "t" "[[:cntrl:]]" NOMATCH
656 C.UTF-8 "t" "[[:lower:]]" 0
657 C.UTF-8 "\t" "[[:lower:]]" NOMATCH
658 C.UTF-8 "T" "[[:lower:]]" NOMATCH
659 C.UTF-8 "\t" "[[:space:]]" 0
660 C.UTF-8 "t" "[[:space:]]" NOMATCH
661 C.UTF-8 "t" "[[:alpha:]]" 0
662 C.UTF-8 "\t" "[[:alpha:]]" NOMATCH
663 C.UTF-8 "0" "[[:digit:]]" 0
664 C.UTF-8 "\t" "[[:digit:]]" NOMATCH
665 C.UTF-8 "t" "[[:digit:]]" NOMATCH
666 C.UTF-8 "\t" "[[:print:]]" NOMATCH
667 C.UTF-8 "t" "[[:print:]]" 0
668 C.UTF-8 "T" "[[:upper:]]" 0
669 C.UTF-8 "\t" "[[:upper:]]" NOMATCH
670 C.UTF-8 "t" "[[:upper:]]" NOMATCH
671 C.UTF-8 "\t" "[[:blank:]]" 0
672 C.UTF-8 "t" "[[:blank:]]" NOMATCH
673 C.UTF-8 "\t" "[[:graph:]]" NOMATCH
674 C.UTF-8 "t" "[[:graph:]]" 0
675 C.UTF-8 "." "[[:punct:]]" 0
676 C.UTF-8 "t" "[[:punct:]]" NOMATCH
677 C.UTF-8 "\t" "[[:punct:]]" NOMATCH
678 C.UTF-8 "0" "[[:xdigit:]]" 0
679 C.UTF-8 "\t" "[[:xdigit:]]" NOMATCH
680 C.UTF-8 "a" "[[:xdigit:]]" 0
681 C.UTF-8 "A" "[[:xdigit:]]" 0
682 C.UTF-8 "t" "[[:xdigit:]]" NOMATCH
683 C.UTF-8 "a" "[[alpha]]" NOMATCH
684 C.UTF-8 "a" "[[alpha:]]" NOMATCH
685 C.UTF-8 "a]" "[[alpha]]" 0
686 C.UTF-8 "a]" "[[alpha:]]" 0
687 C.UTF-8 "a" "[[:alpha:][.b.]]" 0
688 C.UTF-8 "a" "[[:alpha:][=b=]]" 0
689 C.UTF-8 "a" "[[:alpha:][:digit:]]" 0
690 C.UTF-8 "a" "[[:digit:][:alpha:]]" 0
693 C.UTF-8 "a" "[a-c]" 0
694 C.UTF-8 "b" "[a-c]" 0
695 C.UTF-8 "c" "[a-c]" 0
696 C.UTF-8 "a" "[b-c]" NOMATCH
697 C.UTF-8 "d" "[b-c]" NOMATCH
698 C.UTF-8 "B" "[a-c]" NOMATCH
699 C.UTF-8 "b" "[A-C]" NOMATCH
700 C.UTF-8 "" "[a-c]" NOMATCH
701 C.UTF-8 "as" "[a-ca-z]" NOMATCH
702 C.UTF-8 "a" "[[.a.]-c]" 0
703 C.UTF-8 "a" "[a-[.c.]]" 0
704 C.UTF-8 "a" "[[.a.]-[.c.]]" 0
705 C.UTF-8 "b" "[[.a.]-c]" 0
706 C.UTF-8 "b" "[a-[.c.]]" 0
707 C.UTF-8 "b" "[[.a.]-[.c.]]" 0
708 C.UTF-8 "c" "[[.a.]-c]" 0
709 C.UTF-8 "c" "[a-[.c.]]" 0
710 C.UTF-8 "c" "[[.a.]-[.c.]]" 0
711 C.UTF-8 "d" "[[.a.]-c]" NOMATCH
712 C.UTF-8 "d" "[a-[.c.]]" NOMATCH
713 C.UTF-8 "d" "[[.a.]-[.c.]]" NOMATCH
716 C.UTF-8 "a" "[c-a]" NOMATCH
717 C.UTF-8 "a" "[[.c.]-a]" NOMATCH
718 C.UTF-8 "a" "[c-[.a.]]" NOMATCH
719 C.UTF-8 "a" "[[.c.]-[.a.]]" NOMATCH
720 C.UTF-8 "c" "[c-a]" NOMATCH
721 C.UTF-8 "c" "[[.c.]-a]" NOMATCH
722 C.UTF-8 "c" "[c-[.a.]]" NOMATCH
723 C.UTF-8 "c" "[[.c.]-[.a.]]" NOMATCH
726 C.UTF-8 "a" "[a-c0-9]" 0
727 C.UTF-8 "d" "[a-c0-9]" NOMATCH
728 C.UTF-8 "B" "[a-c0-9]" NOMATCH
732 C.UTF-8 "a" "[-b]" NOMATCH
733 C.UTF-8 "-" "[!-a]" NOMATCH
734 C.UTF-8 "a" "[!-b]" 0
735 C.UTF-8 "-" "[a-c-0-9]" 0
736 C.UTF-8 "b" "[a-c-0-9]" 0
737 C.UTF-8 "a:" "a[0-9-a]" NOMATCH
738 C.UTF-8 "a:" "a[09-a]" 0
742 C.UTF-8 "asd/sdf" "*" 0
745 C.UTF-8 "as" "[a-c][a-z]" 0
749 C.UTF-8 "asd/sdf" "as*df" 0
750 C.UTF-8 "asd/sdf" "as*" 0
751 C.UTF-8 "asd/sdf" "*df" 0
752 C.UTF-8 "asd/sdf" "as*dg" NOMATCH
753 C.UTF-8 "asdf" "as*df" 0
754 C.UTF-8 "asdf" "as*df?" NOMATCH
755 C.UTF-8 "asdf" "as*??" 0
756 C.UTF-8 "asdf" "a*???" 0
757 C.UTF-8 "asdf" "*????" 0
758 C.UTF-8 "asdf" "????*" 0
759 C.UTF-8 "asdf" "??*?" 0
765 C.UTF-8 "/" "/?" NOMATCH
766 C.UTF-8 "/" "?/" NOMATCH
770 C.UTF-8 "/" "[!a-c]" 0
771 C.UTF-8 "." "[!a-c]" 0
774 C.UTF-8 "/" "/" 0 PATHNAME
775 C.UTF-8 "//" "//" 0 PATHNAME
776 C.UTF-8 "/.a" "/*" 0 PATHNAME
777 C.UTF-8 "/.a" "/?a" 0 PATHNAME
778 C.UTF-8 "/.a" "/[!a-z]a" 0 PATHNAME
779 C.UTF-8 "/.a/.b" "/*/?b" 0 PATHNAME
782 C.UTF-8 "/" "?" NOMATCH PATHNAME
783 C.UTF-8 "/" "*" NOMATCH PATHNAME
784 C.UTF-8 "a/b" "a?b" NOMATCH PATHNAME
785 C.UTF-8 "/.a/.b" "/*b" NOMATCH PATHNAME
788 C.UTF-8 "/$" "\\/\\$" 0
789 C.UTF-8 "/[" "\\/\\[" 0
790 C.UTF-8 "/[" "\\/[" 0
791 C.UTF-8 "/[]" "\\/\\[]" 0
794 C.UTF-8 "/$" "\\/\\$" NOMATCH NOESCAPE
795 C.UTF-8 "/\\$" "\\/\\$" NOMATCH NOESCAPE
796 C.UTF-8 "\\/\\$" "\\/\\$" 0 NOESCAPE
799 C.UTF-8 ".asd" ".*" 0 PERIOD
800 C.UTF-8 "/.asd" "*" 0 PERIOD
801 C.UTF-8 "/as/.df" "*/?*f" 0 PERIOD
802 C.UTF-8 "..asd" ".[!a-z]*" 0 PERIOD
805 C.UTF-8 ".asd" "*" NOMATCH PERIOD
806 C.UTF-8 ".asd" "?asd" NOMATCH PERIOD
807 C.UTF-8 ".asd" "[!a-z]*" NOMATCH PERIOD
810 C.UTF-8 "/." "/." 0 PATHNAME|PERIOD
811 C.UTF-8 "/.a./.b." "/.*/.*" 0 PATHNAME|PERIOD
812 C.UTF-8 "/.a./.b." "/.??/.??" 0 PATHNAME|PERIOD
815 C.UTF-8 "/." "*" NOMATCH PATHNAME|PERIOD
816 C.UTF-8 "/." "/*" NOMATCH PATHNAME|PERIOD
817 C.UTF-8 "/." "/?" NOMATCH PATHNAME|PERIOD
818 C.UTF-8 "/." "/[!a-z]" NOMATCH PATHNAME|PERIOD
819 C.UTF-8 "/a./.b." "/*/*" NOMATCH PATHNAME|PERIOD
820 C.UTF-8 "/a./.b." "/??/???" NOMATCH PATHNAME|PERIOD
822 # Some home-grown tests.
823 C.UTF-8 "foobar" "foo*[abc]z" NOMATCH
824 C.UTF-8 "foobaz" "foo*[abc][xyz]" 0
825 C.UTF-8 "foobaz" "foo?*[abc][xyz]" 0
826 C.UTF-8 "foobaz" "foo?*[abc][x/yz]" 0
827 C.UTF-8 "foobaz" "foo?*[abc]/[xyz]" NOMATCH PATHNAME
828 C.UTF-8 "a" "a/" NOMATCH PATHNAME
829 C.UTF-8 "a/" "a" NOMATCH PATHNAME
830 C.UTF-8 "//a" "/a" NOMATCH PATHNAME
831 C.UTF-8 "/a" "//a" NOMATCH PATHNAME
832 C.UTF-8 "az" "[a-]z" 0
833 C.UTF-8 "bz" "[ab-]z" 0
834 C.UTF-8 "cz" "[ab-]z" NOMATCH
835 C.UTF-8 "-z" "[ab-]z" 0
836 C.UTF-8 "az" "[-a]z" 0
837 C.UTF-8 "bz" "[-ab]z" 0
838 C.UTF-8 "cz" "[-ab]z" NOMATCH
839 C.UTF-8 "-z" "[-ab]z" 0
840 C.UTF-8 "\\" "[\\\\-a]" 0
841 C.UTF-8 "_" "[\\\\-a]" 0
842 C.UTF-8 "a" "[\\\\-a]" 0
843 C.UTF-8 "-" "[\\\\-a]" NOMATCH
844 C.UTF-8 "\\" "[\\]-a]" NOMATCH
845 C.UTF-8 "_" "[\\]-a]" 0
846 C.UTF-8 "a" "[\\]-a]" 0
847 C.UTF-8 "]" "[\\]-a]" 0
848 C.UTF-8 "-" "[\\]-a]" NOMATCH
849 C.UTF-8 "\\" "[!\\\\-a]" NOMATCH
850 C.UTF-8 "_" "[!\\\\-a]" NOMATCH
851 C.UTF-8 "a" "[!\\\\-a]" NOMATCH
852 C.UTF-8 "-" "[!\\\\-a]" 0
853 C.UTF-8 "!" "[\\!-]" 0
854 C.UTF-8 "-" "[\\!-]" 0
855 C.UTF-8 "\\" "[\\!-]" NOMATCH
856 C.UTF-8 "Z" "[Z-\\\\]" 0
857 C.UTF-8 "[" "[Z-\\\\]" 0
858 C.UTF-8 "\\" "[Z-\\\\]" 0
859 C.UTF-8 "-" "[Z-\\\\]" NOMATCH
860 C.UTF-8 "Z" "[Z-\\]]" 0
861 C.UTF-8 "[" "[Z-\\]]" 0
862 C.UTF-8 "\\" "[Z-\\]]" 0
863 C.UTF-8 "]" "[Z-\\]]" 0
864 C.UTF-8 "-" "[Z-\\]]" NOMATCH
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).
869 de_DE.ISO-8859-1 "a" "[a-z]" 0
870 de_DE.ISO-8859-1 "z" "[a-z]" 0
871 de_DE.ISO-8859-1 "\344" "[a-z]" 0
872 de_DE.ISO-8859-1 "\366" "[a-z]" 0
873 de_DE.ISO-8859-1 "\374" "[a-z]" 0
874 de_DE.ISO-8859-1 "A" "[a-z]" NOMATCH
875 de_DE.ISO-8859-1 "Z" "[a-z]" NOMATCH
876 de_DE.ISO-8859-1 "\304" "[a-z]" NOMATCH
877 de_DE.ISO-8859-1 "\326" "[a-z]" NOMATCH
878 de_DE.ISO-8859-1 "\334" "[a-z]" NOMATCH
879 de_DE.ISO-8859-1 "a" "[A-Z]" NOMATCH
880 de_DE.ISO-8859-1 "z" "[A-Z]" NOMATCH
881 de_DE.ISO-8859-1 "\344" "[A-Z]" NOMATCH
882 de_DE.ISO-8859-1 "\366" "[A-Z]" NOMATCH
883 de_DE.ISO-8859-1 "\374" "[A-Z]" NOMATCH
884 de_DE.ISO-8859-1 "A" "[A-Z]" 0
885 de_DE.ISO-8859-1 "Z" "[A-Z]" 0
886 de_DE.ISO-8859-1 "\304" "[A-Z]" 0
887 de_DE.ISO-8859-1 "\326" "[A-Z]" 0
888 de_DE.ISO-8859-1 "\334" "[A-Z]" 0
889 de_DE.ISO-8859-1 "a" "[[:lower:]]" 0
890 de_DE.ISO-8859-1 "z" "[[:lower:]]" 0
891 de_DE.ISO-8859-1 "\344" "[[:lower:]]" 0
892 de_DE.ISO-8859-1 "\366" "[[:lower:]]" 0
893 de_DE.ISO-8859-1 "\374" "[[:lower:]]" 0
894 de_DE.ISO-8859-1 "A" "[[:lower:]]" NOMATCH
895 de_DE.ISO-8859-1 "Z" "[[:lower:]]" NOMATCH
896 de_DE.ISO-8859-1 "\304" "[[:lower:]]" NOMATCH
897 de_DE.ISO-8859-1 "\326" "[[:lower:]]" NOMATCH
898 de_DE.ISO-8859-1 "\334" "[[:lower:]]" NOMATCH
899 de_DE.ISO-8859-1 "a" "[[:upper:]]" NOMATCH
900 de_DE.ISO-8859-1 "z" "[[:upper:]]" NOMATCH
901 de_DE.ISO-8859-1 "\344" "[[:upper:]]" NOMATCH
902 de_DE.ISO-8859-1 "\366" "[[:upper:]]" NOMATCH
903 de_DE.ISO-8859-1 "\374" "[[:upper:]]" NOMATCH
904 de_DE.ISO-8859-1 "A" "[[:upper:]]" 0
905 de_DE.ISO-8859-1 "Z" "[[:upper:]]" 0
906 de_DE.ISO-8859-1 "\304" "[[:upper:]]" 0
907 de_DE.ISO-8859-1 "\326" "[[:upper:]]" 0
908 de_DE.ISO-8859-1 "\334" "[[:upper:]]" 0
909 de_DE.ISO-8859-1 "a" "[[:alpha:]]" 0
910 de_DE.ISO-8859-1 "z" "[[:alpha:]]" 0
911 de_DE.ISO-8859-1 "\344" "[[:alpha:]]" 0
912 de_DE.ISO-8859-1 "\366" "[[:alpha:]]" 0
913 de_DE.ISO-8859-1 "\374" "[[:alpha:]]" 0
914 de_DE.ISO-8859-1 "A" "[[:alpha:]]" 0
915 de_DE.ISO-8859-1 "Z" "[[:alpha:]]" 0
916 de_DE.ISO-8859-1 "\304" "[[:alpha:]]" 0
917 de_DE.ISO-8859-1 "\326" "[[:alpha:]]" 0
918 de_DE.ISO-8859-1 "\334" "[[:alpha:]]" 0
920 de_DE.ISO-8859-1 "a" "[[=a=]b]" 0
921 de_DE.ISO-8859-1 "\342" "[[=a=]b]" 0
922 de_DE.ISO-8859-1 "\340" "[[=a=]b]" 0
923 de_DE.ISO-8859-1 "\341" "[[=a=]b]" 0
924 de_DE.ISO-8859-1 "\344" "[[=a=]b]" 0
925 de_DE.ISO-8859-1 "b" "[[=a=]b]" 0
926 de_DE.ISO-8859-1 "c" "[[=a=]b]" NOMATCH
927 de_DE.ISO-8859-1 "a" "[[=\342=]b]" 0
928 de_DE.ISO-8859-1 "\342" "[[=\342=]b]" 0
929 de_DE.ISO-8859-1 "\340" "[[=\342=]b]" 0
930 de_DE.ISO-8859-1 "\341" "[[=\342=]b]" 0
931 de_DE.ISO-8859-1 "\344" "[[=\342=]b]" 0
932 de_DE.ISO-8859-1 "b" "[[=\342=]b]" 0
933 de_DE.ISO-8859-1 "c" "[[=\342=]b]" NOMATCH
934 de_DE.ISO-8859-1 "a" "[[=\340=]b]" 0
935 de_DE.ISO-8859-1 "\342" "[[=\340=]b]" 0
936 de_DE.ISO-8859-1 "\340" "[[=\340=]b]" 0
937 de_DE.ISO-8859-1 "\341" "[[=\340=]b]" 0
938 de_DE.ISO-8859-1 "\344" "[[=\340=]b]" 0
939 de_DE.ISO-8859-1 "b" "[[=\340=]b]" 0
940 de_DE.ISO-8859-1 "c" "[[=\340=]b]" NOMATCH
941 de_DE.ISO-8859-1 "a" "[[=\341=]b]" 0
942 de_DE.ISO-8859-1 "\342" "[[=\341=]b]" 0
943 de_DE.ISO-8859-1 "\340" "[[=\341=]b]" 0
944 de_DE.ISO-8859-1 "\341" "[[=\341=]b]" 0
945 de_DE.ISO-8859-1 "\344" "[[=\341=]b]" 0
946 de_DE.ISO-8859-1 "b" "[[=\341=]b]" 0
947 de_DE.ISO-8859-1 "c" "[[=\341=]b]" NOMATCH
948 de_DE.ISO-8859-1 "a" "[[=\344=]b]" 0
949 de_DE.ISO-8859-1 "\342" "[[=\344=]b]" 0
950 de_DE.ISO-8859-1 "\340" "[[=\344=]b]" 0
951 de_DE.ISO-8859-1 "\341" "[[=\344=]b]" 0
952 de_DE.ISO-8859-1 "\344" "[[=\344=]b]" 0
953 de_DE.ISO-8859-1 "b" "[[=\344=]b]" 0
954 de_DE.ISO-8859-1 "c" "[[=\344=]b]" NOMATCH
956 de_DE.ISO-8859-1 "aa" "[[.a.]]a" 0
957 de_DE.ISO-8859-1 "ba" "[[.a.]]a" NOMATCH
960 # And with a multibyte character set.
961 en_US.UTF-8 "a" "[a-z]" 0
962 en_US.UTF-8 "z" "[a-z]" 0
963 en_US.UTF-8 "A" "[a-z]" NOMATCH
964 en_US.UTF-8 "Z" "[a-z]" NOMATCH
965 en_US.UTF-8 "a" "[A-Z]" NOMATCH
966 en_US.UTF-8 "z" "[A-Z]" NOMATCH
967 en_US.UTF-8 "A" "[A-Z]" 0
968 en_US.UTF-8 "Z" "[A-Z]" 0
969 en_US.UTF-8 "0" "[0-9]" 0
970 en_US.UTF-8 "9" "[0-9]" 0
971 de_DE.UTF-8 "a" "[a-z]" 0
972 de_DE.UTF-8 "z" "[a-z]" 0
973 de_DE.UTF-8 "ä" "[a-z]" 0
974 de_DE.UTF-8 "ö" "[a-z]" 0
975 de_DE.UTF-8 "ü" "[a-z]" 0
976 de_DE.UTF-8 "A" "[a-z]" NOMATCH
977 de_DE.UTF-8 "Z" "[a-z]" NOMATCH
978 de_DE.UTF-8 "Ä" "[a-z]" NOMATCH
979 de_DE.UTF-8 "Ö" "[a-z]" NOMATCH
980 de_DE.UTF-8 "Ü" "[a-z]" NOMATCH
981 de_DE.UTF-8 "a" "[A-Z]" NOMATCH
982 de_DE.UTF-8 "z" "[A-Z]" NOMATCH
983 de_DE.UTF-8 "ä" "[A-Z]" NOMATCH
984 de_DE.UTF-8 "ö" "[A-Z]" NOMATCH
985 de_DE.UTF-8 "ü" "[A-Z]" NOMATCH
986 de_DE.UTF-8 "A" "[A-Z]" 0
987 de_DE.UTF-8 "Z" "[A-Z]" 0
988 de_DE.UTF-8 "Ä" "[A-Z]" 0
989 de_DE.UTF-8 "Ö" "[A-Z]" 0
990 de_DE.UTF-8 "Ü" "[A-Z]" 0
991 de_DE.UTF-8 "a" "[[:lower:]]" 0
992 de_DE.UTF-8 "z" "[[:lower:]]" 0
993 de_DE.UTF-8 "ä" "[[:lower:]]" 0
994 de_DE.UTF-8 "ö" "[[:lower:]]" 0
995 de_DE.UTF-8 "ü" "[[:lower:]]" 0
996 de_DE.UTF-8 "A" "[[:lower:]]" NOMATCH
997 de_DE.UTF-8 "Z" "[[:lower:]]" NOMATCH
998 de_DE.UTF-8 "Ä" "[[:lower:]]" NOMATCH
999 de_DE.UTF-8 "Ö" "[[:lower:]]" NOMATCH
1000 de_DE.UTF-8 "Ü" "[[:lower:]]" NOMATCH
1001 de_DE.UTF-8 "a" "[[:upper:]]" NOMATCH
1002 de_DE.UTF-8 "z" "[[:upper:]]" NOMATCH
1003 de_DE.UTF-8 "ä" "[[:upper:]]" NOMATCH
1004 de_DE.UTF-8 "ö" "[[:upper:]]" NOMATCH
1005 de_DE.UTF-8 "ü" "[[:upper:]]" NOMATCH
1006 de_DE.UTF-8 "A" "[[:upper:]]" 0
1007 de_DE.UTF-8 "Z" "[[:upper:]]" 0
1008 de_DE.UTF-8 "Ä" "[[:upper:]]" 0
1009 de_DE.UTF-8 "Ö" "[[:upper:]]" 0
1010 de_DE.UTF-8 "Ü" "[[:upper:]]" 0
1011 de_DE.UTF-8 "a" "[[:alpha:]]" 0
1012 de_DE.UTF-8 "z" "[[:alpha:]]" 0
1013 de_DE.UTF-8 "ä" "[[:alpha:]]" 0
1014 de_DE.UTF-8 "ö" "[[:alpha:]]" 0
1015 de_DE.UTF-8 "ü" "[[:alpha:]]" 0
1016 de_DE.UTF-8 "A" "[[:alpha:]]" 0
1017 de_DE.UTF-8 "Z" "[[:alpha:]]" 0
1018 de_DE.UTF-8 "Ä" "[[:alpha:]]" 0
1019 de_DE.UTF-8 "Ö" "[[:alpha:]]" 0
1020 de_DE.UTF-8 "Ü" "[[:alpha:]]" 0
1022 de_DE.UTF-8 "a" "[[=a=]b]" 0
1023 de_DE.UTF-8 "â" "[[=a=]b]" 0
1024 de_DE.UTF-8 "Ã " "[[=a=]b]" 0
1025 de_DE.UTF-8 "á" "[[=a=]b]" 0
1026 de_DE.UTF-8 "ä" "[[=a=]b]" 0
1027 de_DE.UTF-8 "b" "[[=a=]b]" 0
1028 de_DE.UTF-8 "c" "[[=a=]b]" NOMATCH
1029 de_DE.UTF-8 "a" "[[=â=]b]" 0
1030 de_DE.UTF-8 "â" "[[=â=]b]" 0
1031 de_DE.UTF-8 "à " "[[=â=]b]" 0
1032 de_DE.UTF-8 "á" "[[=â=]b]" 0
1033 de_DE.UTF-8 "ä" "[[=â=]b]" 0
1034 de_DE.UTF-8 "b" "[[=â=]b]" 0
1035 de_DE.UTF-8 "c" "[[=â=]b]" NOMATCH
1036 de_DE.UTF-8 "a" "[[=Ã =]b]" 0
1037 de_DE.UTF-8 "â" "[[=à =]b]" 0
1038 de_DE.UTF-8 "Ã " "[[=Ã =]b]" 0
1039 de_DE.UTF-8 "á" "[[=à =]b]" 0
1040 de_DE.UTF-8 "ä" "[[=à =]b]" 0
1041 de_DE.UTF-8 "b" "[[=Ã =]b]" 0
1042 de_DE.UTF-8 "c" "[[=Ã =]b]" NOMATCH
1043 de_DE.UTF-8 "a" "[[=á=]b]" 0
1044 de_DE.UTF-8 "â" "[[=á=]b]" 0
1045 de_DE.UTF-8 "à " "[[=á=]b]" 0
1046 de_DE.UTF-8 "á" "[[=á=]b]" 0
1047 de_DE.UTF-8 "ä" "[[=á=]b]" 0
1048 de_DE.UTF-8 "b" "[[=á=]b]" 0
1049 de_DE.UTF-8 "c" "[[=á=]b]" NOMATCH
1050 de_DE.UTF-8 "a" "[[=ä=]b]" 0
1051 de_DE.UTF-8 "â" "[[=ä=]b]" 0
1052 de_DE.UTF-8 "à " "[[=ä=]b]" 0
1053 de_DE.UTF-8 "á" "[[=ä=]b]" 0
1054 de_DE.UTF-8 "ä" "[[=ä=]b]" 0
1055 de_DE.UTF-8 "b" "[[=ä=]b]" 0
1056 de_DE.UTF-8 "c" "[[=ä=]b]" NOMATCH
1058 de_DE.UTF-8 "aa" "[[.a.]]a" 0
1059 de_DE.UTF-8 "ba" "[[.a.]]a" NOMATCH
1062 # Test of GNU extensions.
1063 C "x" "x" 0 PATHNAME|LEADING_DIR
1064 C "x/y" "x" 0 PATHNAME|LEADING_DIR
1065 C "x/y/z" "x" 0 PATHNAME|LEADING_DIR
1066 C "x" "*" 0 PATHNAME|LEADING_DIR
1067 C "x/y" "*" 0 PATHNAME|LEADING_DIR
1068 C "x/y/z" "*" 0 PATHNAME|LEADING_DIR
1069 C "x" "*x" 0 PATHNAME|LEADING_DIR
1071 C "x/y" "*x" 0 PATHNAME|LEADING_DIR
1072 C "x/y/z" "*x" 0 PATHNAME|LEADING_DIR
1073 C "x" "x*" 0 PATHNAME|LEADING_DIR
1074 C "x/y" "x*" 0 PATHNAME|LEADING_DIR
1075 C "x/y/z" "x*" 0 PATHNAME|LEADING_DIR
1076 C "x" "a" NOMATCH PATHNAME|LEADING_DIR
1077 C "x/y" "a" NOMATCH PATHNAME|LEADING_DIR
1078 C "x/y/z" "a" NOMATCH PATHNAME|LEADING_DIR
1079 C "x" "x/y" NOMATCH PATHNAME|LEADING_DIR
1080 C "x/y" "x/y" 0 PATHNAME|LEADING_DIR
1081 C "x/y/z" "x/y" 0 PATHNAME|LEADING_DIR
1082 C "x" "x?y" NOMATCH PATHNAME|LEADING_DIR
1083 C "x/y" "x?y" NOMATCH PATHNAME|LEADING_DIR
1084 C "x/y/z" "x?y" NOMATCH PATHNAME|LEADING_DIR
1086 # Duplicate the "Test of GNU extensions." tests but for C.UTF-8.
1087 C.UTF-8 "x" "x" 0 PATHNAME|LEADING_DIR
1088 C.UTF-8 "x/y" "x" 0 PATHNAME|LEADING_DIR
1089 C.UTF-8 "x/y/z" "x" 0 PATHNAME|LEADING_DIR
1090 C.UTF-8 "x" "*" 0 PATHNAME|LEADING_DIR
1091 C.UTF-8 "x/y" "*" 0 PATHNAME|LEADING_DIR
1092 C.UTF-8 "x/y/z" "*" 0 PATHNAME|LEADING_DIR
1093 C.UTF-8 "x" "*x" 0 PATHNAME|LEADING_DIR
1095 C.UTF-8 "x/y" "*x" 0 PATHNAME|LEADING_DIR
1096 C.UTF-8 "x/y/z" "*x" 0 PATHNAME|LEADING_DIR
1097 C.UTF-8 "x" "x*" 0 PATHNAME|LEADING_DIR
1098 C.UTF-8 "x/y" "x*" 0 PATHNAME|LEADING_DIR
1099 C.UTF-8 "x/y/z" "x*" 0 PATHNAME|LEADING_DIR
1100 C.UTF-8 "x" "a" NOMATCH PATHNAME|LEADING_DIR
1101 C.UTF-8 "x/y" "a" NOMATCH PATHNAME|LEADING_DIR
1102 C.UTF-8 "x/y/z" "a" NOMATCH PATHNAME|LEADING_DIR
1103 C.UTF-8 "x" "x/y" NOMATCH PATHNAME|LEADING_DIR
1104 C.UTF-8 "x/y" "x/y" 0 PATHNAME|LEADING_DIR
1105 C.UTF-8 "x/y/z" "x/y" 0 PATHNAME|LEADING_DIR
1106 C.UTF-8 "x" "x?y" NOMATCH PATHNAME|LEADING_DIR
1107 C.UTF-8 "x/y" "x?y" NOMATCH PATHNAME|LEADING_DIR
1108 C.UTF-8 "x/y/z" "x?y" NOMATCH PATHNAME|LEADING_DIR
1111 en_US.UTF-8 "\366.csv" "*.csv" 0
1113 # ksh style matching.
1114 C "abcd" "?@(a|b)*@(c)d" 0 EXTMATCH
1115 C "/dev/udp/129.22.8.102/45" "/dev/@(tcp|udp)/*/*" 0 PATHNAME|EXTMATCH
1116 C "12" "[1-9]*([0-9])" 0 EXTMATCH
1117 C "12abc" "[1-9]*([0-9])" NOMATCH EXTMATCH
1118 C "1" "[1-9]*([0-9])" 0 EXTMATCH
1119 C "07" "+([0-7])" 0 EXTMATCH
1120 C "0377" "+([0-7])" 0 EXTMATCH
1121 C "09" "+([0-7])" NOMATCH EXTMATCH
1122 C "paragraph" "para@(chute|graph)" 0 EXTMATCH
1123 C "paramour" "para@(chute|graph)" NOMATCH EXTMATCH
1124 C "para991" "para?([345]|99)1" 0 EXTMATCH
1125 C "para381" "para?([345]|99)1" NOMATCH EXTMATCH
1126 C "paragraph" "para*([0-9])" NOMATCH EXTMATCH
1127 C "para" "para*([0-9])" 0 EXTMATCH
1128 C "para13829383746592" "para*([0-9])" 0 EXTMATCH
1129 C "paragraph" "para+([0-9])" NOMATCH EXTMATCH
1130 C "para" "para+([0-9])" NOMATCH EXTMATCH
1131 C "para987346523" "para+([0-9])" 0 EXTMATCH
1132 C "paragraph" "para!(*.[0-9])" 0 EXTMATCH
1133 C "para.38" "para!(*.[0-9])" 0 EXTMATCH
1134 C "para.graph" "para!(*.[0-9])" 0 EXTMATCH
1135 C "para39" "para!(*.[0-9])" 0 EXTMATCH
1136 C "" "*(0|1|3|5|7|9)" 0 EXTMATCH
1137 C "137577991" "*(0|1|3|5|7|9)" 0 EXTMATCH
1138 C "2468" "*(0|1|3|5|7|9)" NOMATCH EXTMATCH
1139 C "1358" "*(0|1|3|5|7|9)" NOMATCH EXTMATCH
1140 C "file.c" "*.c?(c)" 0 EXTMATCH
1141 C "file.C" "*.c?(c)" NOMATCH EXTMATCH
1142 C "file.cc" "*.c?(c)" 0 EXTMATCH
1143 C "file.ccc" "*.c?(c)" NOMATCH EXTMATCH
1144 C "parse.y" "!(*.c|*.h|Makefile.in|config*|README)" 0 EXTMATCH
1145 C "shell.c" "!(*.c|*.h|Makefile.in|config*|README)" NOMATCH EXTMATCH
1146 C "Makefile" "!(*.c|*.h|Makefile.in|config*|README)" 0 EXTMATCH
1147 C "VMS.FILE;1" "*\;[1-9]*([0-9])" 0 EXTMATCH
1148 C "VMS.FILE;0" "*\;[1-9]*([0-9])" NOMATCH EXTMATCH
1149 C "VMS.FILE;" "*\;[1-9]*([0-9])" NOMATCH EXTMATCH
1150 C "VMS.FILE;139" "*\;[1-9]*([0-9])" 0 EXTMATCH
1151 C "VMS.FILE;1N" "*\;[1-9]*([0-9])" NOMATCH EXTMATCH
1152 C "abcfefg" "ab**(e|f)" 0 EXTMATCH
1153 C "abcfefg" "ab**(e|f)g" 0 EXTMATCH
1154 C "ab" "ab*+(e|f)" NOMATCH EXTMATCH
1155 C "abef" "ab***ef" 0 EXTMATCH
1156 C "abef" "ab**" 0 EXTMATCH
1157 C "fofo" "*(f*(o))" 0 EXTMATCH
1158 C "ffo" "*(f*(o))" 0 EXTMATCH
1159 C "foooofo" "*(f*(o))" 0 EXTMATCH
1160 C "foooofof" "*(f*(o))" 0 EXTMATCH
1161 C "fooofoofofooo" "*(f*(o))" 0 EXTMATCH
1162 C "foooofof" "*(f+(o))" NOMATCH EXTMATCH
1163 C "xfoooofof" "*(f*(o))" NOMATCH EXTMATCH
1164 C "foooofofx" "*(f*(o))" NOMATCH EXTMATCH
1165 C "ofxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
1166 C "ofooofoofofooo" "*(f*(o))" NOMATCH EXTMATCH
1167 C "foooxfooxfoxfooox" "*(f*(o)x)" 0 EXTMATCH
1168 C "foooxfooxofoxfooox" "*(f*(o)x)" NOMATCH EXTMATCH
1169 C "foooxfooxfxfooox" "*(f*(o)x)" 0 EXTMATCH
1170 C "ofxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
1171 C "ofoooxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
1172 C "ofoooxoofxoofoooxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
1173 C "ofoooxoofxoofoooxoofxoo" "*(*(of*(o)x)o)" 0 EXTMATCH
1174 C "ofoooxoofxoofoooxoofxofo" "*(*(of*(o)x)o)" NOMATCH EXTMATCH
1175 C "ofoooxoofxoofoooxoofxooofxofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
1176 C "aac" "*(@(a))a@(c)" 0 EXTMATCH
1177 C "ac" "*(@(a))a@(c)" 0 EXTMATCH
1178 C "c" "*(@(a))a@(c)" NOMATCH EXTMATCH
1179 C "aaac" "*(@(a))a@(c)" 0 EXTMATCH
1180 C "baaac" "*(@(a))a@(c)" NOMATCH EXTMATCH
1181 C "abcd" "?@(a|b)*@(c)d" 0 EXTMATCH
1182 C "abcd" "@(ab|a*@(b))*(c)d" 0 EXTMATCH
1183 C "acd" "@(ab|a*(b))*(c)d" 0 EXTMATCH
1184 C "abbcd" "@(ab|a*(b))*(c)d" 0 EXTMATCH
1185 C "effgz" "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1186 C "efgz" "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1187 C "egz" "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1188 C "egzefffgzbcdij" "*(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1189 C "egz" "@(b+(c)d|e+(f)g?|?(h)i@(j|k))" NOMATCH EXTMATCH
1190 C "ofoofo" "*(of+(o))" 0 EXTMATCH
1191 C "oxfoxoxfox" "*(oxf+(ox))" 0 EXTMATCH
1192 C "oxfoxfox" "*(oxf+(ox))" NOMATCH EXTMATCH
1193 C "ofoofo" "*(of+(o)|f)" 0 EXTMATCH
1194 C "foofoofo" "@(foo|f|fo)*(f|of+(o))" 0 EXTMATCH
1195 C "oofooofo" "*(of|oof+(o))" 0 EXTMATCH
1196 C "fffooofoooooffoofffooofff" "*(*(f)*(o))" 0 EXTMATCH
1197 C "fofoofoofofoo" "*(fo|foo)" 0 EXTMATCH
1198 C "foo" "!(x)" 0 EXTMATCH
1199 C "foo" "!(x)*" 0 EXTMATCH
1200 C "foo" "!(foo)" NOMATCH EXTMATCH
1201 C "foo" "!(foo)*" 0 EXTMATCH
1202 C "foobar" "!(foo)" 0 EXTMATCH
1203 C "foobar" "!(foo)*" 0 EXTMATCH
1204 C "moo.cow" "!(*.*).!(*.*)" 0 EXTMATCH
1205 C "mad.moo.cow" "!(*.*).!(*.*)" NOMATCH EXTMATCH
1206 C "mucca.pazza" "mu!(*(c))?.pa!(*(z))?" NOMATCH EXTMATCH
1207 C "fff" "!(f)" 0 EXTMATCH
1208 C "fff" "*(!(f))" 0 EXTMATCH
1209 C "fff" "+(!(f))" 0 EXTMATCH
1210 C "ooo" "!(f)" 0 EXTMATCH
1211 C "ooo" "*(!(f))" 0 EXTMATCH
1212 C "ooo" "+(!(f))" 0 EXTMATCH
1213 C "foo" "!(f)" 0 EXTMATCH
1214 C "foo" "*(!(f))" 0 EXTMATCH
1215 C "foo" "+(!(f))" 0 EXTMATCH
1216 C "f" "!(f)" NOMATCH EXTMATCH
1217 C "f" "*(!(f))" NOMATCH EXTMATCH
1218 C "f" "+(!(f))" NOMATCH EXTMATCH
1219 C "foot" "@(!(z*)|*x)" 0 EXTMATCH
1220 C "zoot" "@(!(z*)|*x)" NOMATCH EXTMATCH
1221 C "foox" "@(!(z*)|*x)" 0 EXTMATCH
1222 C "zoox" "@(!(z*)|*x)" 0 EXTMATCH
1223 C "foo" "*(!(foo))" 0 EXTMATCH
1224 C "foob" "!(foo)b*" NOMATCH EXTMATCH
1225 C "foobb" "!(foo)b*" 0 EXTMATCH
1226 C "[" "*([a[])" 0 EXTMATCH
1227 C "]" "*([]a[])" 0 EXTMATCH
1228 C "a" "*([]a[])" 0 EXTMATCH
1229 C "b" "*([!]a[])" 0 EXTMATCH
1230 C "[" "*([!]a[]|[[])" 0 EXTMATCH
1231 C "]" "*([!]a[]|[]])" 0 EXTMATCH
1232 C "[" "!([!]a[])" 0 EXTMATCH
1233 C "]" "!([!]a[])" 0 EXTMATCH
1234 C ")" "*([)])" 0 EXTMATCH
1235 C "*" "*([*(])" 0 EXTMATCH
1236 C "abcd" "*!(|a)cd" 0 EXTMATCH
1237 C "ab/.a" "+([abc])/*" NOMATCH EXTMATCH|PATHNAME|PERIOD
1240 C "" "*([abc])" 0 EXTMATCH
1241 C "" "?([abc])" 0 EXTMATCH
1243 # Duplicate the "ksh style matching." for C.UTF-8.
1244 C.UTF-8 "abcd" "?@(a|b)*@(c)d" 0 EXTMATCH
1245 C.UTF-8 "/dev/udp/129.22.8.102/45" "/dev/@(tcp|udp)/*/*" 0 PATHNAME|EXTMATCH
1246 C.UTF-8 "12" "[1-9]*([0-9])" 0 EXTMATCH
1247 C.UTF-8 "12abc" "[1-9]*([0-9])" NOMATCH EXTMATCH
1248 C.UTF-8 "1" "[1-9]*([0-9])" 0 EXTMATCH
1249 C.UTF-8 "07" "+([0-7])" 0 EXTMATCH
1250 C.UTF-8 "0377" "+([0-7])" 0 EXTMATCH
1251 C.UTF-8 "09" "+([0-7])" NOMATCH EXTMATCH
1252 C.UTF-8 "paragraph" "para@(chute|graph)" 0 EXTMATCH
1253 C.UTF-8 "paramour" "para@(chute|graph)" NOMATCH EXTMATCH
1254 C.UTF-8 "para991" "para?([345]|99)1" 0 EXTMATCH
1255 C.UTF-8 "para381" "para?([345]|99)1" NOMATCH EXTMATCH
1256 C.UTF-8 "paragraph" "para*([0-9])" NOMATCH EXTMATCH
1257 C.UTF-8 "para" "para*([0-9])" 0 EXTMATCH
1258 C.UTF-8 "para13829383746592" "para*([0-9])" 0 EXTMATCH
1259 C.UTF-8 "paragraph" "para+([0-9])" NOMATCH EXTMATCH
1260 C.UTF-8 "para" "para+([0-9])" NOMATCH EXTMATCH
1261 C.UTF-8 "para987346523" "para+([0-9])" 0 EXTMATCH
1262 C.UTF-8 "paragraph" "para!(*.[0-9])" 0 EXTMATCH
1263 C.UTF-8 "para.38" "para!(*.[0-9])" 0 EXTMATCH
1264 C.UTF-8 "para.graph" "para!(*.[0-9])" 0 EXTMATCH
1265 C.UTF-8 "para39" "para!(*.[0-9])" 0 EXTMATCH
1266 C.UTF-8 "" "*(0|1|3|5|7|9)" 0 EXTMATCH
1267 C.UTF-8 "137577991" "*(0|1|3|5|7|9)" 0 EXTMATCH
1268 C.UTF-8 "2468" "*(0|1|3|5|7|9)" NOMATCH EXTMATCH
1269 C.UTF-8 "1358" "*(0|1|3|5|7|9)" NOMATCH EXTMATCH
1270 C.UTF-8 "file.c" "*.c?(c)" 0 EXTMATCH
1271 C.UTF-8 "file.C" "*.c?(c)" NOMATCH EXTMATCH
1272 C.UTF-8 "file.cc" "*.c?(c)" 0 EXTMATCH
1273 C.UTF-8 "file.ccc" "*.c?(c)" NOMATCH EXTMATCH
1274 C.UTF-8 "parse.y" "!(*.c|*.h|Makefile.in|config*|README)" 0 EXTMATCH
1275 C.UTF-8 "shell.c" "!(*.c|*.h|Makefile.in|config*|README)" NOMATCH EXTMATCH
1276 C.UTF-8 "Makefile" "!(*.c|*.h|Makefile.in|config*|README)" 0 EXTMATCH
1277 C.UTF-8 "VMS.FILE;1" "*\;[1-9]*([0-9])" 0 EXTMATCH
1278 C.UTF-8 "VMS.FILE;0" "*\;[1-9]*([0-9])" NOMATCH EXTMATCH
1279 C.UTF-8 "VMS.FILE;" "*\;[1-9]*([0-9])" NOMATCH EXTMATCH
1280 C.UTF-8 "VMS.FILE;139" "*\;[1-9]*([0-9])" 0 EXTMATCH
1281 C.UTF-8 "VMS.FILE;1N" "*\;[1-9]*([0-9])" NOMATCH EXTMATCH
1282 C.UTF-8 "abcfefg" "ab**(e|f)" 0 EXTMATCH
1283 C.UTF-8 "abcfefg" "ab**(e|f)g" 0 EXTMATCH
1284 C.UTF-8 "ab" "ab*+(e|f)" NOMATCH EXTMATCH
1285 C.UTF-8 "abef" "ab***ef" 0 EXTMATCH
1286 C.UTF-8 "abef" "ab**" 0 EXTMATCH
1287 C.UTF-8 "fofo" "*(f*(o))" 0 EXTMATCH
1288 C.UTF-8 "ffo" "*(f*(o))" 0 EXTMATCH
1289 C.UTF-8 "foooofo" "*(f*(o))" 0 EXTMATCH
1290 C.UTF-8 "foooofof" "*(f*(o))" 0 EXTMATCH
1291 C.UTF-8 "fooofoofofooo" "*(f*(o))" 0 EXTMATCH
1292 C.UTF-8 "foooofof" "*(f+(o))" NOMATCH EXTMATCH
1293 C.UTF-8 "xfoooofof" "*(f*(o))" NOMATCH EXTMATCH
1294 C.UTF-8 "foooofofx" "*(f*(o))" NOMATCH EXTMATCH
1295 C.UTF-8 "ofxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
1296 C.UTF-8 "ofooofoofofooo" "*(f*(o))" NOMATCH EXTMATCH
1297 C.UTF-8 "foooxfooxfoxfooox" "*(f*(o)x)" 0 EXTMATCH
1298 C.UTF-8 "foooxfooxofoxfooox" "*(f*(o)x)" NOMATCH EXTMATCH
1299 C.UTF-8 "foooxfooxfxfooox" "*(f*(o)x)" 0 EXTMATCH
1300 C.UTF-8 "ofxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
1301 C.UTF-8 "ofoooxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
1302 C.UTF-8 "ofoooxoofxoofoooxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
1303 C.UTF-8 "ofoooxoofxoofoooxoofxoo" "*(*(of*(o)x)o)" 0 EXTMATCH
1304 C.UTF-8 "ofoooxoofxoofoooxoofxofo" "*(*(of*(o)x)o)" NOMATCH EXTMATCH
1305 C.UTF-8 "ofoooxoofxoofoooxoofxooofxofxo" "*(*(of*(o)x)o)" 0 EXTMATCH
1306 C.UTF-8 "aac" "*(@(a))a@(c)" 0 EXTMATCH
1307 C.UTF-8 "ac" "*(@(a))a@(c)" 0 EXTMATCH
1308 C.UTF-8 "c" "*(@(a))a@(c)" NOMATCH EXTMATCH
1309 C.UTF-8 "aaac" "*(@(a))a@(c)" 0 EXTMATCH
1310 C.UTF-8 "baaac" "*(@(a))a@(c)" NOMATCH EXTMATCH
1311 C.UTF-8 "abcd" "?@(a|b)*@(c)d" 0 EXTMATCH
1312 C.UTF-8 "abcd" "@(ab|a*@(b))*(c)d" 0 EXTMATCH
1313 C.UTF-8 "acd" "@(ab|a*(b))*(c)d" 0 EXTMATCH
1314 C.UTF-8 "abbcd" "@(ab|a*(b))*(c)d" 0 EXTMATCH
1315 C.UTF-8 "effgz" "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1316 C.UTF-8 "efgz" "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1317 C.UTF-8 "egz" "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1318 C.UTF-8 "egzefffgzbcdij" "*(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1319 C.UTF-8 "egz" "@(b+(c)d|e+(f)g?|?(h)i@(j|k))" NOMATCH EXTMATCH
1320 C.UTF-8 "ofoofo" "*(of+(o))" 0 EXTMATCH
1321 C.UTF-8 "oxfoxoxfox" "*(oxf+(ox))" 0 EXTMATCH
1322 C.UTF-8 "oxfoxfox" "*(oxf+(ox))" NOMATCH EXTMATCH
1323 C.UTF-8 "ofoofo" "*(of+(o)|f)" 0 EXTMATCH
1324 C.UTF-8 "foofoofo" "@(foo|f|fo)*(f|of+(o))" 0 EXTMATCH
1325 C.UTF-8 "oofooofo" "*(of|oof+(o))" 0 EXTMATCH
1326 C.UTF-8 "fffooofoooooffoofffooofff" "*(*(f)*(o))" 0 EXTMATCH
1327 C.UTF-8 "fofoofoofofoo" "*(fo|foo)" 0 EXTMATCH
1328 C.UTF-8 "foo" "!(x)" 0 EXTMATCH
1329 C.UTF-8 "foo" "!(x)*" 0 EXTMATCH
1330 C.UTF-8 "foo" "!(foo)" NOMATCH EXTMATCH
1331 C.UTF-8 "foo" "!(foo)*" 0 EXTMATCH
1332 C.UTF-8 "foobar" "!(foo)" 0 EXTMATCH
1333 C.UTF-8 "foobar" "!(foo)*" 0 EXTMATCH
1334 C.UTF-8 "moo.cow" "!(*.*).!(*.*)" 0 EXTMATCH
1335 C.UTF-8 "mad.moo.cow" "!(*.*).!(*.*)" NOMATCH EXTMATCH
1336 C.UTF-8 "mucca.pazza" "mu!(*(c))?.pa!(*(z))?" NOMATCH EXTMATCH
1337 C.UTF-8 "fff" "!(f)" 0 EXTMATCH
1338 C.UTF-8 "fff" "*(!(f))" 0 EXTMATCH
1339 C.UTF-8 "fff" "+(!(f))" 0 EXTMATCH
1340 C.UTF-8 "ooo" "!(f)" 0 EXTMATCH
1341 C.UTF-8 "ooo" "*(!(f))" 0 EXTMATCH
1342 C.UTF-8 "ooo" "+(!(f))" 0 EXTMATCH
1343 C.UTF-8 "foo" "!(f)" 0 EXTMATCH
1344 C.UTF-8 "foo" "*(!(f))" 0 EXTMATCH
1345 C.UTF-8 "foo" "+(!(f))" 0 EXTMATCH
1346 C.UTF-8 "f" "!(f)" NOMATCH EXTMATCH
1347 C.UTF-8 "f" "*(!(f))" NOMATCH EXTMATCH
1348 C.UTF-8 "f" "+(!(f))" NOMATCH EXTMATCH
1349 C.UTF-8 "foot" "@(!(z*)|*x)" 0 EXTMATCH
1350 C.UTF-8 "zoot" "@(!(z*)|*x)" NOMATCH EXTMATCH
1351 C.UTF-8 "foox" "@(!(z*)|*x)" 0 EXTMATCH
1352 C.UTF-8 "zoox" "@(!(z*)|*x)" 0 EXTMATCH
1353 C.UTF-8 "foo" "*(!(foo))" 0 EXTMATCH
1354 C.UTF-8 "foob" "!(foo)b*" NOMATCH EXTMATCH
1355 C.UTF-8 "foobb" "!(foo)b*" 0 EXTMATCH
1356 C.UTF-8 "[" "*([a[])" 0 EXTMATCH
1357 C.UTF-8 "]" "*([]a[])" 0 EXTMATCH
1358 C.UTF-8 "a" "*([]a[])" 0 EXTMATCH
1359 C.UTF-8 "b" "*([!]a[])" 0 EXTMATCH
1360 C.UTF-8 "[" "*([!]a[]|[[])" 0 EXTMATCH
1361 C.UTF-8 "]" "*([!]a[]|[]])" 0 EXTMATCH
1362 C.UTF-8 "[" "!([!]a[])" 0 EXTMATCH
1363 C.UTF-8 "]" "!([!]a[])" 0 EXTMATCH
1364 C.UTF-8 ")" "*([)])" 0 EXTMATCH
1365 C.UTF-8 "*" "*([*(])" 0 EXTMATCH
1366 C.UTF-8 "abcd" "*!(|a)cd" 0 EXTMATCH
1367 C.UTF-8 "ab/.a" "+([abc])/*" NOMATCH EXTMATCH|PATHNAME|PERIOD
1369 C.UTF-8 "" "" 0 EXTMATCH
1370 C.UTF-8 "" "*([abc])" 0 EXTMATCH
1371 C.UTF-8 "" "?([abc])" 0 EXTMATCH