O teste de não correspondência como esse pode ser complicado, então eu recomendo testar uma correspondência e negar o resultado.
Não inicia com
abc
:WHERE NOT REGEXP_LIKE(myString, '^abc')
Não termina com
abc
:WHERE NOT REGEXP_LIKE(myString, 'abc$')
Quanto ao motivo de não funcionar, como @DavidKnipe diz em sua resposta:é porque você está usando classes de caracteres. A regex
^[^(abc)]
analisa assim:- O primeiro
^
diz "âncora no início da string" - O
[^(abc)]
é uma classe de caracteres que diz "combinar com qualquer único caractere desde que não seja(
oua
oub
ouc
ou)
".