Ruby 2.0, 42 chars30 bytes
gets.chars.each_slicegsub!(2){|c,n|$><<c*n.to_i} Ruby 2.0, 41 chars
/(a=gets.chars)(.each)/){c,n,*a=a;$><<c*n$1*$2.to_i} Shows an error after the string has been printed; Run27 bytes code + 3 bytes to run it with something likethe ruby runlength.rb 2>/dev/null-p if you mind.flag:
$ ruby -p rld.rb <<< ":144,1'1" :4444,'