Tags, use both union and intersection at the same time

You can achieve this with a tax_query, though by default not via any sort of URL manipulation:

$args = array(
    'post_type' => 'post',
    'tax_query' => array(
        'relation' => 'AND',
        array(
            'taxonomy' => 'post_tag',
            'field' => 'slug',
            'terms' => array( 'biology' )
        ),
        array(
            'taxonomy' => 'post_tag',
            'field' => 'slug',
            'terms' => array( 'male', 'female' ),
            'operator' => 'IN'
        )
    )
);
$query = new WP_Query( $args );

If you wanted to do this via URL, you’d have to come up with some way to pass the terms so you could intercept and create the query.