La prueba de no coincidencia como esta puede ser complicada, por lo que recomiendo probar una coincidencia y negar el resultado.
No comienza con abc :
WHERE NOT REGEXP_LIKE(myString, '^abc')
no termina con abc :
WHERE NOT REGEXP_LIKE(myString, 'abc$')
En cuanto a por qué no funciona, como dice @DavidKnipe en su respuesta:es porque estás usando clases de caracteres. La expresión regular ^[^(abc)] analiza así:
- El primer
^dice "ancla al principio de la cadena" - El
[^(abc)]es una clase de carácter que dice "coincidir con cualquier single carácter siempre que no sea(oaoboco)".