Hi,

I am trying to modify a major mode derived from c-mode. I am adding support for an alternative string syntax (PHP heredoc). To do this I am using "syntax-propertize-function" and "syntax-propertize-extend-region-functions". (As an aside I am not sure this is the best approach, but it is best I have come up with so far.)

When trying to extend the propertize region, a regexp fails, but I am not clear as to why. I have isolated the problem with the following test case.

---
(with-temp-buffer
  (c-mode)
  (insert "END;\n")
  (goto-char (point-min))
  (message "Search forward first time")
  (re-search-forward "^END\\b")
  (put-text-property (1- (point)) (point)
                     'syntax-table (string-to-syntax "|"))
  (goto-char (point-min))
  (message "Search forward second time")
  (re-search-forward "^END\\b"))
---

Running this give me the output:

Search forward first time
Search forward second time
Search failed: "^END\\b"

I do not understand why the second regexp fails. I suppose it has to do with the text property string boundary. What is the correct way to look for the boundary in this case?

Thanks for any help.