First off: Listen to Dan Grossmans advice above.
From my current understanding of your question, you want to get the verbatim content between <( and )> - no exceptions, no comment handling.
If so, try this RegExp
'/<\(((?:.|\s)*?)\)>/'
which you can use like this
preg_match_all('/<\(((?:.|\s)*?)\)>/', $yourstring, $matches)
It doesn't need case insensitivity, and it does lazy matching (so you can apply it to a string with several instances of matches).
Explanation of the RegExp: Starting with <(, ending with )> (brackets escaped of course), in between is the capturing group. At its core, we take either regular characters . or whitespace \s (which solves your problem, since line breaks are whitespace too). We don't want to capture every single character, so the inner group is non capturing - just either whitespace or character: (?:.|\s). This is repeated any number of times (including zero), but only until the first match is complete: *? for lazy 0-n. That's about it, hope it helps.