That example doesn’t really fit since one easily could compute the negation of “a|(aa)+” in linear time by simply returning the opposite of the top-level node in the tree.
Perhaps something like “X|!Y” or similar might be impossible?
Perhaps something like “X|!Y” or similar might be impossible?