Again quickly (off to play cards with a couple of mates)
My Regex which worked.... Haven't played with it in 4 months though
It does things in different sequence but it worked....
It is more complex as it also handled series_index
(?P<author>[^_-]+) -?\s*(?P<series>[^_0-9-]*)(?P<series_index>[0-9]*)\s*-\s*(?P<title>[^_].+) ?
Both series and series_index are optional

but Author and Title are mandatory....
My first answer had an asterisk on the end that was not required?
Good luck....