Date Detection Regex in Python
You can import and use datetime rather than validating date yourself.
&gt;&gt;&gt; import datetime
&gt;&gt;&gt; datetime.date(2020, 9, 9)
datetime.date(2020, 9, 9)
&gt;&gt;&gt; datetime.date(1990, 2, 29)
Traceback (most recent call last):
  File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;
ValueError: day is out of range for month

As such we can just change all your checks to a call to datetime.date in a try except block.
for groups in dateRegex.findall(text):
    try:
        datetime.date(int(groups[2]), int(groups[1]), int(groups[0]))
        matches.append('/'.join(groups))
    except ValueError:
        pass

Rather than using '/'.join(groups) if we use finditer we can just use groups[0].
And we'd need to increment the other indexes by one too.
for groups in dateRegex.finditer(text):
    try:
        datetime.date(int(groups[3]), int(groups[2]), int(groups[1]))
        matches.append(groups[0])
    except ValueError:
        pass

We can also change the creation of datetime.date to use a comprehension.
We need to use * to map all the values of the built list to arguments to the function.
for group in dateRegex.finditer(text):
    try:
        datetime.date(*(int(part) for part in group.groups()[::-1]))
        yield group[0]
    except ValueError:
        pass

You should also use an if __name__ == '__main__': guard to prevent your code from running on import.
And I'd define more functions.
import pyperclip
import datetime
import re

DATE_MATCHER = re.compile(r'(\d\d)/(\d\d)/(\d\d\d\d)')


def find_dates(text):
    for group in DATE_MATCHER.finditer(text):
        try:
            datetime.date(*(int(part) for part in group.groups()[::-1]))
            yield group[0]
        except ValueError:
            pass


def main():
    text = 'Hello. Your birthday is on 29/02/1990. His birthday is on 40/09/1992 and her birthday is on 09/09/2000.'
    dates = list(find_dates(text))
    if not dates:
        print('No dates found.')
    else:
        pyperclip.copy('\n'.join(matches))
        print('Copied to clipboard:')
        print('\n'.join(dates))


if __name__ == &quot;__main__&quot;:
    main()