Hello, On Tue, May 23, 2006 at 07:08:43PM +0200, Ralf Wildenhues wrote: > Regarding this: (info Autoconf "Limitations of Usual Tools"): > > | Portable `sed' regular expressions should use `\' only to escape > | characters in the string `$()*.0123456789[\^n{}'. For example, > | alternation, `\|', is common but Posix does not require its > | support, so it should be avoided in portable scripts. Solaris > | `sed' does not support alternation; e.g., `sed '/a\|b/d'' deletes > | only lines that contain the literal string `a|b'. Similarly, `\+' > | and `\?' should be avoided. > > Does this mean that `]' in a sed regex should not be escaped if it is to > match a literal `]'? Definitly. `]' is not a special character in BREs (nor in EREs). You can choose between `]' and `[]]', but `\]' is undefined. > Conversely to the second half of the paragraph, can we be certain that > sed 's|a\|b||' > > does what I think it should do, namely remove a literal `a|b' from the > code, and not invoke alternation? Or should a different delimiter be > preferred for safety? I read the Posix definition right now, and I can confirm that it seems to define this meaning. (I don't know anything about actual implementations.) My understanding is that the above paragraph is not speaking about this; it's a special exception that \<delimiter> denotes the literal character <delimiter> in the `s' command. (I'm not sure, but perhaps a clarification could be added there, in paretheses). Have a nice day, Stepan _______________________________________________ Autoconf mailing list Autoconf@xxxxxxx http://lists.gnu.org/mailman/listinfo/autoconf