with s as ( select 'BR65437812-909@-@BR12340000-990' str from dual) select regexp_substr(str, '[^-@]+', 1, 3) a, regexp_substr(str, '[^-@]+', 1, 4) b from s; A B ---------- --- BR12340000 990