Let's analyze this regex:
- ^ indicates the pattern anchors to the beginning of the string.
- [...] is a character class. It allows you to create an alternate of choice where a single character in the target string matches any one of the characters within the class.
-  is a character class comprised of only one character, which isn't very useful in this case. You're using a "match any of these" construct but asserting that "these" are any of the following: "5". You could do away with the character class and just put a 5 there.
- + is a quantifier. It says match one or more of the previous atom. In this case, match  one or more times.
- $ is an anchor to the end of string.
Taken in full, you're saying starting from the beginning and ending at the end of the target string, match one or more 5 characters, and nothing else. You didn't allow for the trailing digits. Since you anchor to the end of the string, you're asserting that the string can only contain a bunch of 5s.
If you want to allow for eight trailing digits that are not 5s, you need to specify that too:
Now you're saying the target has to start with a 5 and then must match eight more digits, at which point the target string must end.
Are you posting in the right place? Check out Where do I post X? to know for sure.
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
Want more info? How to link or
or How to display code and escape characters
are good places to start.