select listagg(lpad(regexp_substr(t1.str, '[^\.]+', 1, level), 5, '0'), '.') within group(order by level) from ( select '1.2.33.44.555.6666.77777' str from dual ) t1 connect by prior t1.str = t1.str and prior sys_guid() is not null and level <= regexp_count(t1.str, '\.') + 1
from (
select '1.2.33.44.555.6666.77777' str from dual
) t1
connect by prior t1.str = t1.str
and prior sys_guid() is not null
and level <= regexp_count(t1.str, '\.') + 1