title: How to parse text too variable for formal grammars but too constrained for NLP?
body: <p>I'm dealing with a corpus of text that is written informally, but generally conforms to a very standard format by convention (think something like <em>Froyo Frozen Yogurt</em>, <em>Smucker's Peanut Butter</em>) and occasionally requires recursion (<em>Froyo Frozen Yogurt with Smucker's Peanut Butter</em>). </p>
  
  <p>With regexes, the complexity quickly grows out of hand (<em>Frozen Yogurt by Froyo</em>, <em>Froyo Frozen Yogurt with Peanut Butter by Smucker's</em>, etc).</p>
  
  <p>I'm having trouble finding resources to help me write an EBNF for this, and NLP method are too complex (plus my "parts of speech" don't really correspond to normal english). Is there an intermediate approach, aimed at semi-formalized text? </p>