in reply to Question about split

read perldoc -f split about parentheses inside of regexp and the first field

You can get what you whant without a split

($base, $dash, $copy, $ext) = $f =~ /^(\d+|\w+)(-)(\d+)(\.bmp)/;