It's not surprising it doesn't match the author. The expression expects a different file name than you actually have- it looks for one word followed by a colon, which is discarded, followed by "title by author". For your filenames, try something like
Code:
(?P<title>.+?)\sby\s(?P<author>.+?)