It's 23:30 so just a quick answer....
You put a (....)?* around the "series" extraction logic.
Quickly....
(?P<author>.+?) - (?P<title>.+)( - (?P<series>.+))?*
Sorry, it's a while since I have done anything with Regex and it's late but that should get you on the right track....
Also sorry, title and author swapped around by your question....