Help deleting prefix from file names

I have a directory full of personal files named similar to the following:

043 fflshju
923- osfjpojfsa
1 - oasfns.txt

:wall:

What I would like to do is strip any leading numbers, spaces, dashes (etc.)..
and leave only the main section of the name.

For example, the preceeding list would be renamed to:

fflshiu
osfipojfsa
oasfns.txt

Is there an easy way to do this from the command-line (or BASH script), or do I have to change them individually, manually?
Thanks in advance.

Perl:

perl -e'
  for (glob "[0-9-]*") {
    ($fn = $_) =~ s/^[\s\d-]+//;
    rename $_, $fn unless -f $fn
    }'

KornShell:

for f in +([ 0-9-])*; do
  [ -f "${f##+([ 0-9-])}" ] || 
    mv -- "$f" "${f##+([ 0-9-])}"
done 

bash:

shopt -s extglob
for f in +([ 0-9-])*; do
  [ -f "${f##+([ 0-9-])}" ] || 
    mv -- "$f" "${f##+([ 0-9-])}"
done  

zsh:

setopt extendedglob
for f in ([ 0-9-])##*; do
  [ -f "${f##([ 0-9-])##}" ] ||
    mv -- "$f" "${f##([ 0-9-])##}"
done