##Pyth, 20 16 14 bytes
Pyth, 20 16 14 bytes
hol@GNf!-GrT0.:
Explanation:
.: - substrings of input()
f!-GrT0 - filter to ones which contain the alphabet
ol@GN - sort by number of alphabetical chars
h - ^[0]
f!-GrT0 - filter(lambda T:V, substrings)
rT0 - T.lower()
-G - alphabet-^
! - not ^
o - sort(^, lambda N:V)
@GN - filter_presence(alphabet, N)
l - len(^)
When there isn't a correct solution, the program exits with an error with no output to stdout.