#!/usr/bin/perl use strict; use warnings; my $S = " 45 ee33ee#555+'3210>{579}/8888\"~-099.2:"; for (my $i = 0; $i < length($S); $i++) { pos($S) = $i; print("\n :", (($S =~ m/(\d*\G\d+)/) ? $1 : ''), ": \tptr=$i \tsubstr=", substr($S, $i)); }