In trying to elaborate an answer to this question, I am now trying to come to terms with the behavior/meaning of Zero-Length regular expressions.
I often use www.regexr.com as a playground to test/debug/understand what's going on in regular expressions.
So we have this most banal scenario:
The regex is a*
The input string is dgwawa
(As a matter of fact, the string here is irrelevant)
Why this behavior of reporting that this regex will match infinitely, since it matches zero occurrences of the preceding character ?
Why can't the result be 6 matches, one for each character position (since at every character, regardless of whether it is an a or not, there is a match, since zero matches is a match)?
How does it get into matching infinitely ? So it does not check/progress a character at a time?
I wonder how/where does it get itself into an infinite loop.