Just a correction regarding an earlier statement I made regarding searching for a{1}b. I said:
It seems to me that when the code finds more than 1 "a", it should either:
1) skip past all subsequent "a"s before starting the scan again. This would cause "a{1}b" to be found in "ab" but not "aab", "aaab", "aaaab", etc. This would be very "greedy". :-)
Or:
2) restart the scan 1 character after where the previous scan started. This would cause "a{1}b" to be found in "ab", "aab", "aaab", "aaaab", etc.
FWIW, I'm told that the regex searcher in the .NET Framework exhibits behavior #1.
I misunderstood what I was told about the .NET Framework regexp implementation. It exhibits behavior #2 above. So, boost::regexp will behave the same as .NET Framework regexp (and probably most other regexp implementations) once it is fixed. Cheers, --Dean