### Summary

When using `difference` filter with element that have just case-difference in the value of the filter, only one is kept.

### Issue Type

Feature Request

### Component Name

filters

### Ansible Version

```console
$ ansible --version
ansible 2.9.10
  config file = None
  configured module search path = ['/home/user/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.8/site-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.8.8 (default, Mar  4 2021, 21:24:42) [GCC 10.2.0]
```


### Configuration

```console
$ ansible-config dump --only-changed
```


### OS / Environment

RHEL 7

### Steps to Reproduce

```yaml
- hosts: localhost
  vars:
    list1:
      - a
      - A
      - b
      - B
    list2:
      - b
  tasks:
    - debug:
        msg: "{{ list1 | difference(list2) }}"
    - debug:
        msg: "{{ list1 | difference([]) }}"
```

```shell
ansible-playbook playbook.yml
```

### Expected Results

**All** the elements of `list1` that don’t exist in `list2` (as documented)

```
TASK [debug] ***********************
ok: [localhost] => {
    "msg": [
        "a",
        "A",
        "B"
    ]
}

TASK [debug] ***********************
ok: [localhost] => {
    "msg": [
        "a",
        "A",
        "b",
        "B"
    ]
}
```

### Actual Results

```console
TASK [debug] ***********************
ok: [localhost] => {
    "msg": [
        "a",
        "B"
    ]
}

TASK [debug] ***********************
ok: [localhost] => {
    "msg": [
        "a",
        "b"
    ]
}
```


### Code of Conduct

I agree to follow the Ansible Code of Conduct
''' Ansible math jinja2 filters '''
    def filters(self):
        filters = {
            
            'min': min,
            'max': max,
            
            'log': logarithm,
            'pow': power,
            'root': inversepower,
            
            'unique': unique,
            'intersect': intersect,
            'difference': difference,
            'symmetric_difference': symmetric_difference,
            'union': union,
            
            'product': itertools.product,
            'permutations': itertools.permutations,
            'combinations': itertools.combinations,
            
            'human_readable': human_readable,
            'human_to_bytes': human_to_bytes,
            'rekey_on_member': rekey_on_member,
            
            'zip': zip,
            'zip_longest': zip_longest,
        }
        return filters