my $v = "FD02:3539:700B:1::FE"; #way 1 if ( $v =~ /^([0-9A-F]{4}):([0-9A-F]{4}):([0-9A-F]{4}):([0-9A-F]{1})::([0-9A-F]{2})/ ) { print "$1 - $2 - $3 - $4 - $5\n"; } #way 2 my @v = split /::?/, $v; print join (" + ", @v), "\n";