add PIRegularExpression
This commit is contained in:
624
3rd/pcre2/testdata/testoutput24
vendored
Normal file
624
3rd/pcre2/testdata/testoutput24
vendored
Normal file
@@ -0,0 +1,624 @@
|
||||
# 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
|
||||
** The convert and posix modifiers are mutually exclusive
|
||||
|
||||
# Separator must be / \ or .
|
||||
|
||||
/a*b/convert_glob_separator=%
|
||||
** Invalid glob separator '%'
|
||||
|
||||
# Can't have separator in a class
|
||||
|
||||
"[ab/cd]"
|
||||
(?s)\A[ab/cd](?<!/)\z
|
||||
|
||||
"[,-/]"
|
||||
(?s)\A[,-/](?<!/)\z
|
||||
|
||||
/[ab/
|
||||
** Pattern conversion error at offset 3: missing terminating ] for character class
|
||||
|
||||
# Length check
|
||||
|
||||
/abc/convert_length=11
|
||||
** Pattern conversion error at offset 3: no more memory
|
||||
|
||||
/abc/convert_length=12
|
||||
(?s)\Aabc\z
|
||||
|
||||
# Now some actual tests
|
||||
|
||||
/a?b[]xy]*c/
|
||||
(?s)\Aa[^/]b[\]xy](*COMMIT)[^/]*?c\z
|
||||
azb]1234c
|
||||
0: azb]1234c
|
||||
|
||||
# Tests from the gitwildmatch list, with some additions
|
||||
|
||||
/foo/
|
||||
(?s)\Afoo\z
|
||||
foo
|
||||
0: foo
|
||||
/= Expect no match
|
||||
No match
|
||||
bar
|
||||
No match
|
||||
|
||||
//
|
||||
(?s)\A\z
|
||||
\
|
||||
0:
|
||||
|
||||
/???/
|
||||
(?s)\A[^/][^/][^/]\z
|
||||
foo
|
||||
0: foo
|
||||
\= Expect no match
|
||||
foobar
|
||||
No match
|
||||
|
||||
/*/
|
||||
(?s)\A[^/]*+\z
|
||||
foo
|
||||
0: foo
|
||||
\
|
||||
0:
|
||||
|
||||
/f*/
|
||||
(?s)\Af(*COMMIT)[^/]*+\z
|
||||
foo
|
||||
0: foo
|
||||
f
|
||||
0: f
|
||||
|
||||
/*f/
|
||||
(?s)\A[^/]*?f\z
|
||||
oof
|
||||
0: oof
|
||||
\= Expect no match
|
||||
foo
|
||||
No match
|
||||
|
||||
/*foo*/
|
||||
(?s)\A[^/]*?foo(*COMMIT)[^/]*+\z
|
||||
foo
|
||||
0: foo
|
||||
food
|
||||
0: food
|
||||
aprilfool
|
||||
0: aprilfool
|
||||
|
||||
/*ob*a*r*/
|
||||
(?s)\A[^/]*?ob(*COMMIT)[^/]*?a(*COMMIT)[^/]*?r(*COMMIT)[^/]*+\z
|
||||
foobar
|
||||
0: foobar
|
||||
|
||||
/*ab/
|
||||
(?s)\A[^/]*?ab\z
|
||||
aaaaaaabababab
|
||||
0: aaaaaaabababab
|
||||
|
||||
/foo\*/
|
||||
(?s)\Afoo\*\z
|
||||
foo*
|
||||
0: foo*
|
||||
|
||||
/foo\*bar/
|
||||
(?s)\Afoo\*bar\z
|
||||
\= Expect no match
|
||||
foobar
|
||||
No match
|
||||
|
||||
/f\\oo/
|
||||
(?s)\Af\\oo\z
|
||||
f\\oo
|
||||
0: f\oo
|
||||
|
||||
/*[al]?/
|
||||
(?s)\A[^/]*?[al][^/]\z
|
||||
ball
|
||||
0: ball
|
||||
|
||||
/[ten]/
|
||||
(?s)\A[ten]\z
|
||||
\= Expect no match
|
||||
ten
|
||||
No match
|
||||
|
||||
/t[a-g]n/
|
||||
(?s)\At[a-g]n\z
|
||||
ten
|
||||
0: ten
|
||||
|
||||
/a[]]b/
|
||||
(?s)\Aa[\]]b\z
|
||||
a]b
|
||||
0: a]b
|
||||
|
||||
/a[]a-]b/
|
||||
(?s)\Aa[\]a\-]b\z
|
||||
|
||||
/a[]-]b/
|
||||
(?s)\Aa[\]\-]b\z
|
||||
a-b
|
||||
0: a-b
|
||||
a]b
|
||||
0: a]b
|
||||
\= Expect no match
|
||||
aab
|
||||
No match
|
||||
|
||||
/a[]a-z]b/
|
||||
(?s)\Aa[\]a-z]b\z
|
||||
aab
|
||||
0: aab
|
||||
|
||||
/]/
|
||||
(?s)\A\]\z
|
||||
]
|
||||
0: ]
|
||||
|
||||
/t[!a-g]n/
|
||||
(?s)\At[^/a-g]n\z
|
||||
ton
|
||||
0: ton
|
||||
\= Expect no match
|
||||
ten
|
||||
No match
|
||||
|
||||
'[[:alpha:]][[:digit:]][[:upper:]]'
|
||||
(?s)\A[[:alpha:]][[:digit:]][[:upper:]]\z
|
||||
a1B
|
||||
0: a1B
|
||||
|
||||
'[[:digit:][:upper:][:space:]]'
|
||||
(?s)\A[[:digit:][:upper:][:space:]]\z
|
||||
A
|
||||
0: A
|
||||
1
|
||||
0: 1
|
||||
\ \=
|
||||
0:
|
||||
\= Expect no match
|
||||
a
|
||||
No match
|
||||
.
|
||||
No match
|
||||
|
||||
'[a-c[:digit:]x-z]'
|
||||
(?s)\A[a-c[:digit:]x-z]\z
|
||||
5
|
||||
0: 5
|
||||
b
|
||||
0: b
|
||||
y
|
||||
0: y
|
||||
\= Expect no match
|
||||
q
|
||||
No match
|
||||
|
||||
# End of gitwildmatch tests
|
||||
|
||||
/*.j?g/
|
||||
(?s)\A[^/]*?\.j[^/]g\z
|
||||
pic01.jpg
|
||||
0: pic01.jpg
|
||||
.jpg
|
||||
0: .jpg
|
||||
pic02.jxg
|
||||
0: pic02.jxg
|
||||
\= Expect no match
|
||||
pic03.j/g
|
||||
No match
|
||||
|
||||
/A[+-0]B/
|
||||
(?s)\AA[+-0](?<!/)B\z
|
||||
A+B
|
||||
0: A+B
|
||||
A.B
|
||||
0: A.B
|
||||
A0B
|
||||
0: A0B
|
||||
\= Expect no match
|
||||
A/B
|
||||
No match
|
||||
|
||||
/*x?z/
|
||||
(?s)\A[^/]*?x[^/]z\z
|
||||
abc.xyz
|
||||
0: abc.xyz
|
||||
\= Expect no match
|
||||
.xyz
|
||||
0: .xyz
|
||||
|
||||
/?x?z/
|
||||
(?s)\A[^/]x[^/]z\z
|
||||
axyz
|
||||
0: axyz
|
||||
\= Expect no match
|
||||
.xyz
|
||||
0: .xyz
|
||||
|
||||
"[,-0]x?z"
|
||||
(?s)\A[,-0](?<!/)x[^/]z\z
|
||||
,xyz
|
||||
0: ,xyz
|
||||
\= Expect no match
|
||||
/xyz
|
||||
No match
|
||||
.xyz
|
||||
0: .xyz
|
||||
|
||||
".x*"
|
||||
(?s)\A\.x(*COMMIT)[^/]*+\z
|
||||
.xabc
|
||||
0: .xabc
|
||||
|
||||
/a[--0]z/
|
||||
(?s)\Aa[\--0](?<!/)z\z
|
||||
a-z
|
||||
0: a-z
|
||||
a.z
|
||||
0: a.z
|
||||
a0z
|
||||
0: a0z
|
||||
\= Expect no match
|
||||
a/z
|
||||
No match
|
||||
a1z
|
||||
No match
|
||||
|
||||
/<[a-c-d]>/
|
||||
(?s)\A<[a-c\-d]>\z
|
||||
<a>
|
||||
0: <a>
|
||||
<b>
|
||||
0: <b>
|
||||
<c>
|
||||
0: <c>
|
||||
<d>
|
||||
0: <d>
|
||||
<->
|
||||
0: <->
|
||||
|
||||
/a[[:digit:].]z/
|
||||
(?s)\Aa[[:digit:].]z\z
|
||||
a1z
|
||||
0: a1z
|
||||
a.z
|
||||
0: a.z
|
||||
\= Expect no match
|
||||
a:z
|
||||
No match
|
||||
|
||||
/a[[:digit].]z/
|
||||
(?s)\Aa[\[:digit]\.\]z\z
|
||||
a[.]z
|
||||
0: a[.]z
|
||||
a:.]z
|
||||
0: a:.]z
|
||||
ad.]z
|
||||
0: ad.]z
|
||||
|
||||
/<[[:a[:digit:]b]>/
|
||||
(?s)\A<[\[:a[:digit:]b]>\z
|
||||
<[>
|
||||
0: <[>
|
||||
<:>
|
||||
0: <:>
|
||||
<a>
|
||||
0: <a>
|
||||
<9>
|
||||
0: <9>
|
||||
<b>
|
||||
0: <b>
|
||||
\= Expect no match
|
||||
<d>
|
||||
No match
|
||||
|
||||
/a*b/convert_glob_separator=\
|
||||
(?s)\Aa(*COMMIT)[^\\]*?b\z
|
||||
|
||||
/a*b/convert_glob_separator=.
|
||||
(?s)\Aa(*COMMIT)[^\.]*?b\z
|
||||
|
||||
/a*b/convert_glob_separator=/
|
||||
(?s)\Aa(*COMMIT)[^/]*?b\z
|
||||
|
||||
# Non control character checking
|
||||
|
||||
/A\B\\C\D/
|
||||
(?s)\AAB\\CD\z
|
||||
|
||||
/\\{}\?\*+\[\]()|.^$/
|
||||
(?s)\A\\\{\}\?\*\+\[\]\(\)\|\.\^\$\z
|
||||
|
||||
/*a*\/*b*/
|
||||
(?s)\A[^/]*?a(*COMMIT)[^/]*?/(*COMMIT)[^/]*?b(*COMMIT)[^/]*+\z
|
||||
|
||||
/?a?\/?b?/
|
||||
(?s)\A[^/]a[^/]/[^/]b[^/]\z
|
||||
|
||||
/[a\\b\c][]][-][\]\-]/
|
||||
(?s)\A[a\\bc][\]][\-][\]\-]\z
|
||||
|
||||
/[^a\\b\c][!]][!-][^\]\-]/
|
||||
(?s)\A[^/a\\bc][^/\]][^/\-][^/\]\-]\z
|
||||
|
||||
/[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:word:][:xdigit:]]/
|
||||
(?s)\A[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:word:][:xdigit:]](?<!/)\z
|
||||
|
||||
"[/-/]"
|
||||
(?s)\A[/-/](?<!/)\z
|
||||
|
||||
/[-----]/
|
||||
(?s)\A[\--\-\-\-]\z
|
||||
|
||||
/[------]/
|
||||
(?s)\A[\--\-\--\-]\z
|
||||
|
||||
/[!------]/
|
||||
(?s)\A[^/\--\-\--\-]\z
|
||||
|
||||
/[[:alpha:]-a]/
|
||||
(?s)\A[[:alpha:]\-a]\z
|
||||
|
||||
/[[:alpha:]][[:punct:]][[:ascii:]]/
|
||||
(?s)\A[[:alpha:]][[:punct:]](?<!/)[[:ascii:]](?<!/)\z
|
||||
|
||||
/[a-[:alpha:]]/
|
||||
** Pattern conversion error at offset 4: invalid syntax
|
||||
|
||||
/[[:alpha:/
|
||||
** Pattern conversion error at offset 9: missing terminating ] for character class
|
||||
|
||||
/[[:alpha:]/
|
||||
** Pattern conversion error at offset 10: missing terminating ] for character class
|
||||
|
||||
/[[:alphaa:]]/
|
||||
(?s)\A[\[:alphaa:]\]\z
|
||||
|
||||
/[[:xdigi:]]/
|
||||
(?s)\A[\[:xdigi:]\]\z
|
||||
|
||||
/[[:xdigit::]]/
|
||||
(?s)\A[\[:xdigit::]\]\z
|
||||
|
||||
/****/
|
||||
(?s)
|
||||
|
||||
/**\/abc/
|
||||
(?s)(?:\A|/)abc\z
|
||||
abc
|
||||
0: abc
|
||||
x/abc
|
||||
0: /abc
|
||||
xabc
|
||||
No match
|
||||
|
||||
/abc\/**/
|
||||
(?s)\Aabc/
|
||||
|
||||
/abc\/**\/abc/
|
||||
(?s)\Aabc/(*COMMIT)(?:.*?/)??abc\z
|
||||
|
||||
/**\/*a*b*g*n*t/
|
||||
(?s)(?:\A|/)(?>[^/]*?a)(?>[^/]*?b)(?>[^/]*?g)(?>[^/]*?n)(?>[^/]*?t\z)
|
||||
abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt
|
||||
0: /abcdefghijklmnop.txt
|
||||
|
||||
/**\/*a*\/**/
|
||||
(?s)(?:\A|/)(?>[^/]*?a)(?>[^/]*?/)
|
||||
xx/xx/xx/xax/xx/xb
|
||||
0: /xax/
|
||||
|
||||
/**\/*a*/
|
||||
(?s)(?:\A|/)(?>[^/]*?a)(?>[^/]*+\z)
|
||||
xx/xx/xx/xax
|
||||
0: /xax
|
||||
xx/xx/xx/xax/xx
|
||||
No match
|
||||
|
||||
/**\/*a*\/**\/*b*/
|
||||
(?s)(?:\A|/)(?>[^/]*?a)(?>[^/]*?/)(*COMMIT)(?:.*?/)??(?>[^/]*?b)(?>[^/]*+\z)
|
||||
xx/xx/xx/xax/xx/xb
|
||||
0: /xax/xx/xb
|
||||
xx/xx/xx/xax/xx/x
|
||||
No match
|
||||
|
||||
"**a"convert=glob
|
||||
(?s)a\z
|
||||
a
|
||||
0: a
|
||||
c/b/a
|
||||
0: a
|
||||
c/b/aaa
|
||||
0: a
|
||||
|
||||
"a**/b"convert=glob
|
||||
(?s)\Aa(*COMMIT).*?/b\z
|
||||
a/b
|
||||
0: a/b
|
||||
ab
|
||||
No match
|
||||
|
||||
"a/**b"convert=glob
|
||||
(?s)\Aa/(*COMMIT).*?b\z
|
||||
a/b
|
||||
0: a/b
|
||||
ab
|
||||
No match
|
||||
|
||||
#pattern convert=glob:glob_no_starstar
|
||||
|
||||
/***/
|
||||
(?s)\A[^/]*+\z
|
||||
|
||||
/**a**/
|
||||
(?s)\A[^/]*?a(*COMMIT)[^/]*+\z
|
||||
|
||||
#pattern convert=unset
|
||||
#pattern convert=glob:glob_no_wild_separator
|
||||
|
||||
/*/
|
||||
(?s)
|
||||
|
||||
/*a*/
|
||||
(?s)a
|
||||
|
||||
/**a**/
|
||||
(?s)a
|
||||
|
||||
/a*b/
|
||||
(?s)\Aa(*COMMIT).*?b\z
|
||||
|
||||
/*a*b*/
|
||||
(?s)a(*COMMIT).*?b
|
||||
|
||||
/??a??/
|
||||
(?s)\A..a..\z
|
||||
|
||||
#pattern convert=unset
|
||||
#pattern convert=glob,convert_glob_escape=0
|
||||
|
||||
/a\b\cd/
|
||||
(?s)\Aa\\b\\cd\z
|
||||
|
||||
/**\/a/
|
||||
(?s)\\/a\z
|
||||
|
||||
/a`*b/convert_glob_escape=`
|
||||
(?s)\Aa\*b\z
|
||||
|
||||
/a`*b/convert_glob_escape=0
|
||||
(?s)\Aa`(*COMMIT)[^/]*?b\z
|
||||
|
||||
/a`*b/convert_glob_escape=x
|
||||
** Invalid glob escape 'x'
|
||||
|
||||
# -------- Tests of extended POSIX conversion --------
|
||||
|
||||
#pattern convert=unset:posix_extended
|
||||
|
||||
/<[[:a[:digit:]b]>/
|
||||
(*NUL)<[[:a[:digit:]b]>
|
||||
<[>
|
||||
0: <[>
|
||||
<:>
|
||||
0: <:>
|
||||
<a>
|
||||
0: <a>
|
||||
<9>
|
||||
0: <9>
|
||||
<b>
|
||||
0: <b>
|
||||
\= Expect no match
|
||||
<d>
|
||||
No match
|
||||
|
||||
/a+\1b\\c|d[ab\c]/
|
||||
(*NUL)a+1b\\c|d[ab\\c]
|
||||
|
||||
/<[]bc]>/
|
||||
(*NUL)<[]bc]>
|
||||
<]>
|
||||
0: <]>
|
||||
<b>
|
||||
0: <b>
|
||||
<c>
|
||||
0: <c>
|
||||
|
||||
/<[^]bc]>/
|
||||
(*NUL)<[^]bc]>
|
||||
<.>
|
||||
0: <.>
|
||||
\= Expect no match
|
||||
<]>
|
||||
No match
|
||||
<b>
|
||||
No match
|
||||
|
||||
/(a)\1b/
|
||||
(*NUL)(a)1b
|
||||
a1b
|
||||
0: a1b
|
||||
1: a
|
||||
\= Expect no match
|
||||
aab
|
||||
No match
|
||||
|
||||
/(ab)c)d]/
|
||||
(*NUL)(ab)c\)d\]
|
||||
Xabc)d]Y
|
||||
0: abc)d]
|
||||
1: ab
|
||||
|
||||
/a***b/
|
||||
(*NUL)a*b
|
||||
|
||||
# -------- Tests of basic POSIX conversion --------
|
||||
|
||||
#pattern convert=unset:posix_basic
|
||||
|
||||
/a*b+c\+[def](ab)\(cd\)/
|
||||
(*NUL)a*b\+c\+[def]\(ab\)(cd)
|
||||
|
||||
/\(a\)\1b/
|
||||
(*NUL)(a)\1b
|
||||
aab
|
||||
0: aab
|
||||
1: a
|
||||
\= Expect no match
|
||||
a1b
|
||||
No match
|
||||
|
||||
/how.to how\.to/
|
||||
(*NUL)how.to how\.to
|
||||
how\nto how.to
|
||||
0: how\x0ato how.to
|
||||
\= Expect no match
|
||||
how\x{0}to how.to
|
||||
No match
|
||||
|
||||
/^how to \^how to/
|
||||
(*NUL)^how to \^how to
|
||||
|
||||
/^*abc/
|
||||
(*NUL)^\*abc
|
||||
|
||||
/*abc/
|
||||
(*NUL)\*abc
|
||||
X*abcY
|
||||
0: *abc
|
||||
|
||||
/**abc/
|
||||
(*NUL)\**abc
|
||||
XabcY
|
||||
0: abc
|
||||
X*abcY
|
||||
0: *abc
|
||||
X**abcY
|
||||
0: **abc
|
||||
|
||||
/*ab\(*cd\)/
|
||||
(*NUL)\*ab(\*cd)
|
||||
|
||||
/^b\(c^d\)\(^e^f\)/
|
||||
(*NUL)^b(c\^d)(^e\^f)
|
||||
|
||||
/a***b/
|
||||
(*NUL)a*b
|
||||
|
||||
# End of testinput24
|
||||
Reference in New Issue
Block a user