Let's face it, serial numbers weren't meant to be consumed by humans.  Can you imagine going to the grocery store and waiting for someone to manually enter each and every bar code number for all your items?

In your situation I think option 3 is your best bet but I don't see why you couldn't combine option 3 with option 2.  If the bar code scanner is failing for any reason the user can at least get auto-complete help while falling back to entering the string of digits manually.

Don't prevent the user from entering an invalid number but do provide instant feedback when the input string isn't valid.

What is the best way for a user to select an item by unique identifier?
I'm looking for a way to have an animal companion with classes other than druid or ranger, for example a paladin that fights with a trained hawk. I'm all for multiclassing if need be, but I'm looking for other ways as well, through feats if necessary. I'm not really worried about min/max stats or optimized builds.
