You need to change the property :regexp
of your abbrev table.
(abbrev-table-put <your-abbrev-table> :regexp "\\(\\\\[a-z0-9@]+\\)")
The only problem is, in a regexp that is matched looking backwards, you can't have optional characters at the beginning. So, either you change the syntax category of \
(but then you don't need any special handling of abbrev tables), or you have to choose to have your all abbrevs in this table start with or without a backslash.
But why don't you use an input method to insert unicode characters?