This revision adds the !substr bang operator, which, as you might expect, extracts a substring of a string.
I update the documentation and added a test.
I'm not concerned about confusion between !subst and !substr because I plan on replacing !subst with !replace in the near future.
This should be indented with 4 spaces as the rest of the operators.