Thanks, that's useful. Unfortunately, I still can't understand your goal.
The immediate cause of the error is that your $outer is wrapped in two levels of repeats: first the outer one before paste::paste, and then the inner one immediately surrounding it. So this basically tries to expand the repetition twice, which simply doesn't make sense, hence the error.
However, removing the outer $()+ would lead to the meta-variables $pat_name etc. not being expanded into a repetition, which is also wrong. This leads me to believe that there's something I am missing.
What are you trying to achieve with this code? What do you want the final expanded code to look like? Are you trying to expand the repetition itself several times, sort of "multiplying" it? Because that's not going to work if the matching specifiers weren't nested in the first place.