Будет ли это полезно?
SQL> with test (col) as
2 (select 'abc\\10.2.4\\string with spaces\\1.2.3-another-string\\def\\string_with_underscores' from dual)
3 select regexp_substr(replace(col, 'def', '#'), '[^#)]+', 1, level) res
4 from test
5 connect by level <= regexp_count(col, 'def') + 1;
RES
--------------------------------------------------------------------------------
abc\\10.2.4\\string with spaces\\1.2.3-another-string\\
\\string_with_underscores
SQL>
- строки 1 и 2 представляют ваши данные
- строки 3 - 5 используются для разбиения этого столбца на строки
- строка 3: REPLACE заменяет 'def' на '#', что становится новым разделителем
- , строка 5: у вас будет столько строк, сколько разделителей 'def' встрока + 1 (т. е. если есть 4 разделителя «def», в результате вы получите 5 строк)
Для этого параметра не требуется знать заранее сколько подстрок вы получите в результате, оно динамическое .