^(?!.*(?:vo|ViewObject)).*executeQuery.*
- это регулярное выражение, которое будет соответствовать спецификациям. Я не использовал группы захвата, потому что вы не указали, что хотите что-то захватывать.
Вы должны использовать решение с контейнером, потому что его легче понять.