We don't know what language you are implementing this regex in, but if in a language/environment that supports (*SKIP)(*FAIL)
(like php) then it is very useful. (Pattern Demo)
\([^)]*\)(*SKIP)(*FAIL)|[^(\s]+
This will accurately isolate the desired substrings in this test string...
APPLE (BANANA) APPLE (ORANGE)
(BANANA APPLE APPLE ORANGE)
APPLE APPLE APPLE
(APPLE ORANGE BANANA)
APPLE (APPLE)
PINEAPPLE
(BANANA APPLE)
() APPLE ()
(ORANGE KIWI
APPLE
KIWI)
(ORANGE APPLE) APPLE
Because it does not use capture groups or lookarounds or lazy qualifiers, it performs very quickly.