text: Write a Python function called count_words that takes in a list of strings and returns a dictionary where the keys are words from the list and the values are the number of times each word appears in the list. However, the function should be case-insensitive and should treat words that differ only in capitalization as the same word. Additionally, the function should ignore any non-alphanumeric characters (such as punctuation) in the input strings.
  
  For example, if the input list is ['The quick brown fox', 'jumped over the lazy dog', 'The quick brown fox again'], the function should return the following dictionary:
  
  {
      'the': 3,
      'quick': 2,
      'brown': 2,
      'fox': 2,
      'jumped': 1,
      'over': 1,
      'lazy': 1,
      'dog': 1,
      'again': 1
  }
  
  Note that the words "The" and "the" are treated as the same word, and the word "fox" appears twice in the input list, so its count is 2 in the output dictionary. Additionally, the function should ignore any punctuation or other non-alphanumeric characters, so "fox" and "fox," are treated as the same word.