Want to search backwards through a string, but don't want to have to reverse the string first? I had a need to do this recently in a golf problem ("reverse" is just too damn long). If you don't mind destroying your string, use s///:
$foo = '1 a 2 b 3 c';
while($foo =~ s/(\d)[\D]*$//) {
print $1;
}
__output__
321