By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
with t as (
select 'AA/BB' myval from dual
union all select 'AA/BB1' from dual
union all select 'AA/BB-1' from dual
union all select 'BB' from dual
union all select 'BB' from dual
union all select 'BB1' from dual
union all select 'BB-1' from dual
union all select 'BB/BB' from dual
)
select myval, regexp_replace(myval, 'BB($|[^/])', 'XX\1') newval from t
MYVAL | NEWVAL |
---|---|
AA/BB | AA/XX |
AA/BB1 | AA/XX1 |
AA/BB-1 | AA/XX-1 |
BB | XX |
BB | XX |
BB1 | XX1 |
BB-1 | XX-1 |
BB/BB | BB/XX |