Is there any basic difference between instruction pointer and program counter? I believe they both refer to the same thing, the eip/rip register, although with the research i have done so far it is not very clear in my mind.
Nope, they're the same thing. A given architecture will refer to exactly one of these (in particular, x86 and x64 use IP instead of PC).