Could it be done by tying the dice rolling into the table syntax?
The user defines a table that has 1-5, 6-95, and 96-100 as three separate entries. Something in the table indicates that 1-5 and 96-100 should roll again and the middle range should not. Perhaps something like this:
MERP exploded die roll: [1d100tDieChain+10]
would mean to roll a d100 and check against a table named DieChain
. The value would be looked up in the table and the value would be the next die to roll. So the entry for 6-95 would be empty (don't roll again) while 1-5 and 96-100 would contain the exact same string as the original (as shown above).
The table name could be any string of characters except punctuation (+, =, *, etc). This means that any other modifiers to the roll would need to appear before the letter "t", but this isn't that strange as far as language syntax rules go.