<?php
function check($input) {
return (bool
)preg_match('/\A(?:[A-Z0-9]-?+(?!\z))*+[A-Z0-9]*+\z/', $input); }
// Trueと判定すべき
check(''),
check('ABC'),
check('ABC-123'),
check('ABC-DEF-123'),
// Falseと判定すべき
check('ABC-DEF--123'),
check('ABC-DEF-123-'),
check('-A'),
check('A-'),
check('-A-'),
check("ABC-123\n")
);
PD9waHAKCmZ1bmN0aW9uIGNoZWNrKCRpbnB1dCkgewoJcmV0dXJuIChib29sKXByZWdfbWF0Y2goJy9cQSg/OltBLVowLTldLT8rKD8hXHopKSorW0EtWjAtOV0qK1x6LycsICRpbnB1dCk7Cn0KCnZhcl9kdW1wKAoJCgkvLyBUcnVl44Go5Yik5a6a44GZ44G544GNCgljaGVjaygnJyksCgljaGVjaygnQUJDJyksCgljaGVjaygnQUJDLTEyMycpLAoJY2hlY2soJ0FCQy1ERUYtMTIzJyksCgkKCS8vIEZhbHNl44Go5Yik5a6a44GZ44G544GNCgljaGVjaygnQUJDLURFRi0tMTIzJyksCgljaGVjaygnQUJDLURFRi0xMjMtJyksCgljaGVjaygnLUEnKSwKCWNoZWNrKCdBLScpLAoJY2hlY2soJy1BLScpLAoJY2hlY2soIkFCQy0xMjNcbiIpCgkKKTsKCQo=