SELECT regexp_substr('Order @ Confirm @@@@2791','@@@@(.*)$',1,1, null, 1) regexp_substr
FROM dual;
Если вы хотите ограничить совпадение цифрами:
SELECT regexp_substr('Order @ Confirm @@@@2791','@@@@(\d+)$',1,1, null, 1) regexp_substr
FROM dual;
regexp_replace тоже работает:
SELECT regexp_replace('Order @ Confirm @@@@2791','.*?@@@@(\d+)$', '\1') regexp_replace
FROM dual;
Обратите внимание, с помощью regexp_substr (), если совпадение не найдено, возвращается NULL, и с помощью regexp_replace (), если совпадение не найдено, возвращается исходная строка.