Un'espressione regolare leggermente più semplice:
SQL> with t as
2 ( select 'maxo_instr_interface' as txt from dual union all
3 select 'maxis_vendor_interface' from dual union all
4 select 'maximos_emps_interface2' from dual
5 )
6 select txt
7 , regexp_substr(txt,'[^_]+',1,2)
8 from t
9 /
TXT REGEXP_SUBSTR(TXT,'[^_]
----------------------- -----------------------
maxo_instr_interface instr
maxis_vendor_interface vendor
maximos_emps_interface2 emps
3 rows selected.
Saluti,
Rob.