Измените регулярное выражение на
\([^()]*\)
, что будет соответствовать только самым внутренним выражениям в скобках. Если строки, предоставляемые вашими пользователями, будут содержать пары в скобках, не содержащие выражений для замены, вы должны быть более строгими в отношении шаблона, описывающего данные для замены, или изменить используемые вами символы-разделители.
Возможно, вы захотите начать с
\([a-zA-Z_]+\)
как шаблон, соответствующий идентификаторам в скобках без цифр.