I want to write tests for a regular expression analysis engine. It would be nice if I could generate arbitrary pairs of equivalent regular expressions, to see whether the engine correctly parses them and identifies them as being equivalent. Is there any known algorithm for doing so?
I would also accept a list of 20-100 well-known regex equivalences, if anyone knows of a pre-created list. For example a*a
and aa*
or (ab)*a
and a(ba)*
.