Nginx. Using redirects with regular expressions

I'm a newbie to nginx. I have the nginx before Apache and I'm having problems.

I seem to need 2 rules in the config:

Rule 1) if we have url "/my_path" we don't touch it but user goes to "/my_path.php"

Rule 2) if we have url "/my_path.php" we change it to "/my_path" and user goes to "/my_path.php" BECAUSE we revert to rule 1.

I think this is necessary for SEO?

My configuration, for example is this...

server {
    listen 8080;
    server_name my_apache_server;

    location / {
        proxy_pass http://my_apache_server/;
    }

    location ~^\/(.+)$ {
        rewrite ^\/(.+)$ /$1.php break;
        proxy_pass http://my_apache_server/;
    }

    location ~^\/(.+)\.php$ {
        proxy_redirect http://my_apache_server/$1 http://my_apache_server/error.php;
    }

    ...
}

But nginx shows an error:

nginx: [emerg] "proxy_pass" cannot have URI part in location given 
by regular expression, or inside named location, or inside "if" statement, 
or inside "limit_except" block

As I understand it, the proxy_pass can't be used with regular expressions. Is this correct? I am thinking my config is wrong?

Can anyone help? Thanks for your help in advance.

MY SOLUTION - it works

    # index page
    location / {
        proxy_pass http://my_apache_server;
    }

    # redirect(301) real "name.php" file to "name"
    location ~ ^/([A-Za-z_]+).php$ {
        rewrite  ^/([A-Za-z_]+).php$  /$1  permanent;
    }

    # not existen a-z file name to name.php
    location ~ ^/([A-Za-z_]+)$ {
        proxy_pass http://my_apache_server/$1.php;
    }

Can't proxypass to a URI, this would make for a double slash after the URL (http://my_apache_server//$.php).

Try:

location ~^\/(.+)$ {
  rewrite ^\/(.+)$ /$1.php break;
  proxy_pass http://my_apache_server;
}