Что-то вроде этого должно сработать или хотя бы приблизить вас.
REGEXP_SUBSTR(DATA, '(.*?)(x ?|$)', 1, 1, 'i', 1) AS length,
REGEXP_SUBSTR(DATA, '(.*?)(x ?|$)', 1, 2, 'i', 1) AS width,
REGEXP_SUBSTR(DATA, '(.*?)(x ?|$)', 1, 3, 'i', 1) AS height
Возвращает первую захваченную группу из набора символов, за которым следует без учета регистра «x» и необязательный пробел или конец строки. Четвертый аргумент - это возвращаемый экземпляр этого совпадения.