in reply to Re^2: regex, pos, \G, and substr
in thread regex, pos, \G, and substr

I'd rather leave everything alone if there's anything "non-digit" besides the and splitters in there.
Then leave that part the same as in your original looping regex:
s[update (\d+(?: and \d+)+) mark complete]{...}ge;