Split a character string based on change of character
func group(str) {
gather {
while (var match = (str =~ /((.)\g{-1}*)/g)) {
take(match[0])
}
}
}
say group(ARGV[0] \\ 'gHHH5YY++///\\').join(', ')
Output:
g, HHH, 5, YY, ++, ///, \