Прежде всего извините: это не ответ, я пока не могу комментировать, но я все равно решил дать вам 2 цента.Я нашел вашу проблему заинтригованной и немного ее рассмотрел.
Получается так:
<cfset multipleMatches = REReplaceNoCase(myStr, '(<.*?>+)', '- Match -' ,'ALL')>
будет соответствовать тегам, как и ожидалось, но это:
<cfset singleMatche = REReplaceNoCase(myStr, '(<.*?>+$)', '- Match -' ,'ALL')>
внезапно станет супер жадным.
Мне это кажется ошибкой, но я не уверен, что в отношении регулярных выражений я могу отличить ошибку от достаточно продвинутой функции, именно поэтому использование отрицательногоКлассы персонажей, как Джоуи, - лучший выбор, чтобы не поцарапать голову.