##
(?{ push_number( $^N, $depth ); })
sub push_number {
...
TRACE( $depth, $msg );
####
(?>(?&STRING)) # ratchet
\s*+ # ratchet
[^\\"]++ # ratchet
)*+ # ratchet
(?: 0 | [1-9]\d*+ # ratchet