"^" is technically not needed since matches is full-string anyway