AND
を使用した場合、最初のクエリは正しいでしょう。 OR
ではなく 。
ロジックは次のように単純であることがわかります。
where not (city like 'A%' or city like 'E%' or . . . ) and
. . .
論理の規則によれば、これは次と同等です。
where city not like 'A%' and city not like 'E%' and . . . ) and
. . .
正規表現については、文字列の先頭に比較のみがあります:
where not regexp_like(lower(city), '^[aeiou].*[aeiou]$')