(?{ my $v = eval $^N; say $i x $l,"->have number $v" if TRACE_JSON; push_val($v); }) ) #### (?{ push_number( $^N, $depth ); }) sub push_number { ... TRACE( $depth, $msg ); #### (?>(?&STRING)) # ratchet \s*+ # ratchet [^\\"]++ # ratchet )*+ # ratchet (?: 0 | [1-9]\d*+ # ratchet