проще всего одним регэкспом разделить текст на части по "СТРОКА#", по отдельности в каждой части убрать переносы строк другим регэкспом, и склеить части обратно, вставляя "СТРОКА#" между частями.
на жабаскрипте это бы выглядело как-то так:
text.split(/\n*СТРОКА#/).map(s=>s.replace(/\n/g, " ")).join("\nСТРОКА#")