implemented longest_only parameter