Wenn du nur eine Verschachtelungtiefe hast sollte es eigentlich kein großes Abenteuer sein.
const fragments = code.match(/\((?:[^)(]+|\([^)(]*\))*\)/g);
Das Suchmuster findet eine öffnende Klammer, gefolgt von ein oder mehr Zeichen, die keine Klammer sind, oder eine öffnende Klammer gefolgt von beliebig vielen Zeichen, die keine Klammer sind, gefolgt von einer schließenden Klammer, gefolgt von einer schließenden Klammer.