I think you are suffering slightly from the popular compulsion to do everything in the regexp. Personally, I would have gone for the simplest thing that came to mind e.g.:
in reply to Stuck in komplexer regex, at least for me
and then also reassured myself that such a simple regexp should gain significantly in performance and should win the trade-off against having the extra substr operations which are cheap by comparison to m//.
my $keep = substr( $_, 0, 2 );
$_ = substr( $_, 2, length($_) );
$_ = $keep . $_;