Let me make sure I understand what you're asking.

If the list contained

Frog
go
golf

and the user typed in G, you wouldn't want frog to show up would you?

As to the binary search, it's pretty easily modified. Search until you find an item that matches your criteria, then read sequentially forward and backward from that point until your criteria is no longer met. Return everything in between.