Recursive RegEx (?R), (?-2)
/calc(\(((?>[^()]+)|(?-2))*\))/su
calc() = true : calc()
calc(abc) = true : calc(abc)
calc(abc(xyz)123) = true : calc(abc(xyz)123)
calc(abc(xyz) (1(2)3) ) = true : calc(abc(xyz) (1(2)3) )
calc( abc	 ( xyz ) ( 1 ( 	2 ) 3 ) ) = true : calc( abc	 ( xyz ) ( 1 ( 	2 ) 3 ) )
calc( abc	 ( xy

z ) ( 1 ( 	2 ) 3 ) ) = true : calc( abc	 ( xy

z ) ( 1 ( 	2 ) 3 ) )
calc(abc = false
calc(abc(xyz)123 = false