title: Android shell script grep
body: <p>I'm attempting to write a script using the Android shell (with Busybox) to scan through some .xml files to extract information, however, I'm getting stuck on some optimization.</p>
  
  <p>Shouldn't, for example,</p>
  
  <pre><code>(ax)b
  </code></pre>
  
  <p>match to</p>
  
  <pre><code>axbxc
  </code></pre>
  
  <p>It doesn't; when I try to execute this on Android (4.2.2, with Busybox 1.20.2, if it matters?).</p>
  
  <pre><code>echo axbxc &gt; \sdcard\test.txt
  grep "(ax)b" \sdcard\test.txt
  </code></pre>
  
  <p>returns nothing, while</p>
  
  <pre><code>grep "axb" \sdcard\test.txt
  </code></pre>
  
  <p>returns, as expected,</p>
  
  <pre><code>axbxc
  </code></pre>
  
  <p>Similarly, shouldn't</p>
  
  <pre><code>(?&gt;ax)b
  </code></pre>
  
  <p>return axbxc as well? (This is the actual optimization I want to apply.)</p>
  
  <p>What could be causing this problem? Additionally, does anyone know what regex engine Busybox uses, so that I can go and read up on it specifically?</p>