Question about validates_format_of

I'm trying to make sure that a name contains no funky characters. Is
there some obvious reason why the following lines would have no effect?

  validates_format_of :name, :with => %r{\w*}
  validates_format_of :name, :with => %r{([A-Za-z])*}

With these lines in my model, I can enter almost any name (with
blanks, punctuation, etc.) and Rails accepts it.

On the other hand, if I add

  validates_format_of :name, :with => %r{.*\.jpg}
  validates_length_of :name, :minimum => 2

then rails rejects short names or names that don't end in .jpg.

Because * means zero or more matches. You probably want to use + (one or more
matches).

Actually, I forgot the ^ and $. That's what made this regex match
almost anything.
Thanks.