68 chars, "ab"-compliant too...
sub is_fibo {
$_=pop;$n=0;{/^|(.)\1*/g?$n^($c=length$&)?0:($n=1-$c+pos,redo):$n>2}
}
update: 66 chars after deleting an artifact from my previous solution
sub is_fibo {
$_=pop;$n=1;{/(.)\1*/g?$n^($c=length$&)?0:($n=1-$c+pos,redo):$n>2}
}
update2: 65 chars, and no more ugly
$& usage...
sub is_fibo {
$_=pop;$n=0;$p=1;{/(.)\1*/g?pos^$n?0:($n+=$p+1,$p=pos,redo):$p>2}
}
update3: 61 chars, after incorporating ideas from
danger's regex and a new method of counting fibonacci's:
sub is_fibo {
$n=0;pop=~/^((.)(??{"\Q$2"x$n})(?!\2)(?{$n=-++$n+pos})){3,}$/
}
MeowChow
s aamecha.s a..a\u$&owag.print