##
/(?<= # looking behind,
(?=.{0,3}foo) # look for a foo preceded by up to three chars
.{6}) # starting six chars back
bar/x # then match bar
##
##
/.. # match first two chars
(?:
(?<= # looking behind,
(?!(.)\1\1) # don't allow a run of three
..) # starting only two chars back
. # then match the next char
){1,4}/x