Who is the sleepiest of them all?
Pyth, 12 10 bytes
hoSN%2.:z3
This prints the sleepiest emoticon. Verify all test cases at once in the Pyth Compiler.
Credit goes to @Sp3000 for the idea to use sorting.
How it works
hoSN%2.:z3
(implicit) Save the in z.
.:z3 Compute all substrings of length 3.
%2 Keep every seconds substring. This discards non-emoticons.
o Sort the emoticons by the following key:
SN Sort the characters of the emoticon.
This works since '-' < '=' < 'o'.
h Retrieve the first, minimal element.
Python 2, 54 53 bytes
f=lambda s:s and max((s+' ')[:3],f(s[2:]),key=sorted)
This is a function that returns the face that is most awake.
Many thanks to xnor for providing many tactical tricks to shorten my original algorithm.
CJam, 12 bytes
q3ew2%{$}$0=
This prints the sleepiest emoticon. Try this fiddle or this test suite in the CJam interpreter.
Credit goes to @Sp3000 for the idea to use sorting.
How it works
q e# Read all input from STDIN.
3ew e# Push all overlapping slices of length 3.
2% e# Keep every seconds slice. This discards non-emoticons.
{$}$ e# Sort the slices by their sorted characters.
e# This works since '-' < '=' < 'o'.
0= e# Retrieve the first, minimal slice.