in reply to Removing with regexps

Only regex (or better, only substitution) is probably not the right tool here. After removing (5) (arch) to inherit (the throne, etc.);, your dictionary will contain (4) followed by (6).

I would rather parse each line into an array (e.g. using a regex), then parse each entry and delete it from the array if archaic. Finally, I would serialize the array back to string.