Lets look at a slightly simplified case:
- Type Shift-X
- Type Shift-X
Produces the sequence:
- Press Shift
- Press X with shift key modifier set
- Release X with shift key modifier set
- Release Shift
- Press Shift
- Press X with shift key modifier set
- Release X with shift key modifier set
- Release Shift
Compare that with:
- Press and Hold Shift
- Type Shift-X
- Type Shift-X
- Release Shift
Which produces:
- Press X with shift key modifier set
- Release X with shift key modifier set
- Press X with shift key modifier set
- Release X with shift key modifier set
- Release Shift
In almost every case, this will result in no change.
However in some apps, eg where holding the shift key down produces some modal change, then it will result in different behaviour.
In that case, the app does not really care about the shift key being held down, and it just looks at each key in turn and the modifiers associated with this, and so the simple sequence is exactly what you would normally use.
The Press and Hold Shift keeps the shift key pressed for the duration. However if you explicitly type a keystroke without the shift key (including via Insert Text by Typing action with lowercase letters for example), the shift key will be released to type the character and then re-pressed.
Press and Hold Shift is about the behaviour of the shift key while nothing else is happening - it does not override the behaviour of other actions and their use of the shift key.
Also note that virtual and physical keys are not interchangeable, so if you use the Press and Hold Shift action, and it was still in effect when you pressed the “X” key on the keyboard, you would get a lowercase “x”.