I believe bind variables are case sensitive. In your new page is the following bind variable capitalized in your query?
Your belief is incorrect. APEX bind variables—like SQL and PL/SQL in general—are case insensitive.
Some things elsewhere in APEX are case sensitive, which in my view is a serious error on Oracle's part given the expectations of experienced PL/SQL developers.
If I run this query in sqldeveloper it returns a correct result
select * from t3_mail_piece
where '111-000-461' BETWEEN start_merge_code and end_merge_code;
302 Travel_Check American_TAD_Typed_Template 22-APR-13 30-APR-13 555-2424 Scottsdale 1 1350 111-000-461 111-000-465 17 1 One Thousand Three Hundred Fifty and 00/100
You have my compete sympathy. This happens to folks ALL THE TIME. Code runs differently in SQL Developer than it does in APEX -- but for a good reason. They are different.
You should run the code in the APEX > SQL Workshop > SQL Commands window. Then tell us what you see? You will have to enter a value for the bind variable -- don't hardcode the bind variable. It must be the problem.