I searched for the meaning of these expressions but couldn\'t understand the exact difference between them. This is what they say:
?:
?: is for non capturing group ?= is for positive look ahead ?! is for negative look ahead ?<= is for positive look behind ?
Please check here: http://www.regular-expressions.info/lookaround.html for very good tutorial and examples on lookahead in regular expressions.