anchor.diff:  used, the group will be a capturing group, which means the positions from
   the subject strings that matched between `(` and `)` will be recorded.
   
  -Capture groups are numbered starting at 1 (0 is a special capture group
  -for the whole sequence that matched), They are numbered in the order of
  -appearance of their `(` in the regex.
  +Capture groups are numbered starting at 1. They are numbered in the order of
  +appearance of their `(` in the regex. A special capture group 0 is
  +for the whole sequence that matched.
   
   `(?:` introduces a non capturing group, which will not record the
  -matches positions.
  +matching positions.
   
   Alternations
   ------------
  
positive.code:        and the current character are word, or are not.
  * `\A` matches at the subject string begin.
  * `\z` matches at the subject string end.
  * `\K` matches anything, and reset the start position of the matching
         text to the current position.
  
  More complex assertions can be expressed with lookarounds:
  
  
negative.code: 
  By default, quantifiers are *greedy*, which means they will prefer to
  match more characters if possible. Suffixing a quantifier with `?` will
  make it non-greedy, meaning it will prefer to match as few characters
  as possible.
  
  Zero width assertions
  ---------------------
  