buenas...
@goteen_mx, si me permites, una opinion sobre tu respuesta. honestamente no comprendi muy bien tu explicacion. ademas, creo que la respuesta es erronea aunque el codigo demuestra una solucion. en realidad, la razon por la que aparece ese ultimo caracter (la coma y el numero) se debe a que la expresion contiene una sub-expresion. en dicho caso, las sub-expresiones crean grupos y dependiendo de la funcion que utilice la expresion regular puede devolver un array con varios elementos. para evitarlo, simplemente se le indica a la expresion que no debe crear un grupo de la sub-expresion.
Código:
/<!--:es-->(?:.|\n)*?<!--:-->/