   Receives a regex, a binary and a replacement, returns a new
   binary where the all matches are replaced by replacement.
 
-  Inside the replacement, you can either give "&" to access the
-  whole regular expression or \N, where N is in integer to access
+  Inside the replacement, you can either give `&` to access the
+  whole regular expression or `\N`, where `N` is in integer to access
   a specific matching parens. You can also set global to false
   if you want to replace just the first occurrence.
 


  ## Examples

      iex> Regex.groups(%r/(?<foo>foo)/g)
      [:foo]

  """

  The re module provides several options, the ones available in Elixir, followed by
  their shortcut in parenthesis, are:

  * `unicode` (u) - enable unicode specific patterns like \p
  * `caseless` (i) - add case insensitivity
  * `dotall` (s) - causes dot to match newlines and also set newline to anycrlf.
    The new line setting can be overridden by setting `(*CR)` or `(*LF)` or
    `(*CRLF)` or `(*ANY)` according to re documentation
  * `multiline` (m) - causes `^` and `$` to mark the beginning and end of each line.
    Use `\A` and `\z` to match the end or beginning of the string
  * `extended` (x) - whitespace characters are ignored except when escaped and
    allow `#` to delimit comments
  * `firstline` (f) - forces the unanchored pattern to match before or at the first
    newline, though the matched text may continue over the newline
  * `ungreedy` (r) - invert the "greediness" of the regexp
  * `groups` (g) - compile with info about groups available

  The options not available are:

  * `anchored` - not available, use `^` or `\A` instead
  * `dollar_endonly` - not available, use `\z` instead
  * `no_auto_capture` - not available, use `?:` instead
  * `newline` - not available, use `(*CR)` or `(*LF)` or `(*CRLF)` or `(*ANYCRLF)`
    or `(*ANY)` at the beginning of the regexp according to the re documentation

  Most of the functions in this module accept either a binary or a char list
