imo, regular expressions are the wrong tool for a fixed-width string.
perl -alne 'print join(":",unpack("A2A2A2A2A2A2",$_))' filename
On the other hand,
gawk -v FIELDWIDTHS='2 2 2 2 2 2' -v OFS=':' '{$1=$1;print }'
This is a little ridiculous with the task of changing print behavior. It might be more clear to just print $ 1, $ 2, $ 3, $ 4, $ 5, $ 6
source share