in reply to regex multiple times

You were close. This will do what you intended.
$string='abchijk'; while ($string =~ s/(\w{2})(\w)/$1\|$2/) { print "$string\n"; }
When you were using (.*) it was matching the '|'

John