Using your own example from Babylon.js docs [PG] Simple example of adding a fullscreen BabylonGUI to your scene.:
Fill input text with 123456, select\highlight 23 and ctrl+c.
Select/highlight 56 (so its highlighted) and ctrl+v.
You will get 12342356 or 12345623 depending where was carrot after you finished highlighting.
This is not what regular user expects, should be 123423
[GUI] InputText.prototype._onPasteText doesn’t remove whatever is highlighted first before adding new text.
I failed to find a reliable workaround without using internal fields for that oversight especially in situations where i have to use OnTextChangeObservable.