/([0-9]{2,})(?(?{index("0123456789", $1) == -1})(*FAIL))/ #### >perl -wMstrict -le "my $skip_if_not_consecutive = qr{ (?(?{index('0123456789', $^N) == -1}) (*SKIP) (*FAIL)) }xms; ;; my $digits = qr{ \d{2,} }xms; ;; my $str = 'a1a11a9129a912a129a112a122a34a345a'; my @cons = $str =~ m{ ($digits) $skip_if_not_consecutive }xmsg ; ;; my $q_cons = join ' ', map { qq{'$_'} } @cons; print qq{'$str'}; print qq{ $q_cons}; " 'a1a11a9129a912a129a112a122a34a345a' '34' '345'