Nie regexp, ale działa.
select xmlcast( xmlquery('for $w in tokenize($text," ") return
if(fn:matches($w,"[0-9]{1,3}")) then (xs:decimal($w)+$offset) else ($w)'
passing 'i want to increase those numbers 20 and 15' as "text", 5 as "offset" returning content) as varchar2(1000))
from dual;
Rozwiązanie polega na szukaniu liczb całkowitych w tekście. W przypadku dziesiętnego wyrażenia regularnego należy rozszerzyć.
\d
i [:digit:]
nie są obsługiwane przez xmlquery