Вопрос для гуру регулярных выражений
Сперва убрать из строки все нескобки (то есть найти регулярным выражением «[^()]» и заменить на пустую строку), затем перейти от регулярных выражений к обыкновенному программированию — пройтись по итоговой строке скобок в посимвольном цикле, который к значению некоторой переменной (изначально имеющей нулевое значение) прибавляет единицу, если найден символ «(», и вычитает единицу, если найден символ «)», причём цикл сразу завершается, если значение меньше нуля (найден дисбаланс скобок), а в конце цикла (что соответствует концу строки скобок) это значение также должно быть равно нулю, иначе опять же найден дисбаланс скобок.
Regexp-в не то средство которым нужно решать такого плана задачу. Они не предназначены для работы с вложенными/рекурсивными структурами. 
Теоретически конечно можно изголится и выдать некое решение. Все зависит насколько «умный» должен быть алгоритм.
Правильное решение для простого случая (когда больше ничего кроме проверки скобочек не иребуется) — простая функция на вашем любимом языке которая считает скобочки. Для более продвинутых случаев — библиотека для лексического/синтаксического анализа.