Problém s vaším dotazem je, že pokud použijete [^PLE]
odpovídalo by to všem znakům jiným než P nebo L nebo E. Hledáte výskyt PLE za sebou. Takže použijte
select REGEXP_SUBSTR(colname,'(.+)PLE',1,1,null,1)
from tablename
To vrátí podřetězec až po poslední výskyt PLE v řetězci.
Pokud řetězec obsahuje více instancí PLE a je třeba extrahovat pouze podřetězec až do prvního výskytu, použijte
select REGEXP_SUBSTR(colname,'(.+?)PLE',1,1,null,1)
from tablename