As there was so much other code in your last code, I did not get what your actual issue was.
Your actual issue can be solved as follows (no need to wrap an expression inside an expression):
from fenics import *
X = 0.5
Z = 1.0
num_steps = 400 # number of time steps
# Create mesh and define function space
nx = nz = 50
mesh = RectangleMesh(Point(0,0),Point(X,Z),nx,nz)
alpha = Expression(("(0.01*(x[0]+1))+(0.01*(x[1]+1))"), domain=mesh, degree = 2)
beta = Expression(("(x[1])","(-x[0]-0.5)"), domain=mesh, degree = 2)
alphax = alpha.dx(0)
alphaz = alpha.dx(1)
beta_s = as_vector((alphax-beta[0], alphaz-beta[1]))
assemble(inner(beta_s, beta_s)*dx)