   @type grapheme :: t
 
   @typedoc "Pattern used in functions like `replace/4` and `split/3`"
-  @type pattern :: t | [t] | :binary.cp()
+  @type pattern :: t | nonempty_list(t) | :binary.cp()
 
   @conditional_mappings [:greek, :turkic]
 

      false

  """
  @spec contains?(t, pattern) :: boolean
  def contains?(string, []) when is_binary(string) do
    false
  end

      iex> String.starts_with?("elixir", ["erlang", "ruby"])
      false

  An empty string will always match:

      iex> String.starts_with?("elixir", "")
