cmStringCommand: clear intermediate matches
When string(REGEX REPLACE)
or string(REGEX MATCHALL)
loop
internally, they store their matches, but they do not clear the previous
match from an earlier iteration. This can leave the contents of
CMAKE_MATCH_<N>
with bogus values for later matches in the string if
they have groups which earlier matched a non-empty string, but now match
an empty string.
Fixes #17079 (closed).
Edited by Ben Boeckel