Att testa för icke-matchning som detta kan bli komplicerat, så jag skulle rekommendera att testa för en matchning och förneka resultatet.
Börjar inte med abc :
WHERE NOT REGEXP_LIKE(myString, '^abc')
Slutar inte med abc :
WHERE NOT REGEXP_LIKE(myString, 'abc$')
Vad gäller varför det inte fungerar, som @DavidKnipe säger i sitt svar:det är för att du använder karaktärsklasser. Regexet ^[^(abc)] analyserar så här:
- Den första
^säger "ankare till början av strängen" [^(abc)] är en teckenklass som säger "matcha vilken enkel som helst tecken så länge det inte är (elleraellerbellerceller)".