** (Mix) Application name must start with a letter and have only lowercase letters, numbers and underscore, got: “kv”. The application name is inferred from the path, if you’d like to explicitly name the application then use the “–app APP” option.
mix --version or elixir --version should give you necessary insights. For me the command you pasted works as is. I tried on 2 hosts, one has elixir 1.6.4, the other is 1.8.0.
This is very likely an old Elixir version that was compiled on Erlang/OTP 19 but running on Erlang/OTP 20 which had changes to the regex implementation. Later we fixed those changes so we can cross compile regexes between OTP versions. So updating Elixir should fix it.
Erlang/OTP versioning is independent from the versioning of Elixir. Each version of Elixir supports a specific range of Erlang/OTP versions. The compatibility table is shown below.
ELIXIR VERSION
SUPPORTED ERLANG/OTP VERSIONS
1.0
17 - 17 (and Erlang/OTP 18 from v1.0.5)
1.1
17 - 18
1.2
18 - 18 (and Erlang/OTP 19 from v1.2.6)
1.3
18 - 19
1.4
18 - 19 (and Erlang/OTP 20 from v1.4.5)
1.5
18 - 20
1.6
19 - 20 (and Erlang/OTP 21 from v1.6.6)
1.7
19 - 21
1.8
20 - 21
While Elixir often adds compatibility to new Erlang/OTP versions on released branches, such as support for Erlang/OTP 20 in v1.4.5, those releases usually contain the minimum changes for Elixir to run without errors. Only the next minor release, in this case v1.5.0, does effectively leverage the new features provided by the latest Erlang/OTP release.