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(
oa
ob
oc
o)
".