Best syntax for a regex literal

1 points by vonox ↗ HN
I am working on a programming language.

What is the best syntax for regular expression literal?

`(...)

re (...)

$(...)

@(...)

<...>

/.../

(re:...)

`...`

4 comments

[ 1.7 ms ] story [ 27.3 ms ] thread
"^[AEIOU]{1}.+[aeiou]{1}$" or `(^[AEIOU]{1}.+[aeiou]{1}$) or re (^[AEIOU]{1}.+[aeiou]{1}$) or @(^[AEIOU]{1}.+[aeiou]{1}$) or <^[AEIOU]{1}.+[aeiou]{1}$> or /^[AEIOU]{1}.+[aeiou]{1}$/ or (re:^[AEIOU]{1}.+[aeiou]{1}$) or `^[AEIOU]{1}.+[aeiou]{1}$`

all look ugly. I would either use a triple distinct character set like python with """^[AEIOU]{1}.+[aeiou]{1}$""" or ~~~^[AEIOU]{1}.+[aeiou]{1}$~~~ but for simplicity you should use the re(...) one because you can intuitively know where the wrapper starts and ends.

Thanks
I also use an alternative regex syntax to improve readability. For example:

re ("abc" | ["0"-"9"]+)

means this:

/abc|[0-9]+/

(You can put whitespaceses into the literal)

PCRE have the /x modifier to allow whitespace and comments.

When reinventing the wheel, it's hard to top what other do already pretty well. Also, be warned people have to learn your syntax and this will probably stop them using it.