Il problema con la tua query è che se usi [^PLE]
corrisponderebbe a qualsiasi carattere diverso da P o L o E. Stai cercando un'occorrenza di PLE consecutivamente. Quindi, usa
select REGEXP_SUBSTR(colname,'(.+)PLE',1,1,null,1)
from tablename
Questo restituisce la sottostringa fino all'ultima occorrenza di PLE nella stringa.
Se la stringa contiene più istanze di PLE ed è necessario estrarre solo la sottostringa fino alla prima occorrenza, utilizzare
select REGEXP_SUBSTR(colname,'(.+?)PLE',1,1,null,1)
from tablename