Match_bool_prefix query acts different than Prefix query when searching on a single token

Having an issue with match_bool_prefix behaving weirdly when having an ampersand at the end of a one token query. According to docs, it should build out a term query with a prefix at the end. However, it does that fine except when there's a special character at the end. Please enlighten why its working this way. I just need to understand why its not. I typed this out in stackoverflow so please look at this link and come back here:

Any help is appreciated.