our $pre; my $prefix; my $match = $str =~ m{^.{$pos} (?{local $pre = ''}) ( (?<= (?= \D | ^ | (?1)) (.) (?{my $m2 = $2; $pre .= $m2 if $m2 =~ m{\d}}) ) (?{$prefix = $pre}) ) (\d+)}x; my $suffix = $3; say $match ? $prefix . $suffix : '';