in reply to Regex not behaving as expected
Your solution looks very close to a common trick I use, which is to assign a vairable to another variable, then do a regex search and replace on the new one:
my $file = 'file013.txt'; (my $sk = $file) =~ s/^.*?(\d+).*$/$1/;
Which for the sake of this problem is a very similar solution to what others are proposing, the above method is much more useful when I want to keep most of the string rather than a portion of it.
Example, I want to emphasise the word keep above:
my $boring_string = '...when I want to keep most of the string...'; (my $exciting_string = $boring_string) =~ s/(keep)/<b>$1</b>/;
In Section Seekers of Perl Wisdom