Последовав примеру и совету Elic сделал так:
WITH test_string AS (
SELECT '1/2/KEY KEY/KEY/MAY 111 111----222\222/111///111 333 333 333' AS val FROM DUAL
)
SELECT REGEXP_REPLACE(test_string.val,'([[:digit:]]{1,})([[:space:]]|[[:punct:]]){1,}\1','\1')
FROM test_string;
-- '1/2/KEY KEY/KEY/MAY 111----222/111 333 333'
Правда, в данном случае, если кол-во одинаковых строк подряд было 3, в результате остаются 2 одинаковых строки.