in reply to Explain a regex

I think most of the verbiage is there to keep the elements looking as similar to each other as possible, which is of dubious benefit.

I'd guess that it's also trying to make it easy to modify it to extract any part of the number being matched by replacing the relevant (?: with (, which saves the programmer from having to find the place to insert the matching ).

I can see no reason for the use of {0,} instead of * in one place.

Hugo