ocaml/opam#2724 overhauled the handling of package atoms, but there appears to have been a slight error with the handling of the + character. This wouldn't have been a detectable issue in 2016, and I expect the primary motivation was the single + used in versions for variants, but we now have conf-c++ and conf-g++ in opam-repository, and it's not possible to refer to their boolean variables in the natural syntax:
"i686-gcc-g++" {conf-mingw-w64-g++-i686:installed}
results in
error 2: File format error at line 27, column 40: '+' is not a valid token
I think it should be sufficient simply to allow one or more + characters in the ident regular expression.