posted 14 years ago
I'm guessing the issue is that the initial .* is greedy, and that wins out over your other intentions here. It will probably overlook a leading 1, 2, or 3 as well, not just leading 0. As long as there's at least one digit after, to match the rest of the expression.
I suggest either:
(a) replace .* with .*?, which is reluctant
or
(b) drop the .* entirely, and replace matches() with find().