it seems the ignorecase parameter doesn't get passed to the recursive calls