Regular expression and regular right grammar for decimals that begin with 1 and end with 9?

I was trying to do the following:

Consider the set of all strings on the alphabet {0,1,2,9 ,.} {0,1,2,9,.} Which are decimal numbers that start with 1 and end with 9 and have exactly one decimal point (..). For example, 12,912.9 would be a valid decimal number, while 0.1290.129 would not be, since it does not start with 11.

but it didn't seem to work:

1(0|1|2|9)*.(0|1|2|9)*9

or

S::=1X
X::=E|0X|1X|2X|9X|Y
Y::=.Z
Z::=E|0Z|1Z|2Z|9Z|A
A::=9

Why? Which is the right answer?