expresiones regulares permite un carácter (no debería) ¿por qué?

Hola, estoy tratando de crear una expresión regular que reconozca el dinero y los números que se ingresan. Tengo que permitir números porque estoy esperando que los números sin formato se ingresen de manera programática y luego los daré formato yo mismo. Por alguna razón, mi expresión regular está permitiendo un carácter de una letra como una posible entrada.

[\$]?[0-9,]*\.[0-9][0-9]

Entiendo que mi expresión regular acepta el caso donde se agregan varias comas y también necesita dos dígitos después del punto decimal. He tenido una idea de cómo arreglar eso ya. Lo he reducido a posiblemente el*\. como el problema

EDITAR

Encontré la expresión regular que funcionó.[\$]?([0-9,])*[\.][0-9]{2} pero sigo sin saber cómo o por qué estaba fallando en primer lugar

Estoy usando el.formatCurrency() para formatear la entrada en un formato de dinero. Se puede encontraraquí pero todavía me permite usar caracteres alfa, así que tengo que enmascararlo más usando el$(this).inputmask('Regex', { regex: "[\$]?([0-9,])*[\.][0-9]{2}" }); donde se encuentra la mascara de entradaaquí y$(this) es una referencia a un elemento de entrada de texto de tipo. Mi código se vería algo como esto

<input type="text" id="123" data-Money="true">

 //in the script
 .find("input").each(function () {          
        if ($(this).attr("data-Money") == "true") {                            
            $(this).inputmask('Regex', { regex: "[\$]?([0-9,])*[\.][0-9]{2}" });
            $(this).on("blur", function () {
                $(this).formatCurrency();
            });

Espero que esto ayude. Intento crear un JSfiddle pero Idk cómo agregar bibliotecas externas / plugin / extensión

Respuestas a la pregunta(2)

Su respuesta a la pregunta