This is not as straight-forward as it looks.
Normally you'd use lookarounds for something like this, but your case is pretty unorthodox. You want to get non-line related results (as any line can have any number of results) with a line related requirement (the absence of #).
Lookarounds will normally be line-specific and only have one result.
My solution:
\s*?#.*(?:\n|$)|(\([A-Za-z0-9\s\-]*\))
DEMO
You won't avoid having your results within capture groups I'm afraid. In this case, all of your results will be $1. The idea is that you describe the possibility of a commented line, and if it's not met, you describe how items you're interested could look. Since the commented line option is first, the items within it won't be tested
I also changed your regex to also contain spaces, dashes and numbers to have more cases of (content123)
and alike. If you don't want that, discard the changes and use \s*?#.*(?:\n|$)|(\([A-Za-z]*\))
There are definitely some other ways to do this, but this is the one i had most success with.