Per cominciare, non suggerisco di usare "*" nelle regex. Sì, lo so, è il delimitatore multi-carattere più usato, ma è comunque una cattiva idea. Questo perché, sebbene corrisponda a qualsiasi quantità di ripetizione per quel personaggio, "qualsiasi" include 0, che di solito è qualcosa per cui vuoi lanciare un errore di sintassi, che non accetta. Invece, suggerisco di usare il +segno, che corrisponde a qualsiasi ripetizione di lunghezza> 1. Inoltre, da quello che posso vedere, hai a che fare con espressioni tra parentesi a lunghezza fissa. Di conseguenza, è possibile probabilmente utilizzare la {x, y}sintassi per specificare in modo specifico la lunghezza desiderata.
Tuttavia, se hai davvero bisogno di ripetizioni non avide, ti suggerisco di consultare l'onnipotente ?. Questo, se posto dopo alla fine di qualsiasi identificatore di ripetizione regex, costringerà quella parte del regex a trovare la minima quantità di testo possibile.
Detto questo, starei molto attento a ?come, come il cacciavite sonico nel Dr. Who, ha la tendenza a fare, come dovrei dirlo, cose "leggermente" indesiderate se non calibrate con cura. Ad esempio, per utilizzare l'input di esempio, identifica ((1)(nota la mancanza di un secondo rparen) come una corrispondenza.