Hi,

First let me say. Awesome library and thanks for releasing it to the world.

I'm looking for a way to apply all the currently queued semantic actions _without_ turning off backtracking.
So, as the manual suggests, keep manages to apply the queued actions but it also turns off backtracking.

The reason I am doing this is simple though unusual.
I am trying to determine every possible match for a given input sequence, recording and ranking each one individually.

A simple (contrived) example would be...

input = "abcd";
expression = apply(+alpha[save_lhs(_)] >> +alpha[save_rhs(_)] >> eos)

Ideally, applying the expression would yield the following combinations for 'lhs' and 'rhs'
  1. "a","bcd"
  2. "ab","cd"
  3. "abc","d"
The best solution I have come up with has an unacceptable time complexity.
In short, the solution is to have a match assertion at the end of the expression which only succeeds on the nth try. I then use a while loop, executing regex_match with increasing values of 'n' until no more matches are found. Of course the problem with this solution is that the time complexity goes to n!+(n-1)!+(n-2)!...

Any ideas?