Unless we are going to cope with really huge input re.findall would be
cleaner a bit