http://qs1969.pair.com?node_id=251185


in reply to How do I replace certain character if condition exists

Possibly a simplistic solution, but have you tried using negative lookahead? For instance:
abowley@krait:~$ (echo 'Madrid(Spain' && echo 'Madrid(Spain)') | perl +-pe 's/\((?![^)]*\))/ /g;' Madrid Spain Madrid(Spain)
Breaking the regex down:
s/ \( # an open bracket (?! # _not_ followed by [^)]* # anything except brackets (e.g. 'Spain') \) # followed by a bracket ) / /gz;