you cannot use a negated character class to match a q not followed by a u. Negative lookahead provides the solution: q(?!u).
Positive lookahead works just the same. q(?=u) matches a q that is followed by a u
For the save() operation to be cascaded, you need to enable CascadeType.SAVE_UPDATE, using the proprietary Hibernate Cascade annotation, since save() is not a standard JPA operation. Or you need to use the persist() method, and not the save() method.