text: #! python3
  # phoneemailextractor.py - Finds phone numbers and email addresses on the clipboard
  
  
  import pyperclip, re
  
  # Creates phone Regex
  phoneRegex = re.compile(r'''(
      (\d{3}|\(\d{3}\))?              # area code
      (\s|-|\.)?                      # separator
      (\d{3})                         # first 3 digits
      (\s|-|\.)                       # separator
      (\d{4})                         # last 4 digits
      (\s*(ext|x|.)\s*(\d{2,5}))?     # extension
      )''', re.VERBOSE)
  
  # Creates email Regex
  emailRegex = re.compile(r'''(
      [a-zA-Z0-9._%+-]+       # username
      @                       # symbol
      [a-zA-Z0-9.-]+          # domain name
      (\.[a-zA-Z]{2,4})       # dot something
      )''', re.VERBOSE)
  
  # Finds matches in clipboard text
  text = str(pyperclip.paste())
  matches = []
  
  for groups in phoneRegex.findall(text):     # TODO: try to do this using list comprehension
      phoneNum = '-'.join([groups[1], groups[3], groups[5]])
      if groups[8] != '':
          phoneNum += ' x' + groups[8]
      matches.append(phoneNum)
  
  for groups in emailRegex.findall(text):     # TODO: try to do this using list comprehension
      matches.append(groups[0])
  
  # Copy results to the clipboard
  if len(matches) > 0:
      pyperclip.copy('\n'.join(matches))
      print('Copied to clipboard: ')
      print('\n'.join(matches))
  else:
      print('no phone numbers or email addresses found.')
  