E, F and M symbols: BMW uses internal technical code for its cars. Traditionally a letter `E´ signifies a chassis code (from German: Entwicklungscode – Development Code), while the very recent chassis use already letter `F´ followed by a number.
Letter `M´ signifies an engine code (from German: Motor), again followed by a number.
These codes are in use by repair shops. In fact BMW has thousands of these codes signifying different projects, however, only a small number of them goes into public use and become symbols of the specific BMW car or engine.
Please note that the same car chassis would have different engines and identical engines have been built into a different car. So for example, you can have in a chassis E34 (BMW Five Series 1989-1996) several different engines as M20, M30, M40, M43, M50, M60. At the same time M50 engine used in E34 has been also used for several other chassis as E30 or E36.
Sport engines by BMW have code letters `S´ for Sport. New BMW engines are also marked with letters `N´ and “W” (engines for Mini).
» BMW E and F chassis codes: