http://qs321.pair.com?node_id=782437


in reply to Re: Amusement in Auto-Increments
in thread Amusement in Auto-Increments

Using this bit of documentation, here's what happens:

  • 1zz
  • 1zz doesn't match "/^[a-zA-Z]*[0-9]*\z/"

    Rule #1 - gets converted to a number, 1, which is then incremented to 2.

  • zzz
  • zzz matches "/^[a-zA-Z]*[0-9]*\z/"

    Rule #2 - the last z is incremented to a (stays in the same range, which is a-z), carries one over; second z is incremented to a, carries one over; first z is incremented to a, carries one over, which gets turned into an a.

  • zz1
  • zz1 matches "/^[a-zA-Z]*[0-9]*\z/"

    Rule #2 - 1 is incremented to 2.

  • z3z
  • z3z doesn't match "/^[a-zA-Z]*[0-9]*\z/"

    Rule #1 - the value is converted to numeric; since there are no digits before the first non-digit, the numeric value is 0; that value is then incremented to 1.

  • zz9
  • zz9 matches "/^[a-zA-Z]*[0-9]*\z/"

    Rule #2 - 9 is incremented to 0, carries one over, and then the process with the two zs is the same as from above.