title: How to match binomial expressions in R?
body: <p>I want to match binomials, that is, bisyllabic words, sometimes hyphenated, with slightly varied syllable reduplication; the variation always concerns the first (and, possibly, second) letter in the reduplicated syllable:</p>
  <pre><code>x &lt;- c(&quot;pow-wow&quot;, &quot;pickwick&quot;, &quot;easy-peasy&quot;, &quot;nitty-gritty&quot;, &quot;bzzzzzzz&quot;, &quot;mmmmmm&quot;, &quot;shish&quot;, &quot;wedged&quot;, &quot;yaaaaaa&quot;)
  </code></pre>
  <p>Here, we have said syllable reduplication in <code>pow-wow</code>, <code>pickwick</code>, <code>easy-peasy</code>, and <code>nitty-gritty</code> (which are then the expected output) but <em>not</em> in <code>bzzzzzzz</code>, <code>mmmmmm</code>, <code>shish</code>, <code>wedged</code> and <code>yaaaaa</code>.</p>
  <p>This regex does at least manage to get rid of <code>wedged</code>(which is pronounced as one syllable) as well as monosyllabic words by requiring the presence of a vowel in the capturing group:</p>
  <pre><code>grep(&quot;\\b\\w?((?!ed)(?=[aeiou])\\w{2,})-?\\w\\w?\\1\\b$&quot;, x, value = T, perl = T)
  [1] &quot;pow-wow&quot;      &quot;pickwick&quot;     &quot;easy-peasy&quot;   &quot;nitty-gritty&quot; &quot;yaaaaa&quot; 
  </code></pre>
  <p>However, <code>yaaaaa</code> is getting matched too. To <em>not</em> match it my feeling is that the capturing group should be disallowed to contain two identical vowels in immediate succession but I don't know how to implement that restriction.
  Any ideas?</p>