Parse pattern matches (or, in general, evaluates the rules) from left to right. You can visualize this with a position arrow, which points before the input at the start of the rules block:
When rules are matched, the parse position is moved. After the first pattern we get:
Then the some digit pattern processes the rest of the input, the parse position is at the end of the input, and true is returned:
If the input contains ...