Looks like eq is overloaded, but =~ is not. When you make a regex comparison, you're just getting a regex match against the stringified object (in this case "any(a,b)") on the LHS.
use Quantum::Superpositions;
# Create a disjunction of 'a' and 'b'.
$dis = any( 'a', 'b' );
$dis =~ /.*/ && print $&;