#!/usr/bin/perl # http://perlmonks.org/?node_id=1192942 use strict; use warnings; while() { print /(.*)/, " -> ", /\d/ ? s/(\D)(\d+)/$1 x ($2 + 1)/ger : s/(\D)\K(\1+)/ length $2 /ger; } __DATA__ raaaammmmmaaaaaj ra3m4a4j foobar really?