I don't see anything wrong with the first part--I suspect you're not matching the source exactly. Can you provide a couple story URLs that you're trying to affect?
The second one is because parentheses '()' are part of the regular express language and need to be escaped when they're part of the string to be matched:
Code:
replace_metadata:
category=>Angel: the Series=>Buffyverse
Teen Wolf \(TV\)=>Teen Wolf