@schmidt_fu Not off the top of my head.
If you construct a DFA, I think you can do search doing a walk backwards from halting state to initial state and dump stuff whenever you hit initial. Of course, the graph can get humongous, so I bet there's a better way to do this if you're clever about representations.
Generating _interesting_ output could also be a challenge, because with something like a(b|c)+
, you could just keep enumerating abbbb…
results without ever hitting any of the acccc…
ones if you weren't careful. That suggests you want to do a BFS rather than a DFS.
Hmm, actually, maybe look at fuzzers like AFL or generative testing systems like Hypothesis? The latter tend to use a much richer language then regex, but their goal _is_ generating interesting examples fitting the bill!
// @thedan84