Please use the formatting tools available to show the correct regex, that way there is no guessing. Here is my run. You need to escape the escape:
mysql [localhost:8028] {msandbox} (test) > INSERT INTO regs VALUES
('._default.com.testsyb1'),
('._default.com.testsyb2'),
('._default.com.testsyb3'),
('._default.com.test'),
('._default.com.test.a'),
('abc.com');
Query OK, 0 rows affected (0.11 sec)
mysql [localhost:8028] {msandbox} (test) > SELECT * FROM regs
WHERE zone REGEXP '^._default.com.test(\\..*)?$';
+----------------------+
| zone |
+----------------------+
| ._default.com.test |
| ._default.com.test.a |
+----------------------+
2 rows in set (0.00 sec)