sub _decode_string { my $pos = pos(); m{\G(?:[^\\"]+|\\.)*}gc; my $str = substr( $_, $pos, pos()-$pos ); Fail("Unclosed string",$pos) if ! m{"}gc;