Q:

Regular Expression for the language that requires one symbol to occur at least once

I am trying to figure out the simplest way to do this using a regular expression.  

Three symbols a, b, c.
The sequence length is unlimited, i.e. *. 
The symbol a must be somewhere in the sequence at least once, but can appear more than once.  
The sequence may have only a.

More formally, $\{ w \in \{a,b,c\}^* ~|~ \#_a(w)\ge 1 \}$, where $\#_a(w)$ is the number
of $a$s in $w$. 
The best I get is

$( ( b \mid c )^*\, a\, ( b \mid c )^* )^+$

Is that the simplest way? 

A:

The simplest regular expression I can think of for this is $\left(a \mid b \mid c\right)^* a \left(a \mid b \mid c\right)^*$. This is simpler than yours by the following measures of complexity:

It contains less nesting (and fewer parentheses in general)
It contains fewer quantifiers

A:

As the expression is to be part of a parser (i.e. should be efficiently checkable), it might be a good idea to make the regular expression unambiguous:
$\qquad \displaystyle (b \mid c)^*\, a\, (a \mid b \mid c)^*$
describes the same language but avoids ambiguity by distinguishing the first $a$ in a matching word.  Wether this has an impact depends on the way your parser generator works. 
This is the same written as diagram, with the token names the OP uses:

Image by Guy Coder.