Quoting IEEE 1076-2008:
15.9 Comments
A comment is either a single-line comment or a delimited comment. A single-line comment starts with two adjacent hyphens and extends up to the end of the line. A delimited comment starts with a solidus (slash)character immediately followed by an asterisk character and extends up to the first subsequent occurrence of an asterisk character immediately followed by a solidus character.
An occurrence of two adjacent hyphens within a delimited comment is not interpreted as the start of a singleline comment. Similarly, an occurrence of a solidus character immediately followed by an asterisk character within a single-line comment is not interpreted as the start of a delimited comment. Moreover, an occurrence of a solidus character immediately followed by an asterisk character within a delimited comment is not interpreted as the start of a nested delimited comment.
A single-line comment can appear on any line of a VHDL description and may contain any character except the format effectors vertical tab, carriage return, line feed, and form feed. A delimited comment can start on any line of a VHDL description and may finish on the same line or any subsequent line. The presence or absence of comments has no influence on whether a description is legal or illegal. Furthermore, comments do not influence the execution of a simulation module; their sole purpose is to enlighten the human reader.
Examples:
-- The last sentence above echoes the Algol 68 report.
end; -- Processing of LINE is complete.
----------- The first two hyphens start the comment.
/* A long comment may be written
on several consecutive lines */
x := 1; /* Comments /* do not nest */
NOTE 1—Horizontal tabulation can be used in comments, after the starting characters, and is equivalent to one or more spaces (SPACE characters) (see 15.3).
NOTE 2—Comments may contain characters that, according to 15.2, are non-printing characters. Implementations may interpret the characters of a comment as members of ISO/IEC 8859-1:1998, or of any other character set; for example, an implementation may interpret multiple consecutive characters within a comment as single characters of a multi-byte character set.
Seeing this, it seems impossible to achieve your goal using only a regular expression parser, as you need to parse the string preceding the comment. You will likely need a VHDL parser to evaluate the language specifics.
You could look into the prettyprint code that StockOverflow uses. It seems to detect comments quite well.