¿Qué caracteres están permitidos en el atributo Nombre HTML dentro de la etiqueta de entrada?

Tengo un script PHP que generará<input>s dinámicamente, así que me preguntaba si necesitaba filtrar algún personaje en elname&nbsp;atributo.

Sé que el nombre tiene que comenzar con una letra, pero&nbsp;No conozco otras reglas. Me imagino que se deben permitir los corchetes, ya que PHP los usa para crear matrices a partir de datos de formulario. ¿Qué hay de paréntesis? Espacios?