title: Multi-line regex with overlapping matches
body: <p>I'm working on a tool that parses files for CSS style declarations.  It uses a very complicated regular expression that, besides the expected performance issues and a few minor bugs that aren't affecting me for now, is doing everything I'd like it to do except for one thing.</p>
  
  <p>I have it matching all combinations of element names, classes, sub-classes, pseudo-classes, etc.  However, when a line contains more than one declaration, I can only get it to match once.  As an example, here is the kind of thing that is tripping me up at the moment:</p>
  
  <pre><code>td.class1, td.class2, td.class3
  {
      background-color: #FAFAFA;
      height: 10px;
  }
  </code></pre>
  
  <p>I can write an expression that will satisfy this for all of the three declarations, but since I am also capturing information after it (the actual style info within the brackets) I feel like this entire block of text is considered to be accounted for so the engine moves on to the next character following the whole block that just got processed.</p>
  
  <p>Is there a way to accomplish this where each class will be a separate match and all will include the style info that follows as well?  I know that I can modify my regex to match the whole line and then parse it for commas after I get my match, but I'd like to keep all my logic inside the expression itself if possible.</p>
  
  <p>I can post the expression and/or the commented code I use to generate it if it's absolutely relevant to the answer, but the expression is huge/ugly (as all non-trivial regexes are) and the code is a bit lengthy. </p>