--- /dev/null
+# This file tests the auxiliary pattern conversion features of the PCRE2
+# library, in non-UTF mode.
+
+#forbid_utf
+#newline_default lf any anycrlf
+
+# -------- Tests of glob conversion --------
+
+# Set the glob separator explicitly so that different OS defaults are not a
+# problem. Then test various errors.
+
+#pattern convert=glob,convert_glob_escape=\,convert_glob_separator=/
+
+/abc/posix
+
+# Separator must be / \ or .
+
+/a*b/convert_glob_separator=%
+
+# Can't have separator in a class
+
+"[ab/cd]"
+
+"[,-/]"
+
+/[ab/
+
+# Length check
+
+/abc/convert_length=11
+
+/abc/convert_length=12
+
+# Now some actual tests
+
+/a?b[]xy]*c/
+ azb]1234c
+
+# Tests from the gitwildmatch list, with some additions
+
+/foo/
+ foo
+/= Expect no match
+ bar
+
+//
+ \
+
+/???/
+ foo
+\= Expect no match
+ foobar
+
+/*/
+ foo
+ \
+
+/f*/
+ foo
+ f
+
+/*f/
+ oof
+\= Expect no match
+ foo
+
+/*foo*/
+ foo
+ food
+ aprilfool
+
+/*ob*a*r*/
+ foobar
+
+/*ab/
+ aaaaaaabababab
+
+/foo\*/
+ foo*
+
+/foo\*bar/
+\= Expect no match
+ foobar
+
+/f\\oo/
+ f\\oo
+
+/*[al]?/
+ ball
+
+/[ten]/
+\= Expect no match
+ ten
+
+/t[a-g]n/
+ ten
+
+/a[]]b/
+ a]b
+
+/a[]a-]b/
+
+/a[]-]b/
+ a-b
+ a]b
+\= Expect no match
+ aab
+
+/a[]a-z]b/
+ aab
+
+/]/
+ ]
+
+/t[!a-g]n/
+ ton
+\= Expect no match
+ ten
+
+'[[:alpha:]][[:digit:]][[:upper:]]'
+ a1B
+
+'[[:digit:][:upper:][:space:]]'
+ A
+ 1
+ \ \=
+\= Expect no match
+ a
+ .
+
+'[a-c[:digit:]x-z]'
+ 5
+ b
+ y
+\= Expect no match
+ q
+
+# End of gitwildmatch tests
+
+/*.j?g/
+ pic01.jpg
+ .jpg
+ pic02.jxg
+\= Expect no match
+ pic03.j/g
+
+/A[+-0]B/
+ A+B
+ A.B
+ A0B
+\= Expect no match
+ A/B
+
+/*x?z/
+ abc.xyz
+\= Expect no match
+ .xyz
+
+/?x?z/
+ axyz
+\= Expect no match
+ .xyz
+
+"[,-0]x?z"
+ ,xyz
+\= Expect no match
+ /xyz
+ .xyz
+
+".x*"
+ .xabc
+
+/a[--0]z/
+ a-z
+ a.z
+ a0z
+\= Expect no match
+ a/z
+ a1z
+
+/<[a-c-d]>/
+ <a>
+ <b>
+ <c>
+ <d>
+ <->
+
+/a[[:digit:].]z/
+ a1z
+ a.z
+\= Expect no match
+ a:z
+
+/a[[:digit].]z/
+ a[.]z
+ a:.]z
+ ad.]z
+
+/<[[:a[:digit:]b]>/
+ <[>
+ <:>
+ <a>
+ <9>
+ <b>
+\= Expect no match
+ <d>
+
+/a*b/convert_glob_separator=\
+
+/a*b/convert_glob_separator=.
+
+/a*b/convert_glob_separator=/
+
+# Non control character checking
+
+/A\B\\C\D/
+
+/\\{}\?\*+\[\]()|.^$/
+
+/*a*\/*b*/
+
+/?a?\/?b?/
+
+/[a\\b\c][]][-][\]\-]/
+
+/[^a\\b\c][!]][!-][^\]\-]/
+
+/[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:word:][:xdigit:]]/
+
+"[/-/]"
+
+/[-----]/
+
+/[------]/
+
+/[!------]/
+
+/[[:alpha:]-a]/
+
+/[[:alpha:]][[:punct:]][[:ascii:]]/
+
+/[a-[:alpha:]]/
+
+/[[:alpha:/
+
+/[[:alpha:]/
+
+/[[:alphaa:]]/
+
+/[[:xdigi:]]/
+
+/[[:xdigit::]]/
+
+/****/
+
+/**\/abc/
+ abc
+ x/abc
+ xabc
+
+/abc\/**/
+
+/abc\/**\/abc/
+
+/**\/*a*b*g*n*t/
+ abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt
+
+/**\/*a*\/**/
+ xx/xx/xx/xax/xx/xb
+
+/**\/*a*/
+ xx/xx/xx/xax
+ xx/xx/xx/xax/xx
+
+/**\/*a*\/**\/*b*/
+ xx/xx/xx/xax/xx/xb
+ xx/xx/xx/xax/xx/x
+
+"**a"convert=glob
+ a
+ c/b/a
+ c/b/aaa
+
+"a**/b"convert=glob
+ a/b
+ ab
+
+"a/**b"convert=glob
+ a/b
+ ab
+
+#pattern convert=glob:glob_no_starstar
+
+/***/
+
+/**a**/
+
+#pattern convert=unset
+#pattern convert=glob:glob_no_wild_separator
+
+/*/
+
+/*a*/
+
+/**a**/
+
+/a*b/
+
+/*a*b*/
+
+/??a??/
+
+#pattern convert=unset
+#pattern convert=glob,convert_glob_escape=0
+
+/a\b\cd/
+
+/**\/a/
+
+/a`*b/convert_glob_escape=`
+
+/a`*b/convert_glob_escape=0
+
+/a`*b/convert_glob_escape=x
+
+# -------- Tests of extended POSIX conversion --------
+
+#pattern convert=unset:posix_extended
+
+/<[[:a[:digit:]b]>/
+ <[>
+ <:>
+ <a>
+ <9>
+ <b>
+\= Expect no match
+ <d>
+
+/a+\1b\\c|d[ab\c]/
+
+/<[]bc]>/
+ <]>
+ <b>
+ <c>
+
+/<[^]bc]>/
+ <.>
+\= Expect no match
+ <]>
+ <b>
+
+/(a)\1b/
+ a1b
+\= Expect no match
+ aab
+
+/(ab)c)d]/
+ Xabc)d]Y
+
+/a***b/
+
+# -------- Tests of basic POSIX conversion --------
+
+#pattern convert=unset:posix_basic
+
+/a*b+c\+[def](ab)\(cd\)/
+
+/\(a\)\1b/
+ aab
+\= Expect no match
+ a1b
+
+/how.to how\.to/
+ how\nto how.to
+\= Expect no match
+ how\x{0}to how.to
+
+/^how to \^how to/
+
+/^*abc/
+
+/*abc/
+ X*abcY
+
+/**abc/
+ XabcY
+ X*abcY
+ X**abcY
+
+/*ab\(*cd\)/
+
+/^b\(c^d\)\(^e^f\)/
+
+/a***b/
+
+# End of testinput24