i386 is the commonly used name for the 80386 processor family
i686 is the commonly used name for the later family range of processors, up to todays processors (e.g. the ones ranging from 450Mhz ~ 3.6Ghz)
x86 is a grouping name for all Intel processors and compatibles.
This is my best swing at it, you can probably find something that describes it better with Google
So I assume for now you saw these terms on a linux distribution or a software package somewhere?
For Linux distros it is often used as an indication as to what kind of system it supports, For example if you took a current Mandrake release it would be listed as Mandriva10.2-i586.etc.iso when you go and download the ISO image for example, the i586 in there means it is intended to run on an i586 system, which sports an Intel Pentium class processor (or compatible). if you would take an i586 designed distro and tried to install it onto a system with an 80486 (i486, non-Pentium) processor, it would likely fail because it is not designed to run on that hardware platform.