title: String.scan returning empty array in Ruby
body: <p>I've written a very basic regex in Ruby for scraping email-addresses off the web. It looks like the following:</p>
  
  <pre><code>/\b\w+(\.\w+)*@\w+\.\w+(\.\w+)*\b/
  </code></pre>
  
  <p>When I load this into irb or rubular, I create the following string:</p>
  
  <pre><code>"example@live.com"
  </code></pre>
  
  <p>When I run the Regexp.match(string) command in irb, I get this:</p>
  
  <pre><code>regexp.match(string) =&gt;#&lt;MatchData "example@live.com" 1:nil 2:nil&gt;
  </code></pre>
  
  <p>So the match seems to be recorded in the MatchData object. However, when I run the String.scan(regex) command (which is what I'm primarily interested in), I get the following:</p>
  
  <pre><code>string.scan(regex) =&gt; [[nil, nil]]
  </code></pre>
  
  <p>Why isn't scan returning the matched email address? Is it a problem with the regular expression? Or is it a nuance of String.scan/Regexp/MatchData that somebody could make me aware of?</p>