in reply to Expanding reg expression.

If you want what I think you want, it might be good to check out the magic in the ++ operator.

"The auto-increment operator has a little extra builtin magic to it. If you increment a variable that is numeric, or that has ever been used in a numeric context, you get a normal increment. If, however, the variable has been used in only string contexts since it was set, and has a value that is not the empty string and matches the pattern /^[a-zA-Z]*[0-9]*\z/, the increment is done as a string, preserving each character within its range, with carry."

For example:

print ++($test = "test004");

Prints test005. Just be careful not to go over 999, because the carry will then start changin' the 'test' part of your string.