Subject: bug#23667: 24.4; "Stack overflow in regexp matcher" happens in only some buffers, for the same arguments

From: Glenn Morris <[email-masked]>
Date: Wed, 01 Jun 2016 02:36:34 -0400

Ernesto Alfonso wrote:

> (let ((out (shell-command-to-string "curl http://pastebin.com/raw/a2pMaW6h")))
> 	 (string-match "\\(^[[:space:]]*\\([a-z]+\\) = \\(.*\\)\n\\)+" out 0))
>
> If I try this sexp on an ielm-mode or emacs-lisp-mode buffer (just two
> examples I tested), this evaluates to 0. If I try it on a message-mode
> or erc buffer, I get "Stack overflow in regexp matcher".

(length out) = 325969

> The evaluation should be independent of the buffer since no buffer
> contents should be involved.

[:space:] matches characters with whitespace syntax, and syntax is
buffer-local and varies between major modes. If you don't want that,
replace [:space:] with the exact characters you want to match.