       ["foo"]
 
   """
-  @spec names(t) :: [String.t]
+  @spec names(t) :: [String.t()]
   def names(%Regex{re_pattern: re_pattern}) do
     {:namelist, names} = :re.inspect(re_pattern, :namelist)
     names

    if keep == 0 and length == 0 do
      do_split([h | t], string, new_offset, counter, trim, true)
    else
      <<_::binary-size(offset), part::binary-size(keep), match::binary-size(length), _::binary>> = string

      if keep == 0 and (length == 0 or trim) do
        [match | do_split([h | t], string, new_offset, counter - 1, trim, true)]

      ["a", "b", "c"]

  """
  @spec split(t, String.t(), [term]) :: [String.t()]
  def split(regex, string, options \\ [])

  def split(%Regex{}, "", opts) do
