in reply to adding characters via a regular expression

Uhm, you only have to account for the possibility of numbers less than 9 characters being entered? Noone enters 10 digits? Noone enters letters or spaces? If the only possible error is to not have enough digits, no regex is required. Just do:
$number = sprintf "%09d" => $number;

Abigail