Fijate bien en lo que haces.
Primero llamas la lista con dos parametros
@$buscar_region=$_POST['buscar_region'];
@$buscar_categoria= $_POST['buscar_categoria'];
esto hace la selección de registros a mostrar y los muestra.
Cuando construyes el link para ir a la pagina siguiente solo pasas un parametro
echo "<a href='buscar.php?num=".$cont. "'>$cont</a> ";
Con solo ese dato no puedes volver a hacer la consulta y mostrar nuevos registros.
Estas usando @ delante de las variables:
Manual Cita: Operadores de control de errores
PHP soporta un operador de control de errores: el signo de arroba (@). Cuando se antepone a una expresión en PHP, cualquier mensaje de error que pueden ser generado por esa expresión será ignorado.
Si se ha establecido una función controladora de errores personalizada con set_error_handler() entonces todavía será llamada, pero este controlador de errores personalizado puede (y debe) llamar a error_reporting() el cual devolverá 0 cuando la llamada que provocó el error fue precedida por el signo @.
Si la propiedad track_errors está activada, cualquier mensaje de error generado por la expresión será guardada en la variable $php_errormsg. Esta variable se sobrescribe en cada error, así que se debe comprobar antes si se desea utilizar.
Si lo quitas vas a ver los errores, ocultar errores en tiempo de programación nunca es buena idea, puesto que te auto engañas ... lo bueno es ver todo lo que esta pasando.
Concretamente en este caso sabrias que
$buscar_region=$_POST['buscar_region'];
$buscar_categoria= $_POST['buscar_categoria'];
cuando entras en la segunda pagina no recibes esos datos.
Deberías plantearte la PPOO progrmacón orientada a objetos y/o el uso de session que te permitiria optimizar el acceso al servidor de bbdd... de la manera que lo haces cada pagina que pides empieza todo des de cero es como una busqueda nueva...
Si no te lo panteas modifica tu codigo para que pase todos los parametros necesaris para la busqueda
Código PHP:
Ver original$buscar_region=$_REQUEST['buscar_region'];
$buscar_categoria= $_REQUEST['buscar_categoria'];
....
echo "<a href='buscar.php?num=".$cont. ".&buscar_region=".$buscar_region."&buscar_categoria=".$buscar_categoria."'>$cont</a> ";
Ahora estaras mandado por get, por eso cambio $_POST por $_REQUEST, todos los datos necesarios....