This might help you I don't know how to retain the '.' delimiter after splitting, but I do know how to put them back. I also appears that the spaces that follow the delimiter should be removed. The following regular expression will split ensuring that the '.' delimiter is not followed by a ')'. You may end up with an extra empty string, which can be removed:
str = "This is a great (feeling.) thing. It's very interesting."
l = re.split(r'\.(?!\))', str)
# results are: ['This is a great (feeling.) thing', " It's very interesting", '']
if len(l[-1]) == 0:
l.pop(-1) # get rid of last, empty string
l = [s.strip() + '.' for s in l] # get rid of leading and trailing spaces and add back delimiter
['This is a great (feeling.) thing.', "It's very interesting."]
To fix the issue you can do First you must capture the opening parenthesis and then use a conditional pattern (I know the link is to php.net but I find it useful when referencing regexes, it also includes an example which exactly matches your case) that will only be applied if the first opening parenthesis is matched. The pattern..
Java regex : matching a char except when preceded by another char