Here's a command-line solution --- a Java program I wrote specifically to make it easy to work with "patterns" in filenames. It's free and open source, so feel free to modify it:
RenameWand
http://renamewand.sourceforge.net/
Some relevant usage examples:
Drop everything before the "-" in the filename:
java -jar RenameWand.jar "<a> - <b>" "<b>"
Prepend a 3-digit number to the filename, sorting by last-modified time:
java -jar RenameWand.jar "<a>" "<3|#FT> <a>"
Rearrange parts of the filename, and change case:
java -jar RenameWand.jar "<album> - <artist> - <song>.<ext>"
"<artist.upper> <album.title> - <song>.<ext.lower>"