$re = '/\n\s*restart\)(?:(?:(?![#"]|;;).)|\#[^\n]*\n|"[^"]*?")*?\K(haproxy_check_[0-9]+)/six';
$str = 'case "$1" in
start)
# haproxy_check_01 ;;
haproxy_check_02
# haproxy_check_03
rc_status -v # haproxy_check_04
echo " haproxy_check_05 "
;;
stop)
# haproxy_check_11
haproxy_check_12
# haproxy_check_13
rc_status -v # haproxy_check_14
echo " haproxy_check_15 "
;;
try-restart|condrestart)
# haproxy_check_21
haproxy_check_22
# haproxy_check_23
rc_status -v # haproxy_check_24
echo " haproxy_check_25 "
;;
restart)
# haproxy_check_31
haproxy_check_32
# haproxy_check_33
rc_status -v # haproxy_check_34
echo " haproxy_check_35 "
;;
check)
# haproxy_check_41
haproxy_check_42
# haproxy_check_43
rc_status -v # haproxy_check_44
echo " haproxy_check_45 "
;;
reload|force-reload)
# haproxy_check_51
haproxy_check_52
# haproxy_check_53
rc_status -v # haproxy_check_54
echo " haproxy_check_55 "
;;
status)
# haproxy_check_61
haproxy_check_62
# haproxy_check_63
rc_status -v # haproxy_check_64
echo " haproxy_check_65 "
;;
probe)
# haproxy_check_71
haproxy_check_72
# haproxy_check_73
rc_status -v # haproxy_check_74
echo " haproxy_check_75 "
;;
*)
# haproxy_check_81
haproxy_check_82
# haproxy_check_83
rc_status -v # haproxy_check_84
echo " haproxy_check_85 "
;;
esac';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php