case ! in
[\!!]) ;;
*) echo Failed at $LINENO ;;
esac

case ! in
['!'!]) ;;
*) echo Failed at $LINENO ;;
esac

case ! in
["!"!]) ;;
*) echo Failed at $LINENO ;;
esac