403Webshell
Server IP : 104.21.38.3  /  Your IP : 162.158.171.22
Web Server : Apache
System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64
User : www ( 1000)
PHP Version : 7.4.33
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /www/server/mysql/src/regex/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/server/mysql/src/regex/tests_include.h
const char *test_array[] =
{
  "# regular expression test set",
  "# Lines are at least three fields, separated by one or more tabs.  \"\" stands",
  "# for an empty field.  First field is an RE.  Second field is flags.  If",
  "# C flag given, regcomp() is expected to fail, and the third field is the",
  "# error name (minus the leading REG_).",
  "#",
  "# Otherwise it is expected to succeed, and the third field is the string to",
  "# try matching it against.  If there is no fourth field, the match is",
  "# expected to fail.  If there is a fourth field, it is the substring that",
  "# the RE is expected to match.  If there is a fifth field, it is a comma-",
  "# separated list of what the subexpressions should match, with - indicating",
  "# no match for that one.  In both the fourth and fifth fields, a (sub)field",
  "# starting with @ indicates that the (sub)expression is expected to match",
  "# a null string followed by the stuff after the @; this provides a way to",
  "# test where null strings match.  The character `N' in REs and strings",
  "# is newline, `S' is space, `T' is tab, `Z' is NUL.",
  "#",
  "# The full list of flags:",
  "#	-	placeholder, does nothing",
  "#	b	RE is a BRE, not an ERE",
  "#	&	try it as both an ERE and a BRE",
  "#	C	regcomp() error expected, third field is error name",
  "#	i	REG_ICASE",
  "#	m	(\"mundane\") REG_NOSPEC",
  "#	s	REG_NOSUB (not really testable)",
  "#	n	REG_NEWLINE",
  "#	^	REG_NOTBOL",
  "#	$	REG_NOTEOL",
  "#	#	REG_STARTEND (see below)",
  "#	p	REG_PEND",
  "#",
  "# For REG_STARTEND, the start/end offsets are those of the substring",
  "# enclosed in ().",
  "",
  "# basics",
  "a		&	a	a",
  "abc		&	abc	abc",
  "abc|de		-	abc	abc",
  "a|b|c		-	abc	a",
  "",
  "# parentheses and perversions thereof",
  "a(b)c		-	abc	abc",
  "a\\(b\\)c		b	abc	abc",
  "a(		C	EPAREN",
  "a(		b	a(	a(",
  "a\\(		-	a(	a(",
  "a\\(		bC	EPAREN",
  "a\\(b		bC	EPAREN",
  "a(b		C	EPAREN",
  "a(b		b	a(b	a(b",
  "# gag me with a right parenthesis -- 1003.2 goofed here (my fault, partly)",
  "a)		-	a)	a)",
  ")		-	)	)",
  "# end gagging (in a just world, those *should* give EPAREN)",
  "a)		b	a)	a)",
  "a\\)		bC	EPAREN",
  "\\)		bC	EPAREN",
  "a()b		-	ab	ab",
  "a\\(\\)b		b	ab	ab",
  "",
  "# anchoring and REG_NEWLINE",
  "^abc$		&	abc	abc",
  "a^b		-	a^b",
  "a^b		b	a^b	a^b",
  "a$b		-	a$b",
  "a$b		b	a$b	a$b",
  "^		&	abc	@abc",
  "$		&	abc	@",
  "^$		&	\"\"	@",
  "$^		-	\"\"	@",
  "\\($\\)\\(^\\)	b	\"\"	@",
  "# stop retching, those are legitimate (although disgusting)",
  "^^		-	\"\"	@",
  "$$		-	\"\"	@",
  "b$		&	abNc",
  "b$		&n	abNc	b",
  "^b$		&	aNbNc",
  "^b$		&n	aNbNc	b",
  "^$		&n	aNNb	@Nb",
  "^$		n	abc",
  "^$		n	abcN	@",
  "$^		n	aNNb	@Nb",
  "\\($\\)\\(^\\)	bn	aNNb	@Nb",
  "^^		n^	aNNb	@Nb",
  "$$		n	aNNb	@NN",
  "^a		^	a",
  "a$		$	a",
  "^a		^n	aNb",
  "^b		^n	aNb	b",
  "a$		$n	bNa",
  "b$		$n	bNa	b",
  "a*(^b$)c*	-	b	b",
  "a*\\(^b$\\)c*	b	b	b",
  "",
  "# certain syntax errors and non-errors",
  "|		C	EMPTY",
  "|		b	|	|",
  "*		C	BADRPT",
  "*		b	*	*",
  "+		C	BADRPT",
  "?		C	BADRPT",
  "\"\"		&C	EMPTY",
  "()		-	abc	@abc",
  "\\(\\)		b	abc	@abc",
  "a||b		C	EMPTY",
  "|ab		C	EMPTY",
  "ab|		C	EMPTY",
  "(|a)b		C	EMPTY",
  "(a|)b		C	EMPTY",
  "(*a)		C	BADRPT",
  "(+a)		C	BADRPT",
  "(?a)		C	BADRPT",
  "({1}a)		C	BADRPT",
  "\\(\\{1\\}a\\)	bC	BADRPT",
  "(a|*b)		C	BADRPT",
  "(a|+b)		C	BADRPT",
  "(a|?b)		C	BADRPT",
  "(a|{1}b)	C	BADRPT",
  "^*		C	BADRPT",
  "^*		b	*	*",
  "^+		C	BADRPT",
  "^?		C	BADRPT",
  "^{1}		C	BADRPT",
  "^\\{1\\}		bC	BADRPT",
  "",
  "# metacharacters, backslashes",
  "a.c		&	abc	abc",
  "a[bc]d		&	abd	abd",
  "a\\*c		&	a*c	a*c",
  "a\\\\b		&	a\\b	a\\b",
  "a\\\\\\*b		&	a\\*b	a\\*b",
  "a\\bc		&	abc	abc",
  "a\\		&C	EESCAPE",
  "a\\\\bc		&	a\\bc	a\\bc",
  "\\{		bC	BADRPT",
  "a\\[b		&	a[b	a[b",
  "a[b		&C	EBRACK",
  "# trailing $ is a peculiar special case for the BRE code",
  "a$		&	a	a",
  "a$		&	a$",
  "a\\$		&	a",
  "a\\$		&	a$	a$",
  "a\\\\$		&	a",
  "a\\\\$		&	a$",
  "a\\\\$		&	a\\$",
  "a\\\\$		&	a\\	a\\",
  "",
  "# back references, ugh",
  "a\\(b\\)\\2c	bC	ESUBREG",
  "a\\(b\\1\\)c	bC	ESUBREG",
  "a\\(b*\\)c\\1d	b	abbcbbd	abbcbbd	bb",
  "a\\(b*\\)c\\1d	b	abbcbd",
  "a\\(b*\\)c\\1d	b	abbcbbbd",
  "^\\(.\\)\\1	b	abc",
  "a\\([bc]\\)\\1d	b	abcdabbd	abbd	b",
  "a\\(\\([bc]\\)\\2\\)*d	b	abbccd	abbccd",
  "a\\(\\([bc]\\)\\2\\)*d	b	abbcbd",
  "# actually, this next one probably ought to fail, but the spec is unclear",
  "a\\(\\(b\\)*\\2\\)*d		b	abbbd	abbbd",
  "# here is a case that no NFA implementation does right",
  "\\(ab*\\)[ab]*\\1	b	ababaaa	ababaaa	a",
  "# check out normal matching in the presence of back refs",
  "\\(a\\)\\1bcd	b	aabcd	aabcd",
  "\\(a\\)\\1bc*d	b	aabcd	aabcd",
  "\\(a\\)\\1bc*d	b	aabd	aabd",
  "\\(a\\)\\1bc*d	b	aabcccd	aabcccd",
  "\\(a\\)\\1bc*[ce]d	b	aabcccd	aabcccd",
  "^\\(a\\)\\1b\\(c\\)*cd$	b	aabcccd	aabcccd",
  "",
  "# ordinary repetitions",
  "ab*c		&	abc	abc",
  "ab+c		-	abc	abc",
  "ab?c		-	abc	abc",
  "a\\(*\\)b		b	a*b	a*b",
  "a\\(**\\)b	b	ab	ab",
  "a\\(***\\)b	bC	BADRPT",
  "*a		b	*a	*a",
  "**a		b	a	a",
  "***a		bC	BADRPT",
  "",
  "# the dreaded bounded repetitions",
  "{		&	{	{",
  "{abc		&	{abc	{abc",
  "{1		C	BADRPT",
  "{1}		C	BADRPT",
  "a{b		&	a{b	a{b",
  "a{1}b		-	ab	ab",
  "a\\{1\\}b		b	ab	ab",
  "a{1,}b		-	ab	ab",
  "a\\{1,\\}b	b	ab	ab",
  "a{1,2}b		-	aab	aab",
  "a\\{1,2\\}b	b	aab	aab",
  "a{1		C	EBRACE",
  "a\\{1		bC	EBRACE",
  "a{1a		C	EBRACE",
  "a\\{1a		bC	EBRACE",
  "a{1a}		C	BADBR",
  "a\\{1a\\}		bC	BADBR",
  "a{,2}		-	a{,2}	a{,2}",
  "a\\{,2\\}		bC	BADBR",
  "a{,}		-	a{,}	a{,}",
  "a\\{,\\}		bC	BADBR",
  "a{1,x}		C	BADBR",
  "a\\{1,x\\}	bC	BADBR",
  "a{1,x		C	EBRACE",
  "a\\{1,x		bC	EBRACE",
  "a{300}		C	BADBR",
  "a\\{300\\}	bC	BADBR",
  "a{1,0}		C	BADBR",
  "a\\{1,0\\}	bC	BADBR",
  "ab{0,0}c	-	abcac	ac",
  "ab\\{0,0\\}c	b	abcac	ac",
  "ab{0,1}c	-	abcac	abc",
  "ab\\{0,1\\}c	b	abcac	abc",
  "ab{0,3}c	-	abbcac	abbc",
  "ab\\{0,3\\}c	b	abbcac	abbc",
  "ab{1,1}c	-	acabc	abc",
  "ab\\{1,1\\}c	b	acabc	abc",
  "ab{1,3}c	-	acabc	abc",
  "ab\\{1,3\\}c	b	acabc	abc",
  "ab{2,2}c	-	abcabbc	abbc",
  "ab\\{2,2\\}c	b	abcabbc	abbc",
  "ab{2,4}c	-	abcabbc	abbc",
  "ab\\{2,4\\}c	b	abcabbc	abbc",
  "((a{1,10}){1,10}){1,10}	-	a	a	a,a",
  "",
  "# multiple repetitions",
  "a**		&C	BADRPT",
  "a++		C	BADRPT",
  "a??		C	BADRPT",
  "a*+		C	BADRPT",
  "a*?		C	BADRPT",
  "a+*		C	BADRPT",
  "a+?		C	BADRPT",
  "a?*		C	BADRPT",
  "a?+		C	BADRPT",
  "a{1}{1}		C	BADRPT",
  "a*{1}		C	BADRPT",
  "a+{1}		C	BADRPT",
  "a?{1}		C	BADRPT",
  "a{1}*		C	BADRPT",
  "a{1}+		C	BADRPT",
  "a{1}?		C	BADRPT",
  "a*{b}		-	a{b}	a{b}",
  "a\\{1\\}\\{1\\}	bC	BADRPT",
  "a*\\{1\\}		bC	BADRPT",
  "a\\{1\\}*		bC	BADRPT",
  "",
  "# brackets, and numerous perversions thereof",
  "a[b]c		&	abc	abc",
  "a[ab]c		&	abc	abc",
  "a[^ab]c		&	adc	adc",
  "a[]b]c		&	a]c	a]c",
  "a[[b]c		&	a[c	a[c",
  "a[-b]c		&	a-c	a-c",
  "a[^]b]c		&	adc	adc",
  "a[^-b]c		&	adc	adc",
  "a[b-]c		&	a-c	a-c",
  "a[b		&C	EBRACK",
  "a[]		&C	EBRACK",
  "a[1-3]c		&	a2c	a2c",
  "a[3-1]c		&C	ERANGE",
  "a[1-3-5]c	&C	ERANGE",
  "a[[.-.]--]c	&	a-c	a-c",
  "a[1-		&C	ERANGE",
  "a[[.		&C	EBRACK",
  "a[[.x		&C	EBRACK",
  "a[[.x.		&C	EBRACK",
  "a[[.x.]		&C	EBRACK",
  "a[[.x.]]	&	ax	ax",
  "a[[.x,.]]	&C	ECOLLATE",
  "a[[.one.]]b	&	a1b	a1b",
  "a[[.notdef.]]b	&C	ECOLLATE",
  "a[[.].]]b	&	a]b	a]b",
  "a[[:notdef:]]c	&C	ECTYPE",
  "a[[:		&C	EBRACK",
  "a[[:alpha	&C	EBRACK",
  "a[[:alpha:]	&C	EBRACK",
  "a[[:alpha,:]	&C	ECTYPE",
  "a[[:]:]]b	&C	ECTYPE",
  "a[[:-:]]b	&C	ECTYPE",
  "a[[:alph:]]	&C	ECTYPE",
  "a[[:alphabet:]]	&C	ECTYPE",
  "[[:alnum:]]+	-	-%@a5X-	a5X",
  "[[:alpha:]]+	-	-%@aX0-	aX",
  "# ctype_latin1 does not tag '\\t' as blank, so we will match only two spaces.",
  "# See: Bug #55427 REGEXP does not recognize '\\t' as [:blank:]",
  "#[[:blank:]]+	-	aSSTb	SST",
  "[[:blank:]]+	-	aSSTb	SS",
  "[[:cntrl:]]+	-	aNTb	NT",
  "[[:digit:]]+	-	a019b	019",
  "[[:graph:]]+	-	Sa%bS	a%b",
  "[[:lower:]]+	-	AabC	ab",
  "[[:print:]]+	-	NaSbN	aSb",
  "[[:punct:]]+	-	S%-&T	%-&",
  "[[:space:]]+	-	aSNTb	SNT",
  "[[:upper:]]+	-	aBCd	BC",
  "[[:xdigit:]]+	-	p0f3Cq	0f3C",
  "a[[=b=]]c	&	abc	abc",
  "a[[=		&C	EBRACK",
  "a[[=b		&C	EBRACK",
  "a[[=b=		&C	EBRACK",
  "a[[=b=]		&C	EBRACK",
  "a[[=b,=]]	&C	ECOLLATE",
  "a[[=one=]]b	&	a1b	a1b",
  "",
  "# complexities",
  "a(((b)))c	-	abc	abc",
  "a(b|(c))d	-	abd	abd",
  "a(b*|c)d	-	abbd	abbd",
  "# just gotta have one DFA-buster, of course",
  "a[ab]{20}	-	aaaaabaaaabaaaabaaaab	aaaaabaaaabaaaabaaaab",
  "# and an inline expansion in case somebody gets tricky",
  "a[ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab]	-	aaaaabaaaabaaaabaaaab	aaaaabaaaabaaaabaaaab",
  "# and in case somebody just slips in an NFA...",
  "a[ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab](wee|week)(knights|night)	-	aaaaabaaaabaaaabaaaabweeknights	aaaaabaaaabaaaabaaaabweeknights",
  "# fish for anomalies as the number of states passes 32",
  "12345678901234567890123456789	-	a12345678901234567890123456789b	12345678901234567890123456789",
  "123456789012345678901234567890	-	a123456789012345678901234567890b	123456789012345678901234567890",
  "1234567890123456789012345678901	-	a1234567890123456789012345678901b	1234567890123456789012345678901",
  "12345678901234567890123456789012	-	a12345678901234567890123456789012b	12345678901234567890123456789012",
  "123456789012345678901234567890123	-	a123456789012345678901234567890123b	123456789012345678901234567890123",
  "# and one really big one, beyond any plausible word width",
  "1234567890123456789012345678901234567890123456789012345678901234567890	-	a1234567890123456789012345678901234567890123456789012345678901234567890b	1234567890123456789012345678901234567890123456789012345678901234567890",
  "# fish for problems as brackets go past 8",
  "[ab][cd][ef][gh][ij][kl][mn]	-	xacegikmoq	acegikm",
  "[ab][cd][ef][gh][ij][kl][mn][op]	-	xacegikmoq	acegikmo",
  "[ab][cd][ef][gh][ij][kl][mn][op][qr]	-	xacegikmoqy	acegikmoq",
  "[ab][cd][ef][gh][ij][kl][mn][op][q]	-	xacegikmoqy	acegikmoq",
  "",
  "# subtleties of matching",
  "abc		&	xabcy	abc",
  "a\\(b\\)?c\\1d	b	acd",
  "aBc		i	Abc	Abc",
  "a[Bc]*d		i	abBCcd	abBCcd",
  "0[[:upper:]]1	&i	0a1	0a1",
  "0[[:lower:]]1	&i	0A1	0A1",
  "a[^b]c		&i	abc",
  "a[^b]c		&i	aBc",
  "a[^b]c		&i	adc	adc",
  "[a]b[c]		-	abc	abc",
  "[a]b[a]		-	aba	aba",
  "[abc]b[abc]	-	abc	abc",
  "[abc]b[abd]	-	abd	abd",
  "a(b?c)+d	-	accd	accd",
  "(wee|week)(knights|night)	-	weeknights	weeknights",
  "(we|wee|week|frob)(knights|night|day)	-	weeknights	weeknights",
  "a[bc]d		-	xyzaaabcaababdacd	abd",
  "a[ab]c		-	aaabc	abc",
  "abc		s	abc	abc",
  "a*		&	b	@b",
  "",
  "# Let's have some fun -- try to match a C comment.",
  "# first the obvious, which looks okay at first glance...",
  "/\\*.*\\*/	-	/*x*/	/*x*/",
  "# but...",
  "/\\*.*\\*/	-	/*x*/y/*z*/	/*x*/y/*z*/",
  "# okay, we must not match */ inside; try to do that...",
  "/\\*([^*]|\\*[^/])*\\*/	-	/*x*/	/*x*/",
  "/\\*([^*]|\\*[^/])*\\*/	-	/*x*/y/*z*/	/*x*/",
  "# but...",
  "/\\*([^*]|\\*[^/])*\\*/	-	/*x**/y/*z*/	/*x**/y/*z*/",
  "# and a still fancier version, which does it right (I think)...",
  "/\\*([^*]|\\*+[^*/])*\\*+/	-	/*x*/	/*x*/",
  "/\\*([^*]|\\*+[^*/])*\\*+/	-	/*x*/y/*z*/	/*x*/",
  "/\\*([^*]|\\*+[^*/])*\\*+/	-	/*x**/y/*z*/	/*x**/",
  "/\\*([^*]|\\*+[^*/])*\\*+/	-	/*x****/y/*z*/	/*x****/",
  "/\\*([^*]|\\*+[^*/])*\\*+/	-	/*x**x*/y/*z*/	/*x**x*/",
  "/\\*([^*]|\\*+[^*/])*\\*+/	-	/*x***x/y/*z*/	/*x***x/y/*z*/",
  "",
  "# subexpressions",
  "a(b)(c)d	-	abcd	abcd	b,c",
  "a(((b)))c	-	abc	abc	b,b,b",
  "a(b|(c))d	-	abd	abd	b,-",
  "a(b*|c|e)d	-	abbd	abbd	bb",
  "a(b*|c|e)d	-	acd	acd	c",
  "a(b*|c|e)d	-	ad	ad	@d",
  "a(b?)c		-	abc	abc	b",
  "a(b?)c		-	ac	ac	@c",
  "a(b+)c		-	abc	abc	b",
  "a(b+)c		-	abbbc	abbbc	bbb",
  "a(b*)c		-	ac	ac	@c",
  "(a|ab)(bc([de]+)f|cde)	-	abcdef	abcdef	a,bcdef,de",
  "# the regression tester only asks for 9 subexpressions",
  "a(b)(c)(d)(e)(f)(g)(h)(i)(j)k	-	abcdefghijk	abcdefghijk	b,c,d,e,f,g,h,i,j",
  "a(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)l	-	abcdefghijkl	abcdefghijkl	b,c,d,e,f,g,h,i,j,k",
  "a([bc]?)c	-	abc	abc	b",
  "a([bc]?)c	-	ac	ac	@c",
  "a([bc]+)c	-	abc	abc	b",
  "a([bc]+)c	-	abcc	abcc	bc",
  "a([bc]+)bc	-	abcbc	abcbc	bc",
  "a(bb+|b)b	-	abb	abb	b",
  "a(bbb+|bb+|b)b	-	abb	abb	b",
  "a(bbb+|bb+|b)b	-	abbb	abbb	bb",
  "a(bbb+|bb+|b)bb	-	abbb	abbb	b",
  "(.*).*		-	abcdef	abcdef	abcdef",
  "(a*)*		-	bc	@b	@b",
  "",
  "# do we get the right subexpression when it is used more than once?",
  "a(b|c)*d	-	ad	ad	-",
  "a(b|c)*d	-	abcd	abcd	c",
  "a(b|c)+d	-	abd	abd	b",
  "a(b|c)+d	-	abcd	abcd	c",
  "a(b|c?)+d	-	ad	ad	@d",
  "a(b|c?)+d	-	abcd	abcd	@d",
  "a(b|c){0,0}d	-	ad	ad	-",
  "a(b|c){0,1}d	-	ad	ad	-",
  "a(b|c){0,1}d	-	abd	abd	b",
  "a(b|c){0,2}d	-	ad	ad	-",
  "a(b|c){0,2}d	-	abcd	abcd	c",
  "a(b|c){0,}d	-	ad	ad	-",
  "a(b|c){0,}d	-	abcd	abcd	c",
  "a(b|c){1,1}d	-	abd	abd	b",
  "a(b|c){1,1}d	-	acd	acd	c",
  "a(b|c){1,2}d	-	abd	abd	b",
  "a(b|c){1,2}d	-	abcd	abcd	c",
  "a(b|c){1,}d	-	abd	abd	b",
  "a(b|c){1,}d	-	abcd	abcd	c",
  "a(b|c){2,2}d	-	acbd	acbd	b",
  "a(b|c){2,2}d	-	abcd	abcd	c",
  "a(b|c){2,4}d	-	abcd	abcd	c",
  "a(b|c){2,4}d	-	abcbd	abcbd	b",
  "a(b|c){2,4}d	-	abcbcd	abcbcd	c",
  "a(b|c){2,}d	-	abcd	abcd	c",
  "a(b|c){2,}d	-	abcbd	abcbd	b",
  "a(b+|((c)*))+d	-	abd	abd	@d,@d,-",
  "a(b+|((c)*))+d	-	abcd	abcd	@d,@d,-",
  "",
  "# check out the STARTEND option",
  "[abc]		&#	a(b)c	b",
  "[abc]		&#	a(d)c",
  "[abc]		&#	a(bc)d	b",
  "[abc]		&#	a(dc)d	c",
  ".		&#	a()c",
  "b.*c		&#	b(bc)c	bc",
  "b.*		&#	b(bc)c	bc",
  ".*c		&#	b(bc)c	bc",
  "",
  "# plain strings, with the NOSPEC flag",
  "abc		m	abc	abc",
  "abc		m	xabcy	abc",
  "abc		m	xyz",
  "a*b		m	aba*b	a*b",
  "a*b		m	ab",
  "\"\"		mC	EMPTY",
  "",
  "# cases involving NULs",
  "aZb		&	a	a",
  "aZb		&p	a",
  "aZb		&p#	(aZb)	aZb",
  "aZ*b		&p#	(ab)	ab",
  "a.b		&#	(aZb)	aZb",
  "a.*		&#	(aZb)c	aZb",
  "",
  "# word boundaries (ick)",
  "[[:<:]]a	&	a	a",
  "[[:<:]]a	&	ba",
  "[[:<:]]a	&	-a	a",
  "a[[:>:]]	&	a	a",
  "a[[:>:]]	&	ab",
  "a[[:>:]]	&	a-	a",
  "[[:<:]]a.c[[:>:]]	&	axcd-dayc-dazce-abc	abc",
  "[[:<:]]a.c[[:>:]]	&	axcd-dayc-dazce-abc-q	abc",
  "[[:<:]]a.c[[:>:]]	&	axc-dayc-dazce-abc	axc",
  "[[:<:]]b.c[[:>:]]	&	a_bxc-byc_d-bzc-q	bzc",
  "[[:<:]].x..[[:>:]]	&	y_xa_-_xb_y-_xc_-axdc	_xc_",
  "[[:<:]]a_b[[:>:]]	&	x_a_b",
  "",
  "# past problems, and suspected problems",
  "(A[1])|(A[2])|(A[3])|(A[4])|(A[5])|(A[6])|(A[7])|(A[8])|(A[9])|(A[A])	-	A1	A1",
  "abcdefghijklmnop	i	abcdefghijklmnop	abcdefghijklmnop",
  "abcdefghijklmnopqrstuv	i	abcdefghijklmnopqrstuv	abcdefghijklmnopqrstuv",
  "(ALAK)|(ALT[AB])|(CC[123]1)|(CM[123]1)|(GAMC)|(LC[23][EO ])|(SEM[1234])|(SL[ES][12])|(SLWW)|(SLF )|(SLDT)|(VWH[12])|(WH[34][EW])|(WP1[ESN])	-	CC11	CC11",
  "CC[13]1|a{21}[23][EO][123][Es][12]a{15}aa[34][EW]aaaaaaa[X]a	-	CC11	CC11",
  "Char \\([a-z0-9_]*\\)\\[.*	b	Char xyz[k	Char xyz[k	xyz",
  "a?b	-	ab	ab",
  "-\\{0,1\\}[0-9]*$	b	-5	-5",
  "",
  NULL
};

Youez - 2016 - github.com/yon3zu
LinuXploit