AFAIK: вы не можете извлечь набор с помощью функций регулярного выражения Oracle напрямую, но вы можете перебирать строку, вызывая функцию regex_substr
и сохраняя результат в коллекцию (или что вам нужно) в качестве обходного пути, что-то вроде этого:
...
fOccurence := 0;
loop
fSubstr := regex_substr(fSourceStr, '<image>.*?<type>(.+?)<\/type>', 1, fOccurence, 'gci');
exit when fSubstr is null;
fOccurence := fOccurence + 1;
fResultStr := fResultStr || fSubstr;
end loop;
...