No, eso no tiene nada que ver con una expresión regular. El cursor cambia independientemente si usas una expresión regular o no. Es el hecho de cambiar el valor del input el que cambia el cursor.
Simplemente debes volver a colocar el cursor en su posición original, lo haces actualizando los valores de
selectionStart y
selectionEnd (a pesar de que no es una selección).
$('#form_x').on('keyup', function(e)
{
if($('input[name=input_x]').is(e.target))
{
if(Character_Writing(e.keyCode))
{
let start = form_x.input_x.selectionStart;
form_x.input_x.value = form_x.input_x.value.toUpperCase();
form_x.input_x.setSelectionRange(start, start);
}
}
});