This is an open parenthesis followed everything that is not a close parnethesis up to a close parenthesis, the close and the colon. This will isolate each group rather than matching the longest string if more than one is present.
Should do it
But it will find all of (some text): and then (some more text): and finally (the last text): as a single match. It also will find (some text with a close parenthesis) but no colon followed by anything at all up to a close parenthesis and colon): from the firts open to the last colon.
While that might not be a likely occurrence inthe text, the negative class assures that only discreet pairs followed by the colon will match. \(.+?\): would also work as the ? restricts the match to the shortest match, and it's probably faster than the negative class.
The \(.+?\): expression, however, still suffers from finding too much if there's no colon after the first close parenthesis because the dot wildcard includes punctuation. The negative class is going to stop when it hits one.
Thanks so much. That works fine for my purposes. Much appreciated! Have a great week.