Note that bracket style opening and closing delimiters aren't a 100% problem-free solution, as they need to be escaped when they aren't in matching pairs within the expression. That mismatch can happen when they appear inside character classes [...], as most meta-characters lose their special meaning. Consider these examples:
<?php
preg_match('{[{]}', ''); preg_match('{[}]}', ''); preg_match('{[}{]}', ''); ?>
Escaping them solves it:
<?php
preg_match('{[\{]}', ''); preg_match('{[}]}', ''); preg_match('{[\}\{]}', ''); ?>