OK, that's different background.
In that case, I'd rely on the "greedy" character of wild cards. (?<part1>.*)\s-\s(?<part2>.*)(?<ext>\.wmv) will catch the parts and the extension,
and the re-order it to become part2 - part1.ext
I'm not familiar with Emacs (in the last 25 years, anyway). It seems to use a very different regex engine from the ones we meet here (in .NET languages, PHP, Java and so on). You might do better to ask in an Emacs forum.
Sorry I can't help any more.
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
Keep in mind that this will find all matches, so you don't watch to just find the first match as you are doing in your example. You want to loop through them all and compare the key/value against the word you are looking for.