regex 1.3.6

An implementation of regular expressions for Rust. This implementation uses finite automata and guarantees linear time matching on all inputs.
Documentation
NOTE	null subexpression matches : 2002-06-06

E	(a*)*		a		(0,1)(0,1)
#E	SAME		x		(0,0)(0,0)
E	SAME		x		(0,0)(?,?)	RE2/Go
E	SAME		aaaaaa		(0,6)(0,6)
E	SAME		aaaaaax		(0,6)(0,6)
E	(a*)+		a		(0,1)(0,1)
E	SAME		x		(0,0)(0,0)
E	SAME		aaaaaa		(0,6)(0,6)
E	SAME		aaaaaax		(0,6)(0,6)
E	(a+)*		a		(0,1)(0,1)
E	SAME		x		(0,0)
E	SAME		aaaaaa		(0,6)(0,6)
E	SAME		aaaaaax		(0,6)(0,6)
E	(a+)+		a		(0,1)(0,1)
E	SAME		x		NOMATCH
E	SAME		aaaaaa		(0,6)(0,6)
E	SAME		aaaaaax		(0,6)(0,6)

E	([a]*)*		a		(0,1)(0,1)
#E	SAME		x		(0,0)(0,0)
E	SAME		x		(0,0)(?,?)	RE2/Go
E	SAME		aaaaaa		(0,6)(0,6)
E	SAME		aaaaaax		(0,6)(0,6)
E	([a]*)+		a		(0,1)(0,1)
E	SAME		x		(0,0)(0,0)
E	SAME		aaaaaa		(0,6)(0,6)
E	SAME		aaaaaax		(0,6)(0,6)
E	([^b]*)*	a		(0,1)(0,1)
#E	SAME		b		(0,0)(0,0)
E	SAME		b		(0,0)(?,?)	RE2/Go
E	SAME		aaaaaa		(0,6)(0,6)
E	SAME		aaaaaab		(0,6)(0,6)
E	([ab]*)*	a		(0,1)(0,1)
E	SAME		aaaaaa		(0,6)(0,6)
E	SAME		ababab		(0,6)(0,6)
E	SAME		bababa		(0,6)(0,6)
E	SAME		b		(0,1)(0,1)
E	SAME		bbbbbb		(0,6)(0,6)
E	SAME		aaaabcde	(0,5)(0,5)
E	([^a]*)*	b		(0,1)(0,1)
E	SAME		bbbbbb		(0,6)(0,6)
#E	SAME		aaaaaa		(0,0)(0,0)
E	SAME		aaaaaa		(0,0)(?,?)	RE2/Go
E	([^ab]*)*	ccccxx		(0,6)(0,6)
#E	SAME		ababab		(0,0)(0,0)
E	SAME		ababab		(0,0)(?,?)	RE2/Go

E	((z)+|a)*	zabcde		(0,2)(1,2)

#{E	a+?		aaaaaa		(0,1)	no *? +? mimimal match ops
#E	(a)		aaa		(0,1)(0,1)
#E	(a*?)		aaa		(0,0)(0,0)
#E	(a)*?		aaa		(0,0)
#E	(a*?)*?		aaa		(0,0)
#}

B	\(a*\)*\(x\)		x	(0,1)(0,0)(0,1)
B	\(a*\)*\(x\)		ax	(0,2)(0,1)(1,2)
B	\(a*\)*\(x\)		axa	(0,2)(0,1)(1,2)
B	\(a*\)*\(x\)\(\1\)	x	(0,1)(0,0)(0,1)(1,1)
B	\(a*\)*\(x\)\(\1\)	ax	(0,2)(1,1)(1,2)(2,2)
B	\(a*\)*\(x\)\(\1\)	axa	(0,3)(0,1)(1,2)(2,3)
B	\(a*\)*\(x\)\(\1\)\(x\)	axax	(0,4)(0,1)(1,2)(2,3)(3,4)
B	\(a*\)*\(x\)\(\1\)\(x\)	axxa	(0,3)(1,1)(1,2)(2,2)(2,3)

#E	(a*)*(x)		x	(0,1)(0,0)(0,1)
E	(a*)*(x)		x	(0,1)(?,?)(0,1)	RE2/Go
E	(a*)*(x)		ax	(0,2)(0,1)(1,2)
E	(a*)*(x)		axa	(0,2)(0,1)(1,2)

E	(a*)+(x)		x	(0,1)(0,0)(0,1)
E	(a*)+(x)		ax	(0,2)(0,1)(1,2)
E	(a*)+(x)		axa	(0,2)(0,1)(1,2)

E	(a*){2}(x)		x	(0,1)(0,0)(0,1)
E	(a*){2}(x)		ax	(0,2)(1,1)(1,2)
E	(a*){2}(x)		axa	(0,2)(1,1)(1,2)