Очень наивное решение, которое не связано с регулярным выражением, состояло в том, чтобы выполнить замену строки на вашем разделителе по строкам (предполагая запятую для разделителя):
string.replace(FullString, "," , "~,~")
Где вы можете заменить тильду (~) с соответствующим уникальным разделителем.
Тогда, если вы разделите свой новый разделитель, я верю, что вы получите желаемый результат.
Вы можете использовать REGEXP_SUBSTR
для этого:
SELECT str
, REGEXP_SUBSTR(str, '\d+') AS substr1
, REGEXP_SUBSTR(str, '[A-Za-z].*') AS substr2
FROM (
SELECT '95a6' AS str FROM DUAL UNION
SELECT '9 B2' FROM DUAL
) tests
Здесь \d+
соответствует последовательности цифр, а [A-Za-z].*
соответствует букве и всем после нее.