/(?\w+\b) # Looks for "\w" (Word characters followed by a word boundary (look up \w and \b) # and creates $+{name} \s(?\w+)\s # Same thing - Whitespace on both sides (?\w+\s) # Same thing .*\[(?[^\]]+)/ # looks for "[", followed by anything that is NOT "]", and populates $+{date}