An awk program is composed of pairs of
pattern { action }
where action
is executed when pattern
creates a non-zero/non-empty value. One of the possible patterns is a pattern range. A pattern-range is nothing more then two patterns which are comma separated.
pattern1 , pattern2 { action }
While most people write it down using ERE tokens such as:
/foo/,/bar/ { action }
the patterns can be anything which represents a valid pattern, other examples could be:
(FNR==3),$0=="foo" {action} or (index($2,"foo")>2),(FNR%5==4) {action}
So based on this, we can just answer your question as:
awk -v ere="ABC" '($0 ~ ere),/^$/'
However, be aware that from the moment you want to slightly change your code, using pattern-ranges, you generally have to do a full rewrite (See Is a /start/,/end/ range expression ever useful in awk?): So it might be better just to write:
awk -v ere="ABC" '($0 ~ ere){f=1};f;/^$/{f=0}'