`ruby-forward-string' is a function used to skip past strings in Ruby mode. Ruby supports using any non-alpha character following a "%" to delimit a string. All of the following are valid Ruby syntax: - %[foo bar] - %/foo bar/ - %%foo bar% - %^foo bar^ Currently ruby-mode can handle all of these except the last one, which yields the following: # Debugger entered--Lisp error: (invalid-regexp "Unmatched [ or [^") The root of the problem is the construction of the following invalid regexp: "[^]" (which is an incomplete negated character class). This bug manifests itself by breaking `ruby-parse-region' in any buffer containing a caret-delimited string. This breaks indentation, movement commands, and even keeps Emacs from building an Imenu. I've attached a patch which resolves the issue. Note that this patch builds on the test suite for `ruby-forward-string' that I included in issue #16078. -- Cameron Desautels