This is more complex than it may sound. It would be far simpler to just let the user type anything then append the prefix either onsubmit or in the back end code.
If you can't do that for some reason
here are some approaches to setting the caret position. As far as keeping the text there, you'll have to listen to
onkeydown (or similar), detect the delete key then determine if the current caret position is inside your non-removable text.
If you only have to support modern browsers you could use a
pattern attribute with a regex which requires that text to be at the start.