As you know Oracle POSIX implementation of regexes does not support word boundaries. One workaround is suggested here: Oracle REGEXP_LIKE and word boundaries
However it does not work if I want to, for instance select all 4 character strings. Consider this, for example:
myvar:=regexp_substr('test test','(^|\s|\W)[\S]{4}($|\s|\W)')
This obviously selects only the first occurrence. I do not know how to do this in the Oracle world, although normally it is simply (\b)[\S]{4}(\b)
. The problem is that most woraround rely on some nonexistent feature, like lookaround etc.