Тъй като regex е алчен по подразбиране. т.е. изразите .* или .+ опитайте се да вземете възможно най-много знаци. Следователно <.+> ще обхваща от първия < до последния >код> . Направете го мързелив, като използвате мързеливия оператор ? :
regexp_replace(teststring, '<.+?>')
или
regexp_replace(teststring, '<.*?>')
Сега, търсенето на > ще спре на първия > срещнат.
Обърнете внимание, че . включва >код> както и, следователно алчният вариант (без ? ) поглъща всички > но последното.