python域名合法性

,由“.”分隔成为2~4段,其中每一段由英文字母、数字或者下划线组成,不允许包含其它字符,下面都是一些合法的域名:

http://www.baidu.com%2Cwww.163.com%2Cwww.sina.com.cn%2Cnoi.org%2Cwww.people.com.cn%2Cv.hao123.baidu.com/
题目中先给出一个整型数n(1 ≤ n ≤ 50),表示后面有n行字符串需要判断。随后的n行中,每行一个字符串,需要进行合法性判断。对于合法的字符串,应输出“Y”,否则输出“N”,结果中间不用空格。
输入样例
10
sports.qq.com
sports.cntv.cn
sports.163.com
http://www.ppsport.com/
sports.ifeng.com
sports.iqiyi.com
http://www.hao123.com/
http://www.hao123/.
http://www.hao123.com.cn.tv/
book.qq.com
只有最后倒数二、三个是对的

import re

n=int(input())
print(''.join(['Y' if re.fullmatch(r'([a-zA-Z0-9_]+\.)+[a-zA-Z0-9_]{2,4}',input(),re.IGNORECASE) else 'N' for _ in range(n)]))

想知道这还有哪里有问题,结果输出有一个不对

这问题看着眼熟