tre-tests-extended-enhanced.dat   [plain text]


# Large number of macros in one regexp.
E$H	[A-Z]\\d\\s?\\d[A-Z]{2}|[A-Z]\\d{2}\\s?\\d[A-Z]{2}|[A-Z]{2}\\d\\s?\\d[A-Z]{2}|[A-Z]{2}\\d{2}\\s?\\d[A-Z]{2}|[A-Z]\\d[A-Z]\\s?\\d[A-Z]{2}|[A-Z]{2}\\d[A-Z]\\s?\\d[A-Z]{2}|[A-Z]{3}\\s?\\d[A-Z]{2}			A12BC		(0,5)
E$H	SAME			A1 2BC		(0,6)
E$H	SAME			A123BC		(0,6)
E$H	SAME			AB1 2BC		(0,7)
E$H	SAME			AB12 3CD	(0,8)
E$H	SAME			A1B 2CD		(0,7)
E$H	SAME			AB1C 2DE	(0,8)
E$H	SAME			ABC 1DE		(0,7)
# Test leftmost and longest matching and some tricky submatches
#E	(?l)(wee|week)(night|knights)s*	weeknights	(0,10)(0,3)(3,10)
#E	SAME				weeknightss	(0,11)(0,3)(3,10)
# Tests for nonstandard syntax extensions.
#
# Zero width assertions
EH	\<x				aax xaa		(4,5)
EH	SAME				xaa		(0,1)
EH	x\>				axx xaa		(2,3)
EH	SAME				aax		(2,3)
EH	\bx				axx xaa		(4,5)
EH	SAME				aax		NOMATCH
EH	SAME				xax		(0,1)
EH	x\b				axx xaa		(2,3)
EH	SAME				aax		(2,3)
EH	SAME				xaa		NOMATCH
EH	\Bx				aax xxa		(2,3)
EH	\Bx\b				aax xxx		(2,3)
EH	\<.				;xaa		(1,2)
# Shorthands for character classes
EH	\w{1,}				,.(a23_Nt-öo)	(3,9)
EH	\d{1,}				uR120_4=v4	(2,5)
EH	\D{1,}				120d_=vA4s	(3,8)
EH	\w+				,.(a23_Nt-öo)	(3,9)
EH	\d+				uR120_4=v4	(2,5)
EH	\D+				120d_=vA4s	(3,8)
# Quoted special characters
E$H	\\t				\t		(0,1)
E$H	\\e				\033		(0,1)
# Test the \x1B and \x{263a} extensions for specifying 8 bit and wide
# characters in hexadecimal.
EH	\x41				ABC		(0,1)
E$H	\\x5				\005		(0,1)
E$H	\\x5r				\005r		(0,2)
# test_comp("\\x",REG_EXTENDED,0)
# test_nexec("\000",1,0,REG_OK,0,1)
# test_comp("\\xr",REG_EXTENDED,0)
# test_nexec("\000r",2,0,REG_OK,0,2)
EH	\x{41}				ABC		(0,1)
E$H	\\x{5}				\005		(0,1)
E$H	\\x{5}r				\005r		(0,2)
# test_comp("\\x{}",REG_EXTENDED,0)
# test_nexec("\000",1,0,REG_OK,0,1)
# test_comp("\\x{}r",REG_EXTENDED,0)
# test_nexec("\000r",2,0,REG_OK,0,2)
# Tests for (?inrU-inrU) and (?inrU-inrU:)
EH	foo(?i)bar			fooBaR		(0,6)
EH	foo(?i)bar|zap			fooBaR		(0,6)
EH	SAME				foozap		(3,6)
EH	SAME				foozAp		(3,6)
EH	SAME				bar		NOMATCH
EH	SAME				zap		(0,3)
EiH	foo(?-i:zap)zot			FoOzapZOt	(0,9)
EiH	SAME				FoOzApZOt	NOMATCH
EH	foo(?i:bar|zap)			foozap		(0,6)
EH	SAME				foobar		(0,6)
EH	SAME				foobAr		(0,6)
EH	SAME				fooZaP		(0,6)
EH	foo(?U:o*)(o*)			foooo		(0,5)(3,5)
# Test comment syntax
EH	foo(?# This here is a comment. )bar	foobar	(0,6)
# Tests for \Q and \E
EH	\((\Q)?:\<[^$\E)		()?:\<[^$	(0,9)(1,9)
EH	\Qabc\E.*			abcdef		(0,6)
EH	\Qabc\E.*|foo			parabc123wxyz	(3,13)
EH	SAME				fooabc123wxyz	(0,3)
# Back referencing tests
EH	([a-z]*) \1			foobar foobar	(0,13)(0,6)
# Searching for a leftmost longest square (repeated string)
EH	(.*)\1				foobarfoobar	(0,12)(0,6)
EH	a(b)*c\1			acb		NOMATCH
EH	SAME				abbcbbb		(0,5)(2,3)
EH	SAME				abbdbd		NOMATCH
EH	([a-c]*)\1			abcacdef	(0,0)(0,0)
EH	SAME				abcabcabcd	(0,6)(0,3)
EH	(a*)*(x)(\1)			x		(0,1)(0,0)(0,1)(1,1)
EH	SAME				ax		(0,2)(1,1)(1,2)(2,2)
EH	(a)\1{1,2}			aabc		(0,2)(0,1)
EH	((.*)\1)+			aa		ESUBREG
EH	()(\1\1)*			NULL		(0,0)(0,0)(0,0)
# Check that back references work with REG_NOSUB
EHw	(o)\1				foobar		NULL
EH	(o)\1				foobar		(1,3)(1,2)
EH	SAME				fobar		NOMATCH
EH	\1foo				NULL		ESUBREG
EH	\1foo(bar)			x		ESUBREG
# Back reference with zero-width assertion
EH	(.)\1$				foox		NOMATCH
EH	SAME				foo		(1,3)(1,2)
# Back references together with {}
EH	([0-9]{5})\1			12345		NOMATCH
EH	SAME				1234512345	(0,10)(0,5)
EH	([0-9]{4})\1			1234		NOMATCH
EH	SAME				12341234	(0,8)(0,4)
# Test minimal repetitions (non-greedy repetitions)
#
# Basic
EH	.*?				abcd		(0,0)
EH	.+?				abcd		(0,1)
EH	.??				abcd		(0,0)
EH	.{2,5}?				abcd		(0,2)
# More complicated
EH	<b>(.*?)</b>			<b>text1</b><b>text2</b>	(0,12)(3,8)
EH	a(.*?)(foo|bar|zap)		hubba wooga-booga zabar gafoo wazap	(4,23)(5,20)(20,23)
# Test REG_UNGREEDY
EHm	.*				abcd		(0,0)
EHm	.*?				abcd		(0,4)
##### Extras
# ^ magic after |
EH	(a|^b)				bas		(0,1)(0,1)