Regular expression query in AWK

I have a varable(var1) in a AWK script that contain data in the following format

[timestamp] [priority] - [log message]

I need to extract timestamp,priority and log message.I can extract these by using split function but i don't want to use it, since i want to extract it in one go. I have some difficulties in doing it using Regular expression using a single statement. Can anybody help me on this

Try...

awk 'BEGIN{
      var = "[timestamp] [priority] - [log message]"
      n = split(var, arr, /(^\[)|(\] -? ?\[)|(\]$)/)
      for (x=2; x<n; x++)
          printf "arr[%d]=%s\n", x, arr[x]
     }'

...result is...

arr[2]=timestamp
arr[3]=priority
arr[4]=log message

Thank Ygor....It worked.
It would be helpful if you could explain the split regular expression

See Regular Expression Operators