Description
Consider the following regular expression:
"(ab) | (a)"
with the following input string:
"abracadabra"
If you use an instance the RegularExpression class to replace any matching substrings with the empty string, the result should be the following string:
"rcdr"
Instead, just the last "a" in the string is replaced:
"abracadabr"
If you use the same RegularExpression instance to tokenize the expression, the result should be the following set of strings:
""
"r"
"c"
"d"
"r"
""
Instead, the result is
"abracadabr"
""
I will attach a proposed patch, but I don't know this code well, so it would be great if someone could review it.