title: Regular Expression in Python: Find words of length n or longer
body: <p>We just learned about using regular expression in my first python course (extremely new to programming), and one of the homework problems that I am struggling with requires us to use regular expression to find all the words of length n or longer, and then use that regular expression to find the longest word used from a text file.</p>
  
  <p>I have no problem when I want to test out a specific length, but it returns an empty list when I use an arbitrary variable n:</p>
  
  <pre><code>import re
  with open('shakespeare.txt') as file:
      shakespeare = file.read()
  
  n = 10 #if I take this out and put an actual number in the curly bracket below, it works just fine.
  
  words = re.findall('^[A-Za-z\'\-]{n,}', shakespeare, re.M)
  print(words)
  len(words)
  </code></pre>
  
  <p>I'm not sure what I did wrong and how to resolve this. Any help is greatly appreciated!</p>
  
  <p>For more context...
  To find the longest word, I used:</p>
  
  <pre><code>#for word with special characters such as '-' and '''
  longest_word = max(re.findall('\S+', shakespeare, re.M), key = len)
  
  #for word without special characters:
  longest_pure_word = max(re.findall('[A-Za-z]+ ', shakespeare, re.M), key = len)
  
  output1(special char): tragical-comical-historical-pastoral
  output2(pure word): honorificabilitudinitatibus
  </code></pre>
  
  <p>I didn't use n because I couldn't get the first part of the question to work.</p>