### Summary

It is not possible to use versions for installing packages like it is documented:
> - Comparison operators for package version are valid here C(>), C(<), C(>=), C(<=). Example - C(name>=1.0)

I tried this:
```yaml
- name: "Install packages"
  become: true
  ansible.builtin.dnf:
    allow_downgrade: True
    update_cache: True
    state: present
    name:
      - mypackage>=0.1.2-3.el8
      - mypackage>=0.1.2-3
      - mypackage>=0.1.2
      - C(mypackage>=0.1.2-3.el8)
```
The only thing that works is `mypackage-0.1.2-3.el8`.

### Issue Type

Bug Report

### Component Name

dnf

### Ansible Version

```console
$ ansible --version
ansible 2.9.27
  config file = /home/ngoeddel/git/ansible-v2/ansible.cfg
  configured module search path = ['/home/ngoeddel/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.6/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.6.8 (default, Apr 12 2022, 06:55:39) [GCC 8.5.0 20210514 (Red Hat 8.5.0-10)]
```


### Configuration

```console
# if using a version older than ansible-core 2.12 you should omit the '-t all'
$ ansible-config dump --only-changed -t all

COLLECTIONS_PATHS(/home/ngoeddel/git/ansible-v2/ansible.cfg) = ['/home/ngoeddel/git/ansible-v2/collections']
COMMAND_WARNINGS(/home/ngoeddel/git/ansible-v2/ansible.cfg) = False
DEFAULT_FILTER_PLUGIN_PATH(/home/ngoeddel/git/ansible-v2/ansible.cfg) = ['/home/ngoeddel/git/ansible-v2/filter_plugins']
DEFAULT_HOST_LIST(/home/ngoeddel/git/ansible-v2/ansible.cfg) = ['/home/ngoeddel/git/ansible-v2/environment/openi-epu6/dev']
DEFAULT_ROLES_PATH(/home/ngoeddel/git/ansible-v2/ansible.cfg) = ['/home/ngoeddel/git/ansible-v2/roles']
DEFAULT_STDOUT_CALLBACK(/home/ngoeddel/git/ansible-v2/ansible.cfg) = debug
DEFAULT_STRATEGY(/home/ngoeddel/git/ansible-v2/ansible.cfg) = linear
DEFAULT_TIMEOUT(/home/ngoeddel/git/ansible-v2/ansible.cfg) = 30
DEFAULT_VAULT_PASSWORD_FILE(/home/ngoeddel/git/ansible-v2/ansible.cfg) = /home/ngoeddel/.my.ansible.cnf
DISPLAY_SKIPPED_HOSTS(/home/ngoeddel/git/ansible-v2/ansible.cfg) = False
INTERPRETER_PYTHON(/home/ngoeddel/git/ansible-v2/ansible.cfg) = /usr/bin/python3
RETRY_FILES_ENABLED(/home/ngoeddel/git/ansible-v2/ansible.cfg) = False
```


### OS / Environment

Rocky Linux release 8.6 (Green Obsidian)


### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
```yaml (paste below)
- name: "Install packages"
  become: true
  ansible.builtin.dnf:
    allow_downgrade: True
    update_cache: True
    state: present
    name:
      - mypackage>=0.1.2-3.el8
      - mypackage>=0.1.2-3
      - mypackage>=0.1.2
      - C(mypackage>=0.1.2-3.el8)
```


### Expected Results

I expect it to install the package `mypackage` in at least version 0.1.2-3.el8 or higher if not already installed.

### Actual Results

```console
fatal: [somehost]: FAILED! => {
    "changed": false,
    "failures": [
        "No package C(mypackage>=0.1.2-4.el8) available."
    ],
    "rc": 1,
    "results": []
}

MSG:

Failed to install some of the specified packages
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
if install_result['msg']:
                                response['results'].append(install_result['msg'])
            else:
                
                if filenames:
                    self.module.fail_json(
                        msg="Cannot remove paths -- please specify package name.",
                        results=[],
                    )
                
                if module_specs and self.with_modules:
                    for module in module_specs:
                        try:
                            if self._is_module_installed(module):
                                response['results'].append("Module {0} removed.".format(module))
                            self.module_base.remove([module])
                            self.module_base.disable([module])
                            self.module_base.reset([module])
                        except dnf.exceptions.MarkingErrors as e:
                            failure_response['failures'].append(' '.join((module, to_native(e))))
                for group in groups:
                    try:
                        self.base.group_remove(group)
                    except dnf.exceptions.CompsError:
                        
                        pass
                    except AttributeError:
                        
                        
                        #