You can simplify the regex to just
^[123][12]{2}$
and it will work the same, but your original should work fine.
So it has to be your C# code.
Try this:
private void MyTextBox_Validating(object sender, CancelEventArgs e)
{
if (sender is TextBox tb)
{
if (Regex.Match(tb.Text, "^[123][12]{2}$").Success)
{
e.Cancel = false;
}
else
{
e.Cancel = true;
}
}
}