^ # Match only if at start of string (or line) [ ]+ # Match any of the listed characters, one-or-more times (as many as possible) Pin # Match a literal sequence ("Pin") : # Match a literal ':' character [ ]* # Match any of the listed characters, zero-or-more times (as many as possible) ( # The start of a capturing block ($1) [^\.]* # Match any character not listed, zero-or-more times (as many as possible) ) # The end of $1 \. # Match a literal '.' character ( # The start of a capturing block ($2) [^ ]* # Match any character not listed, zero-or-more times (as many as possible) ) # The end of $2 [ ]* # Match any of the listed characters, zero-or-more times (as many as possible) out # Match a literal sequence ("out")