А вот этого я тебе сказать не могу. ;) Признаюсь, lookahead сам вижу в первый раз. По крайней мере в re_format про него не слова, а в Perl (или куда там?) я так глубоко не нырял.
матчит не с первого символа, а с конца строки, например
все равно непонятно. где-то справа от символа не должно быть вот так вот. символы перебирать начинает не сначала? тогда почему работает foo для первого примера? не обязательно же там написать ^.*foo