When pressing and holding shift key, it inverts Numlock state on computers, this is a historical artifact from the 80-x when numpad was added. So pressing Shift + Alpha0 with Numlock in the "on" state will be interpreted as pressing Insert, the same way as pressing just Alpha0 if Numlock was in the "off" state. Unfortunately the code that is driving "Input.GetKey" api is based on virtual keycode on Windows, and we can't distinguish between these two states that easily. This is fixed in the Input System package, so if you require this functionality please use it for keyboard input.