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(ouaouboucou)".