Help me procrastinate on my computer repairs!
JavaScript 287 (187+20*5) 295 (195 +20*5) 338 (198 + 20*7)

A function that check every possible combinations of the 6 allowed hex digits (0xA to 0xF) and the 3 allowed operators.
Output via popup and not returning a value, as requested.

I used [] to group comma separated expression but could not avoid 5 7 open brackets for loops and function calling.
To avoid digits there are variables A,B,C for 1,2,3 (this makes the code even more obscure)

Edit code revised focusing on avoiding '('. Removed ifs and explicit RegExp creation

Beware: this function is incredibly slow, it will exceed the time limit for a script in FireFox, even for small input like 90.

To enumerate all the possible expression, I use number starting at 3 and going up forever.  Digits encoding:
  0,1,2 are the operators +,-,/
  4 to 9 are the hex digits A..F
  3 is not allowed
Each number is checked with a regexp /3|[0-2]{2}/ to avoid the digit 3 and having 2 consecutive operators (the check also avoid traling and leading operators - see code) 

The resulting string is something like 0xA + 0xA - 0xD that is valid javascript, so I use eval to evaluate it. Unfortunatley the '/' operator is floating point and not integer in JavaScript, so I'm not 100% sure that the result are correct event casting to integer the final result (but I am quite confident, given that a small rounding error can not be amplified by a '*')



F=x=&gt;{
  for(A=-~0,B=A+A,i=C=A+B,j=0;j?x-~~eval(L):A;)
  {
    j=++i+'0',k=0+j;
    for(c of~k.search(C+'|[0-'+B+']{'+B+'}',L='',w='0x')?j='':j)
      c&gt;C?w+=' ABCDEF'[c-C]:[L+=w,w=' '+'+-/'[c]+' 0x']
  }
  alert(L)
}


Something else

Now, something funnier. I used an oversimplified expressione parser to avoid the eval call and, amusingly, that turned out to be a lot faster. 

The parser is really simplified, in a real parser V and O should be arrays containing the pending values stack and the pending operators stack. Here V is the single pending value (and also the return value) and O is a string with at most 2 characters. P contains the operators precedence table, for '-+/' => '112'

This scores 275 + 4*20 => 355

F=x=&gt;{
  for(A=-~0,B=A+A,i=C=A+B,D=A+C,j=0,P=''+A+A+B;j?x-V:A;)
  {
    j=++i+'0',k=0+j;
    for(c of~k.search(C+'|[0-'+B+']{'+B+'}',v=V=O=L='',w='0x')?j='':j)
      c&gt;C?
        w+='ABCDEF'[v&lt;&lt;=D,v+=D+A-~c,c-D]
      :[
          P[O[0]]&gt;=P[c]?[v=O&gt;A?V/v|0:O&gt;0?V+v:V-v,O=c]:O=c+O,
          L+=w,w=' '+'-+/'[c]+' 0x',V=v,v=0
      ]
  }
  alert(L)
}


Test In Firefox/FireBug console, change alert with return (a lot more usable)

;[0, 1, 15, 255, 30].forEach(x=&gt;console.log(x,F(x)))



  0 0xA - 0xA
  1 0xA / 0xA
  15 0xF
  255 0xFF
  30 0xF + 0xF  


Just a little less obvious (but be patient)

;[16,40, 51, 62, 73, 84, 95].forEach(x=&gt;console.log(x,F(x)))



  16 0xBA / 0xB
  40 0xA + 0xF + 0xF
  51 0xDD - 0xAA
  62 0xEA - 0xAC
  73 0xA + 0xEA - 0xAB
  84 0xFE - 0xAA
  95 0xA + 0xFF - 0xAA