Męczę te wyrażenia, ale muszę je wymęczyć

Mam string i chcę wyszukać w nim
$string = '[abc]costamcos[abc]';
if(preg_match('/^([[abc]]).*([[/abc]])$/D', $string)){ }
else{
}
Skrypt wywala mnie false.
Najpierw ma być ciąg ([[abc]]) potem dowolne znaki o dowolnej długości i ciąg ([[/abc]])
Jak to inaczej zapisać?