text: Title: tox -e expansion seems to parse incorrectly
  Body: I'm using tox 4.2.3.
  ``` ini
  [tox]
  [testenv]
  deps =
    pytest6.x: pytest~=6.0
    pytest7.x: pytest~=7.0
  commands = pytest --version
  ```
  ``` console
  $ tox -e py38-pytest7.x
  py38-pytest7.x: commands[0]> pytest --version
  pytest 7.2.0
    py38-pytest7.x: OK (0.57=setup[0.15]+cmd[0.42] seconds)
    congratulations :) (0.87 seconds)
  ```
  ``` console
  $ tox -e 'py38-pytest{6.x,7.x}'
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/tox_env/api.py", line 248, in setup
      self._setup_env()
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/tox_env/python/runner.py", line 107, in _setup_env
      self._install_deps()
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/tox_env/python/runner.py", line 110, in _install_deps
      requirements_file: PythonDeps = self.conf["deps"]
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/config/sets.py", line 114, in __getitem__
      return self.load(item)
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/config/sets.py", line 125, in load
      return config_definition.__call__(self._conf, self.loaders, ConfigLoadArgs(chain, self.name, self.env_name))
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/config/of_type.py", line 102, in __call__
      value = loader.load(key, self.of_type, self.factory, conf, args)
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/config/loader/api.py", line 124, in load
      raw = self.load_raw(key, conf, args.env_name)
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/config/loader/ini/__init__.py", line 42, in load_raw
      return self.process_raw(conf, env_name, self._section_proxy[key])
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/config/loader/ini/__init__.py", line 56, in process_raw
      factor_filtered = filter_for_env(strip_comments, env_name)  # select matching factors
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/config/loader/ini/factor.py", line 13, in filter_for_env
      set(chain.from_iterable([(i for i, _ in a) for a in find_factor_groups(name)])) if name is not None else set()
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/config/loader/ini/factor.py", line 13, in <listcomp>
      set(chain.from_iterable([(i for i, _ in a) for a in find_factor_groups(name)])) if name is not None else set()
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/config/loader/ini/factor.py", line 65, in find_factor_groups
      for env in expand_env_with_negation(value):
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/config/loader/ini/factor.py", line 83, in expand_env_with_negation
      raise ValueError(variant_str)
  ValueError: py38-pytest{6.x
  py38-pytest{6.x: FAIL ✖ in 0.1 seconds
  7.x}: internal error
  Traceback (most recent call last):
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/session/cmd/run/single.py", line 45, in _evaluate
      tox_env.setup()
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/tox_env/api.py", line 248, in setup
      self._setup_env()
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/tox_env/python/runner.py", line 107, in _setup_env
      self._install_deps()
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/tox_env/python/runner.py", line 110, in _install_deps
      requirements_file: PythonDeps = self.conf["deps"]
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/config/sets.py", line 114, in __getitem__
      return self.load(item)
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/config/sets.py", line 125, in load
      return config_definition.__call__(self._conf, self.loaders, ConfigLoadArgs(chain, self.name, self.env_name))
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/config/of_type.py", line 102, in __call__
      value = loader.load(key, self.of_type, self.factory, conf, args)
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/config/loader/api.py", line 124, in load
      raw = self.load_raw(key, conf, args.env_name)
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/config/loader/ini/__init__.py", line 42, in load_raw
      return self.process_raw(conf, env_name, self._section_proxy[key])
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/config/loader/ini/__init__.py", line 56, in process_raw
      factor_filtered = filter_for_env(strip_comments, env_name)  # select matching factors
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/config/loader/ini/factor.py", line 13, in filter_for_env
      set(chain.from_iterable([(i for i, _ in a) for a in find_factor_groups(name)])) if name is not None else set()
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/config/loader/ini/factor.py", line 13, in <listcomp>
      set(chain.from_iterable([(i for i, _ in a) for a in find_factor_groups(name)])) if name is not None else set()
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/config/loader/ini/factor.py", line 65, in find_factor_groups
      for env in expand_env_with_negation(value):
    File "/ifs/home/dtucker/.local/pipx/venvs/tox/lib/python3.8/site-packages/tox/config/loader/ini/factor.py", line 83, in expand_env_with_negation
      raise ValueError(variant_str)
  ValueError: 7.x}
    py38-pytest{6.x: FAIL code 2 (0.10 seconds)
    7.x}: FAIL code 2 (0.01 seconds)
    evaluation failed :( (0.25 seconds)
  ```