multiplication regex: Reorganize factor capturing to work without being atomic; length-=6

This method of capturing the larger and smaller factors, which resists being corrupted by backtracking, was developed by teukon.

It results in a minor slowdown, due to the regex engine trying to backtrack when it gets a non-match (it can't change anything by backtracking, but it doesn't know that). This slowdown only happens for non-matches; the speed of processing correct multiplication statements is unchanged.

The slowdown on non-matches scales fairly slowly as the numbers get larger. Thus this modification to the regex results in a higher Big O, but not much higher.