Reemplace todas las ocurrencias dentro del patrón

Tengo una cuerda como esta

{{ some text @ other text @ and some other text }} @ this should not be replaced {{ but this should: @ }}

Quiero que se convierta

{{ some text ### other text ### and some other text }} @ this should not be replaced {{ but this should: ### }}

Supongo que el ejemplo es bastante sencillo y no estoy seguro de poder explicar mejor lo que quiero lograr con palabras.

Probé varios enfoques diferentes pero ninguno funcionó.