I read "the next successful match" as a separate Perl operation, not the internal iteration involved in matching ()*. There is, technically, nothing that dictates the order of internal matching, and if the overall match fails, $1 is not set to the last iteration of ()* that did match.
Caution: Contents may have been coded under pressure.