Combine a rectangle region and a diamond region, then set one of them to negative. Be aware, though, that compound regions can be somewhat sketchy for triggers. I've found that combining more than two of them causes issues.
Determining point-in-polygon is a commonly required programming task. It is typically done by conceptually drawing a straight line (ray) from the position in question in ANY direction and counting the number of times that line crosses the polygon's boundary. If the ray crosses the polygon boundary an odd number of times, then the point is inside the polygon. If it crosses an even number of times (0 is an even number too), the point is outside the polygon.
To do this programmatically, you need to define the vertices of the polygon and then test the resulting line segments one-by-one. It's actually simpler than it sounds. I uploaded some Lua code that does it. See the attachment.
You can create this logic in the trigger editor, and use it to test point-in-polygon for ANY polygon shape. I'd use the center points of circular zones to define the vertices of your triangle, quadrilateral, pentagon, whatever. However, the expression editor appears to be either bugged or programmed by Neanderthals: see my help topic about the expression editor, hopefully I get some assistance soon!!!!
Oh yea, here's a Wikipedia entry on point-in-polygon: