Why does GetKeyDown("[5]") fail?

Unity 3.0 - Testing in the Editor Game Window

the first 3 key strokes capture work great:

    if (Input.GetKeyDown("home")) {     //keypad 'Home'
        //do something... that works fine
    }
    if (Input.GetKeyDown("page up")) {  //keypad 'PgUp"
        //do something... that works fine
    }
    if (Input.GetKeyDown("5")) {       //this is the Alphanumeric '5'
        //do something... that works fine
    }

this line fails: but no errors (this is the keypad '5' not the 'Alpha5')

   if (Input.GetKeyDown("[5]")) {
     //do something...this code never executes
   }

Can someone explain why the keypad 5 does not work? I have read the may pages that treat keyboard keys capture, in vain. If I try various syntax instead of "[5]" the compiler complains that the Input Key Name is unknown. Thus the compiler agrees with the keycode, but the stroke on the keypad 5 is not captured.

Thank you.

I'd just start using the KeyCode enumeration version instead - you get compile time warnings instead of runtime ones (which are not compiler errors, they're just Debug.LogError messages)

if (Input.GetKeyDown(KeyCode.Keypad5)) {}
if (Input.GetKeyDown(KeyCode.Alpha5)) {}

Even though "[5]" looks correct though, could be something silly like numlock not being on?