       ~r(Process #PID<[\d.]+> terminating: {:function_clause, \[{String.Uni...)
     )
     |> stacktrace([
-      ~r{\(elixir\) unicode/unicode.ex:\d+: String.Unicode.length/1},
+      ~r{\(elixir\) (lib/elixir/)?unicode/unicode.ex:\d+: String.Unicode.length/1},
       ~r{\(elixir\) lib/task/supervised.ex:\d+: Task.Supervised.do_apply/2},
       ~r{\(stdlib\) proc_lib.erl:\d+: :proc_lib.init_p_do_apply/3}
     ])

    |> reason("{:error, :function_clause}")
    |> message(~r(Process #PID<[\d.]+> terminating$))
    |> stacktrace([
      ~r{\(elixir\) unicode/unicode.ex:\d+: String.Unicode.length/1},
      ~r{\(stdlib\) proc_lib.erl:\d+: :proc_lib.init_p/3}
    ])
  end

    |> reason("{:exit, :crash_proc_lib_spawn}")
    |> message(~r(Process #PID<[\d.]+> terminating$))
    |> stacktrace([
      ~r{test\/appsignal\/error_handler\/error_matcher_test.exs:\d+: anonymous fn\/0 in Appsignal.ErrorHandler.ErrorMatcherTest."?test proc_lib.spawn \+ exit"?/1},
      ~r{\(stdlib\) proc_lib.erl:\d+: :proc_lib.init_p/3}
    ])
  end
