### Summary

https://docs.ansible.com/ansible/latest/collections/ansible/builtin/mandatory_filter.html makes no mention of the `msg` argument that was introduced in 0e7e3c0ae89a70c386168827b0c9defb956bee7e

### Issue Type

Documentation Report

### Component Name

lib/ansible/plugins/filter/mandatory.yml

### Ansible Version

```console
n/a
```


### Configuration

```console
n/a
```


### OS / Environment

n/a

### Additional Information

n/a

### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
''' Perform re.search and return the list of matches or a backref '''
    value = to_text(value, errors='surrogate_or_strict', nonstring='simplerepr')
    groups = list()
    for arg in args:
        if arg.startswith('\\g'):
            match = re.match(r'\\g<(\S+)>', arg).group(1)
            groups.append(match)
        elif arg.startswith('\\'):
            match = int(re.match(r'\\(\d+)', arg).group(1))
            groups.append(match)
        else:
            raise AnsibleFilterError('Unknown argument')
    flags = 0
    if kwargs.get('ignorecase'):
        flags |= re.I
    if kwargs.get('multiline'):
        flags |= re.M
    match = re.search(regex, value, flags)
    if match:
        if not groups:
            return match.group()
        else:
            items = list()
            for item in groups:
                items.append(match.group(item))
            return items
def ternary(value, true_val, false_val, none_val=None):