Вы должны использовать регулярное выражение однострочного режима с добавленным переключателем s:
regex = /[MSG](.*?)[/MSG]/igs;
В регулярном выражении совпадения точек каждый символ кроме новой строки \ n. С помощью однострочного свитча все символы новой строки объединяются в одну строку.
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
hello [MSG]abc[/MSG]
<HR>
hello [MSG]a <BR>
bc[/MSG]
<HR>
<textarea id='textarea' rows=3>
hello [MSG]abc[/MSG]
/
hello [MSG]a
bc[/MSG]
</textarea>
<button>convert</button>
<div></div>
<script>
$("button").on("click", function(){
var textarea = $("#textarea").val();
var regex = /\[MSG\](.*?)\[\/MSG]/igs;
textarea = textarea.replace(regex, "converted: $1 --");
$("div").text(textarea)
})
</script>
Эта статья может стать хорошим началом чтения https://www.regular-expressions.info/dot.html
$("button").on("click", function(){
var textarea = $("#textarea").val();
var regex = /\[MSG\](.*?)\[\/MSG]/igs;
textarea = textarea.replace(regex, "converted: $1 --");
$("div").text(textarea)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
hello [MSG]abc[/MSG]
<HR>
hello [MSG]a <BR>
bc[/MSG]
<HR>
<textarea id='textarea' rows=3>
hello [MSG]abc[/MSG]
/
hello [MSG]a
bc[/MSG]
</textarea>
<button>convert</button>
<div></div>