<p>I have this working definition:</p>

<pre><code>IDENTIFIER   [a-zA-Z][a-zA-Z0-9]*
</code></pre>

<p>I don't want to keep repeating the [a-zA-Z] and [0-9], so I made two new definitions</p>

<pre><code>DIGIT    [0-9]
VALID    [a-zA-Z]
</code></pre>

<p>How can I rewrite the IDENTIFIER rule to use the DIGIT and VALID definitions?</p>

<p>I don't know how to do the "second" match, I'm stuck here:</p>

<pre><code>IDENTIFIER {VALID}[{VALID}{DIGIT}]* // This syntax is incorrect
</code></pre>

<p>Thanks.</p>

<p>Edit: The entire test program that I'm using: <a href="http://pastebin.com/f5b64183f" rel="nofollow noreferrer">http://pastebin.com/f5b64183f</a>.</p>

I think this will do it, but I can't test it.  Do you have sample data?
```
```
(?:[a-zA-Z])+(?:[0-9])+
```
```