title: Fuzzy regex (e.g. {e<=2}) correct usage in Python
body: <p>I am trying to find strings which are at most two mistakes 'away' from the original pattern string (i.e. they differ by at most two letters). </p>
  
  <p>However, the following code isn't working as I would expect, at least not from my understanding of fuzzy regex:</p>
  
  <pre><code>import regex
  res = regex.findall("(ATAGGAGAAGATGATGTATA){e&lt;=2}", "ATAGAGCAAGATGATGTATA", overlapped=True)
  print res
  &gt;&gt; ['ATAGAGCAAGATGATGTATA']  # the second string
  </code></pre>
  
  <p>As you can see, the two strings differ on three letters rather than at most two: </p>
  
  <p>the first has: ATAG<strong>GAG</strong>AAGATGATGTATA </p>
  
  <p>the second has: ATAG<strong>AGC</strong>AAGATGATGTATA</p>
  
  <p>and yet the result shows the second string, as though it's within e&lt;=2 (this also happens with overlapped=False, so that can't be it).</p>
  
  <p>What am I missing here? And is there any way of getting this to find only strings within the Hamming 2-ball of the given pattern?</p>
  
  <p>Is it possible that a swap of letters is considered to be only one change? And if so - how can I avoid this?</p>