Hello Shaun,
I want to clarify something about your question. Looking at your original post, I noticed this:
I know you can use the alteration, but then it doesn't actually show the hyphen or the forward slash and the user must type it
It sounds like you are already familiar with the options available to validate against variable input, such as [A-Z]{1,3}-\d\d/\d\d , and are asking if it possible to achieve the same variable input validation, but still show the hyphen and slashes in place while the user is typing.
The reason why including a wildcard or alternation no longer displays that information is that there is no longer a logical place to put the hyphen. Does it go after the first character? The third?
If you wish to always display the hyphen, would it be possible to use a padding character to make all the codes the same length?
If it's really important to have both the variable length and to not force users to type the hyphen and slash, an alternative would make the - and the / optional, then regularly run a workflow to fix up values that do not have the - and the /. For example, [A-Z]{1,3}-?\d\d/?\d\d makes the hyphen and the slash optional.
I'm not a regular workflow user, so I'm not going to suggest a workflow myself, but I would caution that if you go this route, you are careful with your starting rule to avoid bogging down workflow.