title: GRXML grammar for number and letters sequences e.g. serial number
body: <p>I ma trying to create a GRXML grammar in voice mode that will find a serial number in a text. here as an example of my attempt to find sequence of three digits followed by three letters:</p>
  
  <pre><code>&lt;grammar 
      xmlns="http://www.w3.org/2001/06/grammar" 
      xml:lang="en"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.w3.org/2001/06/grammar
      http://www.w3.org/TR/speech-grammar/grammar.xsd"
      version="1.0"
      mode="voice"
      root="main"
      tag-format="semantics/1.0"
      &gt;
      &lt;rule id="main" scope="public"&gt;
          &lt;ruleref special="GARBAGE"/&gt;
          &lt;item repeat="3"&gt;
              &lt;ruleref uri="#digit"/&gt;
              &lt;tag&gt;out = out + rules.digit;&lt;/tag&gt;
          &lt;/item&gt;
          &lt;item repeat="3"&gt;
              &lt;ruleref uri="#letter"/&gt;
              &lt;tag&gt;out = out + rules.letter;&lt;/tag&gt;
          &lt;/item&gt;
          &lt;ruleref special="GARBAGE"/&gt;
      &lt;/rule&gt;
      &lt;rule id="letter"&gt;
          &lt;one-of&gt;
              &lt;item&gt;A&lt;/item&gt;
              &lt;item&gt;B&lt;/item&gt;
              &lt;item&gt;C&lt;/item&gt;
              &lt;item&gt;D&lt;/item&gt;
              &lt;item&gt;E&lt;/item&gt;
              &lt;item&gt;F&lt;/item&gt;
              &lt;item&gt;G&lt;/item&gt;
              &lt;item&gt;H&lt;/item&gt;
              &lt;item&gt;I&lt;/item&gt;
              &lt;item&gt;J&lt;/item&gt;
              &lt;item&gt;K&lt;/item&gt;
              &lt;item&gt;L&lt;/item&gt;
              &lt;item&gt;M&lt;/item&gt;
              &lt;item&gt;N&lt;/item&gt;
              &lt;item&gt;O&lt;/item&gt;
              &lt;item&gt;P&lt;/item&gt;
              &lt;item&gt;Q&lt;/item&gt;
              &lt;item&gt;R&lt;/item&gt;
              &lt;item&gt;S&lt;/item&gt;
              &lt;item&gt;T&lt;/item&gt;
              &lt;item&gt;U&lt;/item&gt;
              &lt;item&gt;V&lt;/item&gt;
              &lt;item&gt;W&lt;/item&gt;
              &lt;item&gt;X&lt;/item&gt;
              &lt;item&gt;Y&lt;/item&gt;
              &lt;item&gt;Z&lt;/item&gt;
          &lt;/one-of&gt;
      &lt;/rule&gt;
      &lt;rule id="digit"&gt;
          &lt;one-of&gt;
              &lt;item&gt;0&lt;tag&gt;out="0";&lt;/tag&gt;&lt;/item&gt;
              &lt;item&gt;Zero&lt;tag&gt;out="0";&lt;/tag&gt;&lt;/item&gt;
              &lt;item&gt;1&lt;tag&gt;out="1";&lt;/tag&gt;&lt;/item&gt;
              &lt;item&gt;One&lt;tag&gt;out="1";&lt;/tag&gt;&lt;/item&gt;
              &lt;item&gt;2&lt;tag&gt;out="2";&lt;/tag&gt;&lt;/item&gt;
              &lt;item&gt;Two&lt;tag&gt;out="2";&lt;/tag&gt;&lt;/item&gt;
              &lt;item&gt;3&lt;tag&gt;out="3";&lt;/tag&gt;&lt;/item&gt;
              &lt;item&gt;Three&lt;tag&gt;out="3";&lt;/tag&gt;&lt;/item&gt;
              &lt;item&gt;4&lt;tag&gt;out="4";&lt;/tag&gt;&lt;/item&gt;
              &lt;item&gt;Four&lt;tag&gt;out="4";&lt;/tag&gt;&lt;/item&gt;
              &lt;item&gt;5&lt;tag&gt;out="5";&lt;/tag&gt;&lt;/item&gt;
              &lt;item&gt;Five&lt;tag&gt;out="5";&lt;/tag&gt;&lt;/item&gt;
              &lt;item&gt;6&lt;tag&gt;out="6";&lt;/tag&gt;&lt;/item&gt;
              &lt;item&gt;Six&lt;tag&gt;out="6";&lt;/tag&gt;&lt;/item&gt;
              &lt;item&gt;7&lt;tag&gt;out="7";&lt;/tag&gt;&lt;/item&gt;
              &lt;item&gt;Seven&lt;tag&gt;out="7";&lt;/tag&gt;&lt;/item&gt;
              &lt;item&gt;8&lt;tag&gt;out="8";&lt;/tag&gt;&lt;/item&gt;
              &lt;item&gt;Eight&lt;tag&gt;out="8";&lt;/tag&gt;&lt;/item&gt;
              &lt;item&gt;9&lt;tag&gt;out="9";&lt;/tag&gt;&lt;/item&gt;
              &lt;item&gt;Nine&lt;tag&gt;out="9";&lt;/tag&gt;&lt;/item&gt;
          &lt;/one-of&gt;
      &lt;/rule&gt;
  &lt;/grammar&gt;
  </code></pre>
  
  <p>The problem with this grammar is that it needs white spaces or other delimiters (like comma or full stop) between every character. This means that will detect only sequences like this <code>1 2 3 A B C</code>, but not when characters touch each other e.g. <code>12 3 A B C</code>. I am testing this with Microsoft Speech SDK. How can I update the grammar that it will find what I want? Thank you.</p>