codingBat plusOut usando regex

Isso é semelhante aos meus esforços anteriores (wordEnds erepeatEnd): como exercício mental, quero resolver esse problema de brinquedo usando apenas regex.

Descrição de codingbat.com:

Dada uma sequência de caracteres e uma sequência de palavras não vazia, retorne uma versão da sequência original em que todos os caracteres foram substituídos por sinais de adição ("+"), exceto as aparências da palavra sequência que são preservadas inalteradas.

plusOut("12xy34", "xy") → "++xy++"
plusOut("12xy34", "1") → "1+++++"
plusOut("12xy34xyabcxy", "xy") → "++xy++xy+++xy"

Não há menção de permitir ou não sobreposição (por exemplo, o que éplusOut("+xAxAx+", "xAx")?), mas minha solução não regex não lida com sobreposição e passa, então acho que podemos assumir ocorrências não sobrepostas deword se simplificar (pontos de bônus se você fornecer soluções para ambas as variantes!).

De qualquer forma, eu gostaria de resolver isso usando o regex (do mesmo estilo que eu fiz antes com os outros dois problemas), mas estou absolutamente perplexo. Nem tenho nada para mostrar, porque não tenho nada que funcione.

Então, vamos ver o que a comunidade stackoverflow cria.

questionAnswers(4)

yourAnswerToTheQuestion