message: Allow editing even if highlighter regex fails
  Under extreme circumstances (like 20,000 characters long single item
  with heavy HTML markup), std::regex for matching the markup could fail
  due to memory constraints. Catch that situation and disable
  highlighting instead.
  Previous the uncaught exception would prevent any editing of affected
  items.
diff: @@ -135,6 +135,8 @@ public:
  RegexSyntaxHighlighter(std::wregex& re, TextKind kind) : m_re(re), m_kind(kind) {}
  void Highlight(const std::wstring& s, const CallbackType& highlight) override
  + {
  + try
  {
  std::wsregex_iterator next(s.begin(), s.end(), m_re);
  std::wsregex_iterator end;
  @@ -147,6 +149,21 @@ public:
  highlight(pos, pos + static_cast<int>(match.length()), m_kind);
  }
  }
  + catch (std::regex_error& e)
  + {
  + switch (e.code())
  + {
  + case std::regex_constants::error_complexity:
  + case std::regex_constants::error_stack:
  + // MSVC version of std::regex in particular can fail to match
  + // e.g. HTML regex with backreferences on insanely large strings;
  + // in that case, don't highlight instead of failing outright.
  + return;
  + default:
  + throw;
  + }
  + }
  + }
  private:
  std::wregex& m_re;
  