in reply to Re^2: regex behaves differently in split vs substitute?
in thread regex behaves differently in split vs substitute?

In addition to my commentary here, if you're going to be using statement modifiers, just use $1
print ">>$1<<\n" if $line =~ /^[a-z-]+(\d.*)$/;
also writable as
$line =~ /^[a-z-]+(\d.*)$/ and print ">>$1<<\n" ;