before vowels sten-, word-forming element meaning "narrow," from Greek stenos "narrow, strait," as a noun "straits of the sea, narrow strip of land," also metaphorically, "close, confined; scanty, petty," from PIE *sten- "narrow."
word-forming element meaning "after," from Latin post "behind, after, afterward," from *pos-ti (source also of Arcadian pos, Doric poti "toward, to, near, close by;" Old Church Slavonic po "behind, after," pozdu "late;" Lithuanian pas "at, by"), from PIE *apo- (source also of Greek apo "from," Latin ab "away from" see apo-).
before vowels reduced to ep-, before aspirated vowels eph-, word-forming element meaning "on, upon, above," also "in addition to; toward, among," from Greek epi "upon, at, close upon (in space or time), on the occasion of, in addition," also "after," from PIE *epi, *opi "near, at, against" (source also of Sanskrit api "also, besides;" Avestan aipi "also, to, toward;" Armenian ev "also, and;" Latin ob "toward, against, in the way of;" Oscan op, Greek opi- "behind;" Hittite appizzis "younger;" Lithuanian ap- "about, near;" Old Church Slavonic ob "on"). A productive prefix in Greek; also used in modern scientific compounds (such as epicenter).
word-forming element meaning "under, beneath; behind; from under; resulting from further division," from Latin preposition sub "under, below, beneath, at the foot of," also "close to, up to, towards;" of time, "within, during;" figuratively "subject to, in the power of;" also "a little, somewhat" (as in sub-horridus "somewhat rough"), from PIE *(s)up- (perhaps representing *ex-upo-), a variant form of the root *upo "under," also "up from under." The Latin word also was used as a prefix and in various combinations.
In Latin assimilated to following -c-, -f-, -g-, -p-, and often -r- and -m-. In Old French the prefix appears in the full Latin form only "in learned adoptions of old Latin compounds" [OED], and in popular use it was represented by sous-, sou-; as in French souvenir from Latin subvenire, souscrire (Old French souzescrire) from subscribere, etc.
The original meaning is now obscured in many words from Latin (suggest, suspect, subject, etc.). The prefix is active in Modern English, sometimes meaning "subordinate" (as in subcontractor); "inferior" (17c., as in subhuman); "smaller" (18c.); "a part or division of" (c. 1800, as in subcontinent).